@osovitny/anatoly 3.17.160 → 3.19.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/fesm2022/osovitny-anatoly.mjs +553 -522
- package/fesm2022/osovitny-anatoly.mjs.map +1 -1
- package/lib/billing/utils.d.ts +2 -1
- package/lib/core/converts/convert.d.ts +1 -1
- package/lib/core/guid.d.ts +1 -1
- package/lib/core/is.d.ts +5 -5
- package/lib/ui/components/base/components/component.d.ts +1 -1
- package/lib/ui/components/base/components/edit.component.d.ts +1 -1
- package/lib/ui/components/base/components/enum-edit.component.d.ts +1 -1
- package/lib/ui/components/data-grid/control-panel.component.d.ts +6 -5
- package/lib/ui/components/dropdownlists/country/country.dropdownlist.d.ts +1 -3
- package/lib/ui/directives/index.d.ts +1 -1
- package/lib/ui/directives/replacer/replacer.base.directive.d.ts +1 -1
- package/package.json +58 -60
- package/esm2022/lib/anatoly.module.mjs +0 -62
- package/esm2022/lib/billing/billing.module.mjs +0 -81
- package/esm2022/lib/billing/components/buttons/buyaccess-button.component.mjs +0 -104
- package/esm2022/lib/billing/components/buttons/subscribe-plan-button.component.mjs +0 -113
- package/esm2022/lib/billing/components/exports.mjs +0 -28
- package/esm2022/lib/billing/components/index.mjs +0 -31
- package/esm2022/lib/billing/components/order-summary/order-summary.component.mjs +0 -154
- package/esm2022/lib/billing/components/payment-methods/payment-methods.component.mjs +0 -106
- package/esm2022/lib/billing/components/payment-options/payment-options.component.mjs +0 -97
- package/esm2022/lib/billing/components/pm/braintree/braintree.component.mjs +0 -155
- package/esm2022/lib/billing/components/pm/paypal/paypal-button.component.mjs +0 -159
- package/esm2022/lib/billing/components/pm/paypal/paypal-subscribe-button.component.mjs +0 -149
- package/esm2022/lib/billing/components/pm/paypal/paypal.component.mjs +0 -317
- package/esm2022/lib/billing/components/pm/stripe/stripe.component.mjs +0 -109
- package/esm2022/lib/billing/exports.mjs +0 -19
- package/esm2022/lib/billing/models/paypal-models.mjs +0 -16
- package/esm2022/lib/billing/services/payments.service.mjs +0 -170
- package/esm2022/lib/billing/services/paypal-script.service.mjs +0 -90
- package/esm2022/lib/billing/utils.mjs +0 -28
- package/esm2022/lib/core/browser.mjs +0 -24
- package/esm2022/lib/core/consts/app-settings.mjs +0 -55
- package/esm2022/lib/core/consts/core-settings.mjs +0 -29
- package/esm2022/lib/core/consts/formats.mjs +0 -27
- package/esm2022/lib/core/consts/ga.mjs +0 -26
- package/esm2022/lib/core/consts/storageKeys.mjs +0 -23
- package/esm2022/lib/core/converts/convert.mjs +0 -103
- package/esm2022/lib/core/converts/dateConvert.mjs +0 -60
- package/esm2022/lib/core/converts/tz/tzParseTimezone.mjs +0 -122
- package/esm2022/lib/core/converts/tz/tzTokenizeDate.mjs +0 -101
- package/esm2022/lib/core/converts/xmlFormatter.mjs +0 -34
- package/esm2022/lib/core/core.module.mjs +0 -112
- package/esm2022/lib/core/dom.mjs +0 -153
- package/esm2022/lib/core/enums/billing.mjs +0 -56
- package/esm2022/lib/core/enums/enums.mjs +0 -35
- package/esm2022/lib/core/enums/index.mjs +0 -17
- package/esm2022/lib/core/exports.mjs +0 -67
- package/esm2022/lib/core/go/apps-go.service.mjs +0 -88
- package/esm2022/lib/core/go/go.service.mjs +0 -86
- package/esm2022/lib/core/guards/once-import.guard.mjs +0 -21
- package/esm2022/lib/core/guards/starter.guard.mjs +0 -46
- package/esm2022/lib/core/guid.mjs +0 -22
- package/esm2022/lib/core/interceptors/httpInterceptor.mjs +0 -161
- package/esm2022/lib/core/is.mjs +0 -98
- package/esm2022/lib/core/localization/localization.module.mjs +0 -45
- package/esm2022/lib/core/localization/localization.service.mjs +0 -164
- package/esm2022/lib/core/localization/localize.pipe.mjs +0 -83
- package/esm2022/lib/core/localization/settings.module.mjs +0 -103
- package/esm2022/lib/core/localization/utils.mjs +0 -41
- package/esm2022/lib/core/logging/globalErrorHandler.mjs +0 -41
- package/esm2022/lib/core/logging/logging.service.mjs +0 -40
- package/esm2022/lib/core/models/qs.mjs +0 -17
- package/esm2022/lib/core/notifications/alerts.mjs +0 -116
- package/esm2022/lib/core/notifications/interfaces/notification.mjs +0 -17
- package/esm2022/lib/core/notifications/services/notification-service.mjs +0 -83
- package/esm2022/lib/core/performance/stopwatch.mjs +0 -50
- package/esm2022/lib/core/services/appcontext.service.mjs +0 -186
- package/esm2022/lib/core/services/dm.service.mjs +0 -69
- package/esm2022/lib/core/services/google-analytics.service.mjs +0 -75
- package/esm2022/lib/core/services/idle.service.mjs +0 -77
- package/esm2022/lib/core/services/loading.service.mjs +0 -67
- package/esm2022/lib/core/services/script.service.mjs +0 -77
- package/esm2022/lib/core/services/starter.service.mjs +0 -85
- package/esm2022/lib/core/services/web-storage.service.mjs +0 -66
- package/esm2022/lib/core/subs.mjs +0 -31
- package/esm2022/lib/core/utils/qsutils.mjs +0 -84
- package/esm2022/lib/core/utils/utils.mjs +0 -112
- package/esm2022/lib/data/base/api.service.mjs +0 -94
- package/esm2022/lib/data/base/grid/grid-edit.service.mjs +0 -80
- package/esm2022/lib/data/base/grid/grid-read.service.mjs +0 -60
- package/esm2022/lib/data/data.module.mjs +0 -66
- package/esm2022/lib/data/exports.mjs +0 -29
- package/esm2022/lib/data/services/billing/currencies-api.service.mjs +0 -41
- package/esm2022/lib/data/services/billing/currencies-storage.service.mjs +0 -92
- package/esm2022/lib/data/services/billing/discountcodes-api.service.mjs +0 -37
- package/esm2022/lib/data/services/billing/payments-api.service.mjs +0 -64
- package/esm2022/lib/data/services/billing/subscriptions-api.service.mjs +0 -61
- package/esm2022/lib/data/services/billing/transactions-api.service.mjs +0 -43
- package/esm2022/lib/data/services/core-api.service.mjs +0 -44
- package/esm2022/lib/data/services/emails-api.service.mjs +0 -47
- package/esm2022/lib/external/fa.module.mjs +0 -45
- package/esm2022/lib/external/kendo.module.mjs +0 -179
- package/esm2022/lib/iam/b2c/b2c.mjs +0 -40
- package/esm2022/lib/iam/b2c/consts.mjs +0 -25
- package/esm2022/lib/iam/b2c/index.mjs +0 -21
- package/esm2022/lib/iam/configs.mjs +0 -109
- package/esm2022/lib/iam/consts.mjs +0 -22
- package/esm2022/lib/iam/exports.mjs +0 -22
- package/esm2022/lib/iam/guards/admin.guard.mjs +0 -46
- package/esm2022/lib/iam/guards/authentication.guard.mjs +0 -30
- package/esm2022/lib/iam/guards/index.mjs +0 -20
- package/esm2022/lib/iam/iam-pages.module.mjs +0 -57
- package/esm2022/lib/iam/iam-pages.routes.mjs +0 -45
- package/esm2022/lib/iam/iam.module.mjs +0 -84
- package/esm2022/lib/iam/pages/signin.page.mjs +0 -40
- package/esm2022/lib/iam/pages/signout.page.mjs +0 -40
- package/esm2022/lib/iam/pages/signup.page.mjs +0 -40
- package/esm2022/lib/iam/redirect.mjs +0 -29
- package/esm2022/lib/iam/services/auth.service.mjs +0 -436
- package/esm2022/lib/iam/storage.mjs +0 -42
- package/esm2022/lib/iam/utils.mjs +0 -49
- package/esm2022/lib/ui/components/base/components/component.mjs +0 -76
- package/esm2022/lib/ui/components/base/components/edit.component.mjs +0 -146
- package/esm2022/lib/ui/components/base/components/enum-edit.component.mjs +0 -92
- package/esm2022/lib/ui/components/base/dialog.mjs +0 -71
- package/esm2022/lib/ui/components/base/list.mjs +0 -100
- package/esm2022/lib/ui/components/base/pages/edit.page.mjs +0 -32
- package/esm2022/lib/ui/components/base/pages/page.mjs +0 -32
- package/esm2022/lib/ui/components/base/pages/paged.page.mjs +0 -68
- package/esm2022/lib/ui/components/card/card-body.component.mjs +0 -37
- package/esm2022/lib/ui/components/card/card-footer.component.mjs +0 -37
- package/esm2022/lib/ui/components/card/card-header.component.mjs +0 -51
- package/esm2022/lib/ui/components/card/card.component.mjs +0 -41
- package/esm2022/lib/ui/components/check-icon/check-icon.component.mjs +0 -43
- package/esm2022/lib/ui/components/copy-2-clipboard/copy-2-clipboard.component.mjs +0 -57
- package/esm2022/lib/ui/components/data-grid/control-panel.component.mjs +0 -201
- package/esm2022/lib/ui/components/datapager/datapager.component.mjs +0 -95
- package/esm2022/lib/ui/components/dropdownlists/country/country.dropdownlist.mjs +0 -96
- package/esm2022/lib/ui/components/dropdownlists/moderationstatus/moderationstatus.dropdownlist.mjs +0 -88
- package/esm2022/lib/ui/components/dropdownlists/publishstatus/publishstatus.dropdownlist.mjs +0 -88
- package/esm2022/lib/ui/components/dropdownlists/timezone/timezone.dropdownlist.mjs +0 -112
- package/esm2022/lib/ui/components/exports.mjs +0 -53
- package/esm2022/lib/ui/components/feature-will-be-ready/feature-will-be-ready.component.mjs +0 -55
- package/esm2022/lib/ui/components/html-editor/base-editor.component.mjs +0 -94
- package/esm2022/lib/ui/components/html-editor/defaultoptions.mjs +0 -87
- package/esm2022/lib/ui/components/html-editor/html-editor.component.mjs +0 -114
- package/esm2022/lib/ui/components/identity/signin-button.component.mjs +0 -105
- package/esm2022/lib/ui/components/identity/signout-button.component.mjs +0 -105
- package/esm2022/lib/ui/components/identity/signup-button.component.mjs +0 -105
- package/esm2022/lib/ui/components/index.mjs +0 -57
- package/esm2022/lib/ui/components/no-mobile-support/no-mobile-support.component.mjs +0 -45
- package/esm2022/lib/ui/components/nodata/nodata.component.mjs +0 -76
- package/esm2022/lib/ui/components/spinners/loading/loading.component.mjs +0 -53
- package/esm2022/lib/ui/components/spinners/pagespinner/pagespinner.component.mjs +0 -85
- package/esm2022/lib/ui/components/spinners/pagespinner/spinkits.mjs +0 -12
- package/esm2022/lib/ui/components/urlslug/urlslug.component.mjs +0 -130
- package/esm2022/lib/ui/components/you-agree-to-our-terms/you-agree-to-our-terms.component.mjs +0 -63
- package/esm2022/lib/ui/dialogs/contact-us/contact-us.dialog.mjs +0 -78
- package/esm2022/lib/ui/dialogs/exports.mjs +0 -16
- package/esm2022/lib/ui/dialogs/index.mjs +0 -19
- package/esm2022/lib/ui/directives/exports.mjs +0 -19
- package/esm2022/lib/ui/directives/hover.directive.mjs +0 -50
- package/esm2022/lib/ui/directives/index.mjs +0 -22
- package/esm2022/lib/ui/directives/native-element.directive.mjs +0 -37
- package/esm2022/lib/ui/directives/replacer/a-replacer.directive.mjs +0 -48
- package/esm2022/lib/ui/directives/replacer/image-replacer.directive.mjs +0 -44
- package/esm2022/lib/ui/directives/replacer/replacer.base.directive.mjs +0 -44
- package/esm2022/lib/ui/exports.mjs +0 -22
- package/esm2022/lib/ui/forms/components/address/address.component.mjs +0 -240
- package/esm2022/lib/ui/forms/components/company/company.component.mjs +0 -138
- package/esm2022/lib/ui/forms/contact-us/contact-us.mjs +0 -213
- package/esm2022/lib/ui/forms/exports.mjs +0 -20
- package/esm2022/lib/ui/forms/index.mjs +0 -21
- package/esm2022/lib/ui/pipes/exports.mjs +0 -19
- package/esm2022/lib/ui/pipes/filesize.pipe.mjs +0 -42
- package/esm2022/lib/ui/pipes/index.mjs +0 -22
- package/esm2022/lib/ui/pipes/replace-text.pipe.mjs +0 -37
- package/esm2022/lib/ui/pipes/safeHtml.pipe.mjs +0 -34
- package/esm2022/lib/ui/ui.module.mjs +0 -122
- package/esm2022/lib/ui/validation/exports.mjs +0 -19
- package/esm2022/lib/ui/validation/form-validation-summary.component.mjs +0 -90
- package/esm2022/lib/ui/validation/index.mjs +0 -21
- package/esm2022/lib/ui/validation/item-validation-summary.component.mjs +0 -53
- package/esm2022/lib/ui/validation/validation-summary.component.mjs +0 -124
- package/esm2022/osovitny-anatoly.mjs +0 -5
- package/esm2022/public-api.mjs +0 -22
|
@@ -1,240 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
<file>
|
|
3
|
-
Project:
|
|
4
|
-
@osovitny/anatoly
|
|
5
|
-
|
|
6
|
-
Authors:
|
|
7
|
-
Vadim Osovitny vadim.osovitny@osovitny.com
|
|
8
|
-
Anatoly Osovitny anatoly.osovitny@osovitny.com
|
|
9
|
-
|
|
10
|
-
Created:
|
|
11
|
-
02 Aug 2022
|
|
12
|
-
|
|
13
|
-
Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.
|
|
14
|
-
</file>
|
|
15
|
-
*/
|
|
16
|
-
//Node
|
|
17
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
18
|
-
import { Validators } from '@angular/forms';
|
|
19
|
-
import { Convert } from '../../../../core/exports';
|
|
20
|
-
import { EditComponentBase } from '../../../components/exports';
|
|
21
|
-
import * as i0 from "@angular/core";
|
|
22
|
-
import * as i1 from "@angular/forms";
|
|
23
|
-
import * as i2 from "../../../../data/exports";
|
|
24
|
-
import * as i3 from "@angular/common";
|
|
25
|
-
import * as i4 from "../../../components/card/card.component";
|
|
26
|
-
import * as i5 from "../../../components/card/card-header.component";
|
|
27
|
-
import * as i6 from "../../../components/card/card-body.component";
|
|
28
|
-
import * as i7 from "../../../directives/native-element.directive";
|
|
29
|
-
import * as i8 from "../../../validation/item-validation-summary.component";
|
|
30
|
-
function AddressComponent_anatoly_card_header_1_Template(rf, ctx) { if (rf & 1) {
|
|
31
|
-
i0.ɵɵelement(0, "anatoly-card-header", 18);
|
|
32
|
-
} if (rf & 2) {
|
|
33
|
-
const ctx_r0 = i0.ɵɵnextContext();
|
|
34
|
-
i0.ɵɵproperty("title", ctx_r0.title);
|
|
35
|
-
} }
|
|
36
|
-
function AddressComponent_div_18_option_4_Template(rf, ctx) { if (rf & 1) {
|
|
37
|
-
i0.ɵɵelementStart(0, "option", 21);
|
|
38
|
-
i0.ɵɵtext(1);
|
|
39
|
-
i0.ɵɵelementEnd();
|
|
40
|
-
} if (rf & 2) {
|
|
41
|
-
const state_r4 = ctx.$implicit;
|
|
42
|
-
i0.ɵɵproperty("value", state_r4.code);
|
|
43
|
-
i0.ɵɵadvance();
|
|
44
|
-
i0.ɵɵtextInterpolate(state_r4.name);
|
|
45
|
-
} }
|
|
46
|
-
const _c0 = a0 => ({ "has-error": a0 });
|
|
47
|
-
function AddressComponent_div_18_Template(rf, ctx) { if (rf & 1) {
|
|
48
|
-
const _r6 = i0.ɵɵgetCurrentView();
|
|
49
|
-
i0.ɵɵelementStart(0, "div", 9)(1, "label");
|
|
50
|
-
i0.ɵɵtext(2, "State");
|
|
51
|
-
i0.ɵɵelementEnd();
|
|
52
|
-
i0.ɵɵelementStart(3, "select", 19);
|
|
53
|
-
i0.ɵɵlistener("change", function AddressComponent_div_18_Template_select_change_3_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r5 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r5.onUSStateChange($event)); });
|
|
54
|
-
i0.ɵɵtemplate(4, AddressComponent_div_18_option_4_Template, 2, 2, "option", 16);
|
|
55
|
-
i0.ɵɵelementEnd();
|
|
56
|
-
i0.ɵɵelement(5, "anatoly-item-validation-summary", 20);
|
|
57
|
-
i0.ɵɵelementEnd();
|
|
58
|
-
} if (rf & 2) {
|
|
59
|
-
const ctx_r1 = i0.ɵɵnextContext();
|
|
60
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(4, _c0, ctx_r1.isControlInvalid("address_stateOrRegion")));
|
|
61
|
-
i0.ɵɵadvance(4);
|
|
62
|
-
i0.ɵɵproperty("ngForOf", ctx_r1.usStateData);
|
|
63
|
-
i0.ɵɵadvance();
|
|
64
|
-
i0.ɵɵproperty("formGroup", ctx_r1.formGroup)("formSubmitted", ctx_r1.formSubmitted);
|
|
65
|
-
} }
|
|
66
|
-
function AddressComponent_option_28_Template(rf, ctx) { if (rf & 1) {
|
|
67
|
-
i0.ɵɵelementStart(0, "option", 21);
|
|
68
|
-
i0.ɵɵtext(1);
|
|
69
|
-
i0.ɵɵelementEnd();
|
|
70
|
-
} if (rf & 2) {
|
|
71
|
-
const country_r7 = ctx.$implicit;
|
|
72
|
-
i0.ɵɵproperty("value", country_r7.code);
|
|
73
|
-
i0.ɵɵadvance();
|
|
74
|
-
i0.ɵɵtextInterpolate(country_r7.name);
|
|
75
|
-
} }
|
|
76
|
-
export class AddressComponent extends EditComponentBase {
|
|
77
|
-
//Inputs
|
|
78
|
-
get address() {
|
|
79
|
-
return this._address;
|
|
80
|
-
}
|
|
81
|
-
set address(value) {
|
|
82
|
-
this._address = value;
|
|
83
|
-
if (value) {
|
|
84
|
-
this.init();
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
constructor(fb, api) {
|
|
88
|
-
super();
|
|
89
|
-
this.fb = fb;
|
|
90
|
-
this.api = api;
|
|
91
|
-
this.formGroupGenerated = false;
|
|
92
|
-
this.countryData = [];
|
|
93
|
-
this.usStateData = [];
|
|
94
|
-
this.currentCountry = 'US';
|
|
95
|
-
this.currentUSState = 'NY';
|
|
96
|
-
//Outputs
|
|
97
|
-
this.change = new EventEmitter();
|
|
98
|
-
this.title = 'Address';
|
|
99
|
-
}
|
|
100
|
-
ngOnInit() {
|
|
101
|
-
this.api.getCountriesJsonFile().subscribe({
|
|
102
|
-
next: (data) => {
|
|
103
|
-
this.countryData = data;
|
|
104
|
-
}
|
|
105
|
-
});
|
|
106
|
-
this.api.getUSStatesJsonFile().subscribe({
|
|
107
|
-
next: (data) => {
|
|
108
|
-
this.usStateData = data;
|
|
109
|
-
}
|
|
110
|
-
});
|
|
111
|
-
this.createFormGroup();
|
|
112
|
-
this.init();
|
|
113
|
-
}
|
|
114
|
-
createFormGroup() {
|
|
115
|
-
let isRequired = Convert.stringToBoolean(this.isRequired);
|
|
116
|
-
if (isRequired) {
|
|
117
|
-
this.formGroup.addControl('address_street', this.fb.control('', [Validators.required]));
|
|
118
|
-
this.formGroup.addControl('address_street2', this.fb.control('', []));
|
|
119
|
-
this.formGroup.addControl('address_city', this.fb.control('', [Validators.required]));
|
|
120
|
-
this.formGroup.addControl('address_stateOrRegion', this.fb.control(this.currentUSState, [Validators.required]));
|
|
121
|
-
this.formGroup.addControl('address_country', this.fb.control(this.currentCountry, [Validators.required]));
|
|
122
|
-
this.formGroup.addControl('address_zipcode', this.fb.control('', [Validators.required]));
|
|
123
|
-
}
|
|
124
|
-
else {
|
|
125
|
-
this.formGroup.addControl('address_street', this.fb.control('', []));
|
|
126
|
-
this.formGroup.addControl('address_street2', this.fb.control('', []));
|
|
127
|
-
this.formGroup.addControl('address_city', this.fb.control('', []));
|
|
128
|
-
this.formGroup.addControl('address_stateOrRegion', this.fb.control(this.currentUSState, []));
|
|
129
|
-
this.formGroup.addControl('address_country', this.fb.control(this.currentCountry, []));
|
|
130
|
-
this.formGroup.addControl('address_zipcode', this.fb.control('', []));
|
|
131
|
-
}
|
|
132
|
-
this.formGroupGenerated = true;
|
|
133
|
-
}
|
|
134
|
-
init() {
|
|
135
|
-
if (!this.formGroupGenerated) {
|
|
136
|
-
return;
|
|
137
|
-
}
|
|
138
|
-
if (this._address !== undefined) {
|
|
139
|
-
let address = JSON.parse(this._address);
|
|
140
|
-
this.setFormValue('address_street', address.street);
|
|
141
|
-
this.setFormValue('address_street2', address.street2);
|
|
142
|
-
this.setFormValue('address_city', address.city);
|
|
143
|
-
this.setFormValue('address_stateOrRegion', address.stateOrRegion);
|
|
144
|
-
this.setFormValue('address_zipcode', address.zipcode);
|
|
145
|
-
this.setFormValue('address_country', address.country);
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
getAddress() {
|
|
149
|
-
const data = {
|
|
150
|
-
street: this.getFormValue('address_street') || null,
|
|
151
|
-
street2: this.getFormValue('address_street2') || null,
|
|
152
|
-
city: this.getFormValue('address_city') || null,
|
|
153
|
-
stateOrRegion: this.getFormValue('address_stateOrRegion') || null,
|
|
154
|
-
zipcode: this.getFormValue('address_zipcode') || null,
|
|
155
|
-
country: this.getFormValue('address_country') || null
|
|
156
|
-
};
|
|
157
|
-
return JSON.stringify(data);
|
|
158
|
-
}
|
|
159
|
-
//Events
|
|
160
|
-
onCountryChange(event) {
|
|
161
|
-
let country = event.target.value;
|
|
162
|
-
this.change.emit(country);
|
|
163
|
-
}
|
|
164
|
-
onUSStateChange(event) {
|
|
165
|
-
let usState = event.target.value;
|
|
166
|
-
this.change.emit(usState);
|
|
167
|
-
}
|
|
168
|
-
static { this.ɵfac = function AddressComponent_Factory(t) { return new (t || AddressComponent)(i0.ɵɵdirectiveInject(i1.FormBuilder), i0.ɵɵdirectiveInject(i2.CoreApiService)); }; }
|
|
169
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AddressComponent, selectors: [["anatoly-forms-address"]], inputs: { address: "address" }, outputs: { change: "change" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 30, vars: 29, consts: [["classes", "card-outline card-primary"], [3, "title", 4, "ngIf"], [3, "formGroup"], [1, "row"], [1, "form-group", 3, "ngClass"], ["type", "text", "formControlName", "address_street", "placeholder", "Street Address", 1, "form-control"], ["controlName", "address_street", "controlTitle", "Street", 3, "formGroup", "formSubmitted"], ["type", "text", "formControlName", "address_street2", "placeholder", "Apartment, suite, unit, building, floor, etc.", 1, "form-control"], ["controlName", "address_street2", "controlTitle", "Street2", 3, "formGroup", "formSubmitted"], [1, "form-group", "col-3", "mb-0", 3, "ngClass"], ["type", "text", "formControlName", "address_city", "placeholder", "City", 1, "form-control"], ["controlName", "address_city", "controlTitle", "City", 3, "formGroup", "formSubmitted"], ["class", "form-group col-3 mb-0", 3, "ngClass", 4, "ngIf"], ["type", "text", "formControlName", "address_zipcode", "placeholder", "zipcode", 1, "form-control"], ["controlName", "address_zipcode", "controlTitle", "zipcode", 3, "formGroup", "formSubmitted"], ["formControlName", "address_country", "data-placeholder", "Select a Country", 1, "form-control", 3, "change"], [3, "value", 4, "ngFor", "ngForOf"], ["controlName", "address_country", "controlTitle", "Country", 3, "formGroup", "formSubmitted"], [3, "title"], ["formControlName", "address_stateOrRegion", 1, "form-control", 3, "change"], ["controlName", "address_stateOrRegion", "controlTitle", "State", 3, "formGroup", "formSubmitted"], [3, "value"]], template: function AddressComponent_Template(rf, ctx) { if (rf & 1) {
|
|
170
|
-
i0.ɵɵelementStart(0, "anatoly-card", 0);
|
|
171
|
-
i0.ɵɵtemplate(1, AddressComponent_anatoly_card_header_1_Template, 1, 1, "anatoly-card-header", 1);
|
|
172
|
-
i0.ɵɵelementStart(2, "anatoly-card-body", 2)(3, "div", 3)(4, "div", 4)(5, "label");
|
|
173
|
-
i0.ɵɵtext(6, "Street Address");
|
|
174
|
-
i0.ɵɵelementEnd();
|
|
175
|
-
i0.ɵɵelement(7, "input", 5)(8, "anatoly-item-validation-summary", 6);
|
|
176
|
-
i0.ɵɵelementEnd();
|
|
177
|
-
i0.ɵɵelementStart(9, "div", 4);
|
|
178
|
-
i0.ɵɵelement(10, "input", 7)(11, "anatoly-item-validation-summary", 8);
|
|
179
|
-
i0.ɵɵelementEnd()();
|
|
180
|
-
i0.ɵɵelementStart(12, "div", 3)(13, "div", 9)(14, "label");
|
|
181
|
-
i0.ɵɵtext(15, "City");
|
|
182
|
-
i0.ɵɵelementEnd();
|
|
183
|
-
i0.ɵɵelement(16, "input", 10)(17, "anatoly-item-validation-summary", 11);
|
|
184
|
-
i0.ɵɵelementEnd();
|
|
185
|
-
i0.ɵɵtemplate(18, AddressComponent_div_18_Template, 6, 6, "div", 12);
|
|
186
|
-
i0.ɵɵelementStart(19, "div", 9)(20, "label");
|
|
187
|
-
i0.ɵɵtext(21, "Zipcode");
|
|
188
|
-
i0.ɵɵelementEnd();
|
|
189
|
-
i0.ɵɵelement(22, "input", 13)(23, "anatoly-item-validation-summary", 14);
|
|
190
|
-
i0.ɵɵelementEnd();
|
|
191
|
-
i0.ɵɵelementStart(24, "div", 9)(25, "label");
|
|
192
|
-
i0.ɵɵtext(26, "Country");
|
|
193
|
-
i0.ɵɵelementEnd();
|
|
194
|
-
i0.ɵɵelementStart(27, "select", 15);
|
|
195
|
-
i0.ɵɵlistener("change", function AddressComponent_Template_select_change_27_listener($event) { return ctx.onCountryChange($event); });
|
|
196
|
-
i0.ɵɵtemplate(28, AddressComponent_option_28_Template, 2, 2, "option", 16);
|
|
197
|
-
i0.ɵɵelementEnd();
|
|
198
|
-
i0.ɵɵelement(29, "anatoly-item-validation-summary", 17);
|
|
199
|
-
i0.ɵɵelementEnd()()()();
|
|
200
|
-
} if (rf & 2) {
|
|
201
|
-
i0.ɵɵadvance();
|
|
202
|
-
i0.ɵɵproperty("ngIf", ctx.isTitleVisible);
|
|
203
|
-
i0.ɵɵadvance();
|
|
204
|
-
i0.ɵɵproperty("formGroup", ctx.formGroup);
|
|
205
|
-
i0.ɵɵadvance(2);
|
|
206
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(19, _c0, ctx.isControlInvalid("address_street")));
|
|
207
|
-
i0.ɵɵadvance(4);
|
|
208
|
-
i0.ɵɵproperty("formGroup", ctx.formGroup)("formSubmitted", ctx.formSubmitted);
|
|
209
|
-
i0.ɵɵadvance();
|
|
210
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(21, _c0, ctx.isControlInvalid("address_street2")));
|
|
211
|
-
i0.ɵɵadvance(2);
|
|
212
|
-
i0.ɵɵproperty("formGroup", ctx.formGroup)("formSubmitted", ctx.formSubmitted);
|
|
213
|
-
i0.ɵɵadvance(2);
|
|
214
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(23, _c0, ctx.isControlInvalid("address_city")));
|
|
215
|
-
i0.ɵɵadvance(4);
|
|
216
|
-
i0.ɵɵproperty("formGroup", ctx.formGroup)("formSubmitted", ctx.formSubmitted);
|
|
217
|
-
i0.ɵɵadvance();
|
|
218
|
-
i0.ɵɵproperty("ngIf", ctx.formGroup.value.address_country == "US");
|
|
219
|
-
i0.ɵɵadvance();
|
|
220
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(25, _c0, ctx.isControlInvalid("address_zipcode")));
|
|
221
|
-
i0.ɵɵadvance(4);
|
|
222
|
-
i0.ɵɵproperty("formGroup", ctx.formGroup)("formSubmitted", ctx.formSubmitted);
|
|
223
|
-
i0.ɵɵadvance();
|
|
224
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(27, _c0, ctx.isControlInvalid("address_country")));
|
|
225
|
-
i0.ɵɵadvance(4);
|
|
226
|
-
i0.ɵɵproperty("ngForOf", ctx.countryData);
|
|
227
|
-
i0.ɵɵadvance();
|
|
228
|
-
i0.ɵɵproperty("formGroup", ctx.formGroup)("formSubmitted", ctx.formSubmitted);
|
|
229
|
-
} }, dependencies: [i3.NgClass, i3.NgForOf, i3.NgIf, i1.NgSelectOption, i1.ɵNgSelectMultipleOption, i1.DefaultValueAccessor, i1.SelectControlValueAccessor, i1.NgControlStatus, i1.NgControlStatusGroup, i1.FormGroupDirective, i1.FormControlName, i4.CardComponent, i5.CardHeaderComponent, i6.CardBodyComponent, i7.NativeElementDirective, i8.ItemValidationSummaryComponent], encapsulation: 2 }); }
|
|
230
|
-
}
|
|
231
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AddressComponent, [{
|
|
232
|
-
type: Component,
|
|
233
|
-
args: [{ selector: 'anatoly-forms-address', template: "<anatoly-card classes='card-outline card-primary'>\r\n <anatoly-card-header *ngIf='isTitleVisible' [title]='title' />\r\n <anatoly-card-body [formGroup]='formGroup'>\r\n <div class=\"row\">\r\n <div class='form-group' [ngClass]=\"{'has-error': isControlInvalid('address_street')}\" >\r\n <label>Street Address</label>\r\n <input type='text' class='form-control' formControlName='address_street' placeholder='Street Address'>\r\n <anatoly-item-validation-summary controlName='address_street'\r\n controlTitle='Street'\r\n [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n <div class='form-group' [ngClass]=\"{'has-error': isControlInvalid('address_street2')}\" >\r\n <input type='text' class='form-control' formControlName='address_street2' placeholder='Apartment, suite, unit, building, floor, etc.'>\r\n <anatoly-item-validation-summary controlName='address_street2'\r\n controlTitle='Street2'\r\n [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class='form-group col-3 mb-0' [ngClass]=\"{'has-error': isControlInvalid('address_city')}\">\r\n <label>City</label>\r\n <input type='text' class='form-control' formControlName='address_city' placeholder='City'>\r\n <anatoly-item-validation-summary controlName='address_city'\r\n controlTitle='City'\r\n [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n <div class='form-group col-3 mb-0' *ngIf=\"formGroup.value.address_country == 'US'\" [ngClass]=\"{'has-error': isControlInvalid('address_stateOrRegion')}\">\r\n <label>State</label>\r\n <select class='form-control' (change)='onUSStateChange($event)' formControlName='address_stateOrRegion'>\r\n <option *ngFor='let state of usStateData' [value]='state.code'>{{state.name}}</option>\r\n </select>\r\n <anatoly-item-validation-summary controlName='address_stateOrRegion'\r\n controlTitle='State'\r\n [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n <div class='form-group col-3 mb-0' [ngClass]=\"{'has-error': isControlInvalid('address_zipcode')}\" >\r\n <label>Zipcode</label>\r\n <input type='text' class='form-control' formControlName='address_zipcode' placeholder='zipcode'>\r\n <anatoly-item-validation-summary controlName='address_zipcode'\r\n controlTitle='zipcode'\r\n [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n <div class='form-group col-3 mb-0' [ngClass]=\"{'has-error': isControlInvalid('address_country')}\">\r\n <label>Country</label>\r\n <select class='form-control' (change)='onCountryChange($event)' formControlName='address_country' data-placeholder='Select a Country'>\r\n <option *ngFor='let country of countryData' [value]='country.code'>{{country.name}}</option>\r\n </select>\r\n <anatoly-item-validation-summary controlName='address_country'\r\n controlTitle='Country'\r\n [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n </div>\r\n </anatoly-card-body>\r\n</anatoly-card>\r\n" }]
|
|
234
|
-
}], () => [{ type: i1.FormBuilder }, { type: i2.CoreApiService }], { address: [{
|
|
235
|
-
type: Input
|
|
236
|
-
}], change: [{
|
|
237
|
-
type: Output
|
|
238
|
-
}] }); })();
|
|
239
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AddressComponent, { className: "AddressComponent", filePath: "lib\\ui\\forms\\components\\address\\address.component.ts", lineNumber: 35 }); })();
|
|
240
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvdWkvZm9ybXMvY29tcG9uZW50cy9hZGRyZXNzL2FkZHJlc3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL3VpL2Zvcm1zL2NvbXBvbmVudHMvYWRkcmVzcy9hZGRyZXNzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFO0FBRUYsTUFBTTtBQUNOLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXpELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7Ozs7SUN0QjlELDBDQUE4RDs7O0lBQWxCLG9DQUFlOzs7SUFrQ25ELGtDQUErRDtJQUFBLFlBQWM7SUFBQSxpQkFBUzs7O0lBQTVDLHFDQUFvQjtJQUFDLGNBQWM7SUFBZCxtQ0FBYzs7Ozs7SUFIakYsOEJBQXdKLFlBQUE7SUFDL0kscUJBQUs7SUFBQSxpQkFBUTtJQUNwQixrQ0FBd0c7SUFBM0Usc0tBQVUsZUFBQSw4QkFBdUIsQ0FBQSxJQUFDO0lBQzdELCtFQUFzRjtJQUN4RixpQkFBUztJQUNULHNEQUlrQztJQUNwQyxpQkFBTTs7O0lBVjZFLHNHQUFvRTtJQUd6SCxlQUFjO0lBQWQsNENBQWM7SUFJVCxjQUF1QjtJQUF2Qiw0Q0FBdUIsdUNBQUE7OztJQWdCdEQsa0NBQW1FO0lBQUEsWUFBZ0I7SUFBQSxpQkFBUzs7O0lBQWhELHVDQUFz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OEQ7WUFJbkQsZUFBdUI7WUFBdkIseUNBQXVCLG9DQUFBO1lBTXZCLGVBQTJEO1lBQTNELDJGQUEyRDtZQUszRCxlQUF1QjtZQUF2Qix5Q0FBdUIsb0NBQUE7WUFJdEIsY0FBNkM7WUFBN0Msa0VBQTZDO1lBVzlDLGNBQThEO1lBQTlELDhGQUE4RDtZQUs5RCxlQUF1QjtZQUF2Qix5Q0FBdUIsb0NBQUE7WUFJdkIsY0FBOEQ7WUFBOUQsOEZBQThEO1lBR2pFLGVBQWM7WUFBZCx5Q0FBYztZQUlYLGNBQXVCO1lBQXZCLHlDQUF1QixvQ0FBQTs7O2lGRHpCbkQsZ0JBQWdCO2NBSjVCLFNBQVM7MkJBQ0UsdUJBQXVCO3lFQWdCN0IsT0FBTztrQkFEVixLQUFLO1lBYUksTUFBTTtrQkFBZixNQUFNOztrRkF6QkksZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueSB2YWRpbS5vc292aXRueUBvc292aXRueS5jb21cclxuICAgIEFuYXRvbHkgT3Nvdml0bnkgYW5hdG9seS5vc292aXRueUBvc292aXRueS5jb21cclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDAyIEF1ZyAyMDIyXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNy0yMDI1IE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLy9Ob2RlXHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG4vL0FwcFxyXG5pbXBvcnQgeyBDb3JlQXBpU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RhdGEvZXhwb3J0cyc7XHJcbmltcG9ydCB7IENvbnZlcnQgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL2V4cG9ydHMnO1xyXG5pbXBvcnQgeyBFZGl0Q29tcG9uZW50QmFzZSB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvZXhwb3J0cyc7XHJcblxyXG5pbnRlcmZhY2UgQ29kZU5hbWUge1xyXG4gIGNvZGU6IHN0cmluZyxcclxuICBuYW1lOiBzdHJpbmdcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhbmF0b2x5LWZvcm1zLWFkZHJlc3MnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hZGRyZXNzLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQWRkcmVzc0NvbXBvbmVudCBleHRlbmRzIEVkaXRDb21wb25lbnRCYXNlIGltcGxlbWVudHMgT25Jbml0IHtcclxuICAvL1ByaXZhdGVcclxuICBwcml2YXRlIF9hZGRyZXNzO1xyXG5cclxuICBmb3JtR3JvdXBHZW5lcmF0ZWQgPSBmYWxzZTtcclxuXHJcbiAgY291bnRyeURhdGE6IEFycmF5PENvZGVOYW1lPiA9IFtdO1xyXG4gIHVzU3RhdGVEYXRhOiBBcnJheTxDb2RlTmFtZT4gPSBbXTtcclxuICBjdXJyZW50Q291bnRyeSA9ICdVUyc7XHJcbiAgY3VycmVudFVTU3RhdGUgPSAnTlknO1xyXG5cclxuICAvL0lucHV0c1xyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGFkZHJlc3MoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWRkcmVzcztcclxuICB9XHJcbiAgc2V0IGFkZHJlc3ModmFsdWUpIHtcclxuICAgIHRoaXMuX2FkZHJlc3MgPSB2YWx1ZTtcclxuXHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgdGhpcy5pbml0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvL091dHB1dHNcclxuICBAT3V0cHV0KCkgY2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLCBwcml2YXRlIGFwaTogQ29yZUFwaVNlcnZpY2UpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICB0aGlzLnRpdGxlID0gJ0FkZHJlc3MnO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmFwaS5nZXRDb3VudHJpZXNKc29uRmlsZSgpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChkYXRhKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jb3VudHJ5RGF0YSA9IGRhdGE7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYXBpLmdldFVTU3RhdGVzSnNvbkZpbGUoKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAoZGF0YSkgPT4ge1xyXG4gICAgICAgIHRoaXMudXNTdGF0ZURhdGEgPSBkYXRhO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmNyZWF0ZUZvcm1Hcm91cCgpO1xyXG4gICAgdGhpcy5pbml0KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZUZvcm1Hcm91cCgpIHtcclxuICAgIGxldCBpc1JlcXVpcmVkID0gQ29udmVydC5zdHJpbmdUb0Jvb2xlYW4odGhpcy5pc1JlcXVpcmVkKTtcclxuXHJcbiAgICBpZiAoaXNSZXF1aXJlZCkge1xyXG4gICAgICB0aGlzLmZvcm1Hcm91cC5hZGRDb250cm9sKCdhZGRyZXNzX3N0cmVldCcsIHRoaXMuZmIuY29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSk7XHJcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmFkZENvbnRyb2woJ2FkZHJlc3Nfc3RyZWV0MicsIHRoaXMuZmIuY29udHJvbCgnJywgW10pKTtcclxuICAgICAgdGhpcy5mb3JtR3JvdXAuYWRkQ29udHJvbCgnYWRkcmVzc19jaXR5JywgdGhpcy5mYi5jb250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pKTtcclxuICAgICAgdGhpcy5mb3JtR3JvdXAuYWRkQ29udHJvbCgnYWRkcmVzc19zdGF0ZU9yUmVnaW9uJywgdGhpcy5mYi5jb250cm9sKHRoaXMuY3VycmVudFVTU3RhdGUsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSkpO1xyXG4gICAgICB0aGlzLmZvcm1Hcm91cC5hZGRDb250cm9sKCdhZGRyZXNzX2NvdW50cnknLCB0aGlzLmZiLmNvbnRyb2wodGhpcy5jdXJyZW50Q291bnRyeSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSk7XHJcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmFkZENvbnRyb2woJ2FkZHJlc3NfemlwY29kZScsIHRoaXMuZmIuY29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5mb3JtR3JvdXAuYWRkQ29udHJvbCgnYWRkcmVzc19zdHJlZXQnLCB0aGlzLmZiLmNvbnRyb2woJycsIFtdKSk7XHJcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmFkZENvbnRyb2woJ2FkZHJlc3Nfc3RyZWV0MicsIHRoaXMuZmIuY29udHJvbCgnJywgW10pKTtcclxuICAgICAgdGhpcy5mb3JtR3JvdXAuYWRkQ29udHJvbCgnYWRkcmVzc19jaXR5JywgdGhpcy5mYi5jb250cm9sKCcnLCBbXSkpO1xyXG4gICAgICB0aGlzLmZvcm1Hcm91cC5hZGRDb250cm9sKCdhZGRyZXNzX3N0YXRlT3JSZWdpb24nLCB0aGlzLmZiLmNvbnRyb2wodGhpcy5jdXJyZW50VVNTdGF0ZSwgW10pKTtcclxuICAgICAgdGhpcy5mb3JtR3JvdXAuYWRkQ29udHJvbCgnYWRkcmVzc19jb3VudHJ5JywgdGhpcy5mYi5jb250cm9sKHRoaXMuY3VycmVudENvdW50cnksIFtdKSk7XHJcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmFkZENvbnRyb2woJ2FkZHJlc3NfemlwY29kZScsIHRoaXMuZmIuY29udHJvbCgnJywgW10pKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmZvcm1Hcm91cEdlbmVyYXRlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXQoKSB7XHJcbiAgICBpZiAoIXRoaXMuZm9ybUdyb3VwR2VuZXJhdGVkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5fYWRkcmVzcyAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGxldCBhZGRyZXNzID0gSlNPTi5wYXJzZSh0aGlzLl9hZGRyZXNzKTtcclxuXHJcbiAgICAgIHRoaXMuc2V0Rm9ybVZhbHVlKCdhZGRyZXNzX3N0cmVldCcsIGFkZHJlc3Muc3RyZWV0KTtcclxuICAgICAgdGhpcy5zZXRGb3JtVmFsdWUoJ2FkZHJlc3Nfc3RyZWV0MicsIGFkZHJlc3Muc3RyZWV0Mik7XHJcbiAgICAgIHRoaXMuc2V0Rm9ybVZhbHVlKCdhZGRyZXNzX2NpdHknLCBhZGRyZXNzLmNpdHkpO1xyXG4gICAgICB0aGlzLnNldEZvcm1WYWx1ZSgnYWRkcmVzc19zdGF0ZU9yUmVnaW9uJywgYWRkcmVzcy5zdGF0ZU9yUmVnaW9uKTtcclxuICAgICAgdGhpcy5zZXRGb3JtVmFsdWUoJ2FkZHJlc3NfemlwY29kZScsIGFkZHJlc3MuemlwY29kZSk7XHJcbiAgICAgIHRoaXMuc2V0Rm9ybVZhbHVlKCdhZGRyZXNzX2NvdW50cnknLCBhZGRyZXNzLmNvdW50cnkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0QWRkcmVzcygpIHtcclxuICAgIGNvbnN0IGRhdGEgPSB7XHJcbiAgICAgIHN0cmVldDogdGhpcy5nZXRGb3JtVmFsdWUoJ2FkZHJlc3Nfc3RyZWV0JykgfHwgbnVsbCxcclxuICAgICAgc3RyZWV0MjogdGhpcy5nZXRGb3JtVmFsdWUoJ2FkZHJlc3Nfc3RyZWV0MicpIHx8IG51bGwsXHJcbiAgICAgIGNpdHk6IHRoaXMuZ2V0Rm9ybVZhbHVlKCdhZGRyZXNzX2NpdHknKSB8fCBudWxsLFxyXG4gICAgICBzdGF0ZU9yUmVnaW9uOiB0aGlzLmdldEZvcm1WYWx1ZSgnYWRkcmVzc19zdGF0ZU9yUmVnaW9uJykgfHwgbnVsbCxcclxuICAgICAgemlwY29kZTogdGhpcy5nZXRGb3JtVmFsdWUoJ2FkZHJlc3NfemlwY29kZScpIHx8IG51bGwsXHJcbiAgICAgIGNvdW50cnk6IHRoaXMuZ2V0Rm9ybVZhbHVlKCdhZGRyZXNzX2NvdW50cnknKSB8fCBudWxsXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShkYXRhKTtcclxuICB9XHJcblxyXG4gIC8vRXZlbnRzXHJcbiAgb25Db3VudHJ5Q2hhbmdlKGV2ZW50KSB7XHJcbiAgICBsZXQgY291bnRyeSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcclxuICAgIHRoaXMuY2hhbmdlLmVtaXQoY291bnRyeSk7XHJcbiAgfVxyXG5cclxuICBvblVTU3RhdGVDaGFuZ2UoZXZlbnQpIHtcclxuICAgIGxldCB1c1N0YXRlID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xyXG4gICAgdGhpcy5jaGFuZ2UuZW1pdCh1c1N0YXRlKTtcclxuICB9XHJcbn1cclxuIiwiPGFuYXRvbHktY2FyZCBjbGFzc2VzPSdjYXJkLW91dGxpbmUgY2FyZC1wcmltYXJ5Jz5cclxuICA8YW5hdG9seS1jYXJkLWhlYWRlciAqbmdJZj0naXNUaXRsZVZpc2libGUnIFt0aXRsZV09J3RpdGxlJyAvPlxyXG4gIDxhbmF0b2x5LWNhcmQtYm9keSBbZm9ybUdyb3VwXT0nZm9ybUdyb3VwJz5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgPGRpdiBjbGFzcz0nZm9ybS1ncm91cCcgW25nQ2xhc3NdPVwieydoYXMtZXJyb3InOiBpc0NvbnRyb2xJbnZhbGlkKCdhZGRyZXNzX3N0cmVldCcpfVwiID5cclxuICAgICAgICA8bGFiZWw+U3RyZWV0IEFkZHJlc3M8L2xhYmVsPlxyXG4gICAgICAgIDxpbnB1dCB0eXBlPSd0ZXh0JyBjbGFzcz0nZm9ybS1jb250cm9sJyBmb3JtQ29udHJvbE5hbWU9J2FkZHJlc3Nfc3RyZWV0JyBwbGFjZWhvbGRlcj0nU3RyZWV0IEFkZHJlc3MnPlxyXG4gICAgICAgIDxhbmF0b2x5LWl0ZW0tdmFsaWRhdGlvbi1zdW1tYXJ5IGNvbnRyb2xOYW1lPSdhZGRyZXNzX3N0cmVldCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sVGl0bGU9J1N0cmVldCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUdyb3VwXT0nZm9ybUdyb3VwJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtU3VibWl0dGVkXT0nZm9ybVN1Ym1pdHRlZCc+XHJcbiAgICAgICAgPC9hbmF0b2x5LWl0ZW0tdmFsaWRhdGlvbi1zdW1tYXJ5PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz0nZm9ybS1ncm91cCcgW25nQ2xhc3NdPVwieydoYXMtZXJyb3InOiBpc0NvbnRyb2xJbnZhbGlkKCdhZGRyZXNzX3N0cmVldDInKX1cIiA+XHJcbiAgICAgICAgPGlucHV0IHR5cGU9J3RleHQnIGNsYXNzPSdmb3JtLWNvbnRyb2wnIGZvcm1Db250cm9sTmFtZT0nYWRkcmVzc19zdHJlZXQyJyBwbGFjZWhvbGRlcj0nQXBhcnRtZW50LCBzdWl0ZSwgdW5pdCwgYnVpbGRpbmcsIGZsb29yLCBldGMuJz5cclxuICAgICAgICA8YW5hdG9seS1pdGVtLXZhbGlkYXRpb24tc3VtbWFyeSBjb250cm9sTmFtZT0nYWRkcmVzc19zdHJlZXQyJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xUaXRsZT0nU3RyZWV0MidcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUdyb3VwXT0nZm9ybUdyb3VwJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtU3VibWl0dGVkXT0nZm9ybVN1Ym1pdHRlZCc+XHJcbiAgICAgICAgPC9hbmF0b2x5LWl0ZW0tdmFsaWRhdGlvbi1zdW1tYXJ5PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPSdmb3JtLWdyb3VwIGNvbC0zIG1iLTAnIFtuZ0NsYXNzXT1cInsnaGFzLWVycm9yJzogaXNDb250cm9sSW52YWxpZCgnYWRkcmVzc19jaXR5Jyl9XCI+XHJcbiAgICAgICAgPGxhYmVsPkNpdHk8L2xhYmVsPlxyXG4gICAgICAgIDxpbnB1dCB0eXBlPSd0ZXh0JyBjbGFzcz0nZm9ybS1jb250cm9sJyBmb3JtQ29udHJvbE5hbWU9J2FkZHJlc3NfY2l0eScgcGxhY2Vob2xkZXI9J0NpdHknPlxyXG4gICAgICAgIDxhbmF0b2x5LWl0ZW0tdmFsaWRhdGlvbi1zdW1tYXJ5IGNvbnRyb2xOYW1lPSdhZGRyZXNzX2NpdHknXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbFRpdGxlPSdDaXR5J1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtR3JvdXBdPSdmb3JtR3JvdXAnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1TdWJtaXR0ZWRdPSdmb3JtU3VibWl0dGVkJz5cclxuICAgICAgICA8L2FuYXRvbHktaXRlbS12YWxpZGF0aW9uLXN1bW1hcnk+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPSdmb3JtLWdyb3VwIGNvbC0zIG1iLTAnICpuZ0lmPVwiZm9ybUdyb3VwLnZhbHVlLmFkZHJlc3NfY291bnRyeSA9PSAnVVMnXCIgW25nQ2xhc3NdPVwieydoYXMtZXJyb3InOiBpc0NvbnRyb2xJbnZhbGlkKCdhZGRyZXNzX3N0YXRlT3JSZWdpb24nKX1cIj5cclxuICAgICAgICA8bGFiZWw+U3RhdGU8L2xhYmVsPlxyXG4gICAgICAgIDxzZWxlY3QgY2xhc3M9J2Zvcm0tY29udHJvbCcgKGNoYW5nZSk9J29uVVNTdGF0ZUNoYW5nZSgkZXZlbnQpJyBmb3JtQ29udHJvbE5hbWU9J2FkZHJlc3Nfc3RhdGVPclJlZ2lvbic+XHJcbiAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj0nbGV0IHN0YXRlIG9mIHVzU3RhdGVEYXRhJyBbdmFsdWVdPSdzdGF0ZS5jb2RlJz57e3N0YXRlLm5hbWV9fTwvb3B0aW9uPlxyXG4gICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgIDxhbmF0b2x5LWl0ZW0tdmFsaWRhdGlvbi1zdW1tYXJ5IGNvbnRyb2xOYW1lPSdhZGRyZXNzX3N0YXRlT3JSZWdpb24nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbFRpdGxlPSdTdGF0ZSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUdyb3VwXT0nZm9ybUdyb3VwJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtU3VibWl0dGVkXT0nZm9ybVN1Ym1pdHRlZCc+XHJcbiAgICAgICAgPC9hbmF0b2x5LWl0ZW0tdmFsaWRhdGlvbi1zdW1tYXJ5PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz0nZm9ybS1ncm91cCBjb2wtMyBtYi0wJyBbbmdDbGFzc109XCJ7J2hhcy1lcnJvcic6IGlzQ29udHJvbEludmFsaWQoJ2FkZHJlc3NfemlwY29kZScpfVwiID5cclxuICAgICAgICA8bGFiZWw+WmlwY29kZTwvbGFiZWw+XHJcbiAgICAgICAgPGlucHV0IHR5cGU9J3RleHQnIGNsYXNzPSdmb3JtLWNvbnRyb2wnIGZvcm1Db250cm9sTmFtZT0nYWRkcmVzc196aXBjb2RlJyBwbGFjZWhvbGRlcj0nemlwY29kZSc+XHJcbiAgICAgICAgPGFuYXRvbHktaXRlbS12YWxpZGF0aW9uLXN1bW1hcnkgY29udHJvbE5hbWU9J2FkZHJlc3NfemlwY29kZSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sVGl0bGU9J3ppcGNvZGUnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Hcm91cF09J2Zvcm1Hcm91cCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybVN1Ym1pdHRlZF09J2Zvcm1TdWJtaXR0ZWQnPlxyXG4gICAgICAgIDwvYW5hdG9seS1pdGVtLXZhbGlkYXRpb24tc3VtbWFyeT5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9J2Zvcm0tZ3JvdXAgY29sLTMgbWItMCcgW25nQ2xhc3NdPVwieydoYXMtZXJyb3InOiBpc0NvbnRyb2xJbnZhbGlkKCdhZGRyZXNzX2NvdW50cnknKX1cIj5cclxuICAgICAgICA8bGFiZWw+Q291bnRyeTwvbGFiZWw+XHJcbiAgICAgICAgPHNlbGVjdCBjbGFzcz0nZm9ybS1jb250cm9sJyAoY2hhbmdlKT0nb25Db3VudHJ5Q2hhbmdlKCRldmVudCknIGZvcm1Db250cm9sTmFtZT0nYWRkcmVzc19jb3VudHJ5JyBkYXRhLXBsYWNlaG9sZGVyPSdTZWxlY3QgYSBDb3VudHJ5Jz5cclxuICAgICAgICAgIDxvcHRpb24gKm5nRm9yPSdsZXQgY291bnRyeSBvZiBjb3VudHJ5RGF0YScgW3ZhbHVlXT0nY291bnRyeS5jb2RlJz57e2NvdW50cnkubmFtZX19PC9vcHRpb24+XHJcbiAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgPGFuYXRvbHktaXRlbS12YWxpZGF0aW9uLXN1bW1hcnkgY29udHJvbE5hbWU9J2FkZHJlc3NfY291bnRyeSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sVGl0bGU9J0NvdW50cnknXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Hcm91cF09J2Zvcm1Hcm91cCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybVN1Ym1pdHRlZF09J2Zvcm1TdWJtaXR0ZWQnPlxyXG4gICAgICAgIDwvYW5hdG9seS1pdGVtLXZhbGlkYXRpb24tc3VtbWFyeT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2FuYXRvbHktY2FyZC1ib2R5PlxyXG48L2FuYXRvbHktY2FyZD5cclxuIl19
|
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
<file>
|
|
3
|
-
Project:
|
|
4
|
-
@osovitny/anatoly
|
|
5
|
-
|
|
6
|
-
Authors:
|
|
7
|
-
Vadim Osovitny vadim.osovitny@osovitny.com
|
|
8
|
-
Anatoly Osovitny anatoly.osovitny@osovitny.com
|
|
9
|
-
|
|
10
|
-
Created:
|
|
11
|
-
02 Aug 2022
|
|
12
|
-
|
|
13
|
-
Copyright (c) 2017-2025 Osovitny Inc. All rights reserved.
|
|
14
|
-
</file>
|
|
15
|
-
*/
|
|
16
|
-
//Node
|
|
17
|
-
import { Component, Input } from '@angular/core';
|
|
18
|
-
//App
|
|
19
|
-
import { EditComponentBase } from '../../../components/exports';
|
|
20
|
-
import * as i0 from "@angular/core";
|
|
21
|
-
import * as i1 from "@angular/forms";
|
|
22
|
-
import * as i2 from "@angular/common";
|
|
23
|
-
import * as i3 from "../../../components/card/card.component";
|
|
24
|
-
import * as i4 from "../../../components/card/card-header.component";
|
|
25
|
-
import * as i5 from "../../../components/card/card-body.component";
|
|
26
|
-
import * as i6 from "../../../directives/native-element.directive";
|
|
27
|
-
import * as i7 from "../../../validation/item-validation-summary.component";
|
|
28
|
-
function CompanyComponent_anatoly_card_header_1_Template(rf, ctx) { if (rf & 1) {
|
|
29
|
-
i0.ɵɵelement(0, "anatoly-card-header", 14);
|
|
30
|
-
} if (rf & 2) {
|
|
31
|
-
const ctx_r0 = i0.ɵɵnextContext();
|
|
32
|
-
i0.ɵɵproperty("title", ctx_r0.title);
|
|
33
|
-
} }
|
|
34
|
-
const _c0 = a0 => ({ "has-error": a0 });
|
|
35
|
-
export class CompanyComponent extends EditComponentBase {
|
|
36
|
-
//Inputs
|
|
37
|
-
get company() {
|
|
38
|
-
return this._company;
|
|
39
|
-
}
|
|
40
|
-
set company(value) {
|
|
41
|
-
this._company = value;
|
|
42
|
-
if (value) {
|
|
43
|
-
this.init();
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
constructor(fb) {
|
|
47
|
-
super();
|
|
48
|
-
this.fb = fb;
|
|
49
|
-
this.formGroupGenerated = false;
|
|
50
|
-
this.title = 'Company / Organization';
|
|
51
|
-
}
|
|
52
|
-
ngOnInit() {
|
|
53
|
-
this.createFormGroup();
|
|
54
|
-
this.init();
|
|
55
|
-
}
|
|
56
|
-
createFormGroup() {
|
|
57
|
-
this.formGroup.addControl('company_name', this.fb.control('', []));
|
|
58
|
-
this.formGroup.addControl('company_phone', this.fb.control('', []));
|
|
59
|
-
this.formGroup.addControl('company_email', this.fb.control('', []));
|
|
60
|
-
this.formGroup.addControl('company_websiteUrl', this.fb.control('', []));
|
|
61
|
-
this.formGroupGenerated = true;
|
|
62
|
-
}
|
|
63
|
-
init() {
|
|
64
|
-
if (!this.formGroupGenerated) {
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
67
|
-
if (this._company !== undefined) {
|
|
68
|
-
let company = JSON.parse(this._company);
|
|
69
|
-
this.setFormValue('company_name', company.name);
|
|
70
|
-
this.setFormValue('company_phone', company.phone);
|
|
71
|
-
this.setFormValue('company_email', company.email);
|
|
72
|
-
this.setFormValue('company_websiteUrl', company.websiteUrl);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
getCompany() {
|
|
76
|
-
const data = {
|
|
77
|
-
name: this.getFormValue('company_name') || null,
|
|
78
|
-
phone: this.getFormValue('company_phone') || null,
|
|
79
|
-
email: this.getFormValue('company_email') || null,
|
|
80
|
-
websiteUrl: this.getFormValue('company_websiteUrl') || null
|
|
81
|
-
};
|
|
82
|
-
return JSON.stringify(data);
|
|
83
|
-
}
|
|
84
|
-
static { this.ɵfac = function CompanyComponent_Factory(t) { return new (t || CompanyComponent)(i0.ɵɵdirectiveInject(i1.FormBuilder)); }; }
|
|
85
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CompanyComponent, selectors: [["anatoly-forms-company"]], inputs: { company: "company" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 25, vars: 22, consts: [["classes", "card-outline card-primary"], [3, "title", 4, "ngIf"], [3, "formGroup"], [1, "row"], [1, "form-group", "col-6", 3, "ngClass"], ["type", "text", "formControlName", "company_name", "placeholder", "Company Name", 1, "form-control"], ["controlName", "company_name", "controlTitle", "Company Name", 3, "formGroup", "formSubmitted"], ["type", "tel", "formControlName", "company_phone", "placeholder", "Company Phone", 1, "form-control"], ["controlName", "company_phone", "controlTitle", "Company Phone", 3, "formGroup", "formSubmitted"], [1, "form-group", "col-6", "mb-0", 3, "ngClass"], ["type", "email", "formControlName", "company_email", "placeholder", "Company Email", 1, "form-control"], ["controlName", "company_email", "controlTitle", "Company Email", 3, "formGroup", "formSubmitted"], ["type", "url", "placeholder", "https://example.com", "pattern", "https://.*", "size", "30", "formControlName", "company_websiteUrl", 1, "form-control"], ["controlName", "company_websiteUrl", "controlTitle", "Company website url", 3, "formGroup", "formSubmitted"], [3, "title"]], template: function CompanyComponent_Template(rf, ctx) { if (rf & 1) {
|
|
86
|
-
i0.ɵɵelementStart(0, "anatoly-card", 0);
|
|
87
|
-
i0.ɵɵtemplate(1, CompanyComponent_anatoly_card_header_1_Template, 1, 1, "anatoly-card-header", 1);
|
|
88
|
-
i0.ɵɵelementStart(2, "anatoly-card-body", 2)(3, "div", 3)(4, "div", 4)(5, "label");
|
|
89
|
-
i0.ɵɵtext(6, "Name");
|
|
90
|
-
i0.ɵɵelementEnd();
|
|
91
|
-
i0.ɵɵelement(7, "input", 5)(8, "anatoly-item-validation-summary", 6);
|
|
92
|
-
i0.ɵɵelementEnd();
|
|
93
|
-
i0.ɵɵelementStart(9, "div", 4)(10, "label");
|
|
94
|
-
i0.ɵɵtext(11, "Phone");
|
|
95
|
-
i0.ɵɵelementEnd();
|
|
96
|
-
i0.ɵɵelement(12, "input", 7)(13, "anatoly-item-validation-summary", 8);
|
|
97
|
-
i0.ɵɵelementEnd()();
|
|
98
|
-
i0.ɵɵelementStart(14, "div", 3)(15, "div", 9)(16, "label");
|
|
99
|
-
i0.ɵɵtext(17, "Email");
|
|
100
|
-
i0.ɵɵelementEnd();
|
|
101
|
-
i0.ɵɵelement(18, "input", 10)(19, "anatoly-item-validation-summary", 11);
|
|
102
|
-
i0.ɵɵelementEnd();
|
|
103
|
-
i0.ɵɵelementStart(20, "div", 9)(21, "label");
|
|
104
|
-
i0.ɵɵtext(22, "Website Url");
|
|
105
|
-
i0.ɵɵelementEnd();
|
|
106
|
-
i0.ɵɵelement(23, "input", 12)(24, "anatoly-item-validation-summary", 13);
|
|
107
|
-
i0.ɵɵelementEnd()()()();
|
|
108
|
-
} if (rf & 2) {
|
|
109
|
-
i0.ɵɵadvance();
|
|
110
|
-
i0.ɵɵproperty("ngIf", ctx.isTitleVisible);
|
|
111
|
-
i0.ɵɵadvance();
|
|
112
|
-
i0.ɵɵproperty("formGroup", ctx.formGroup);
|
|
113
|
-
i0.ɵɵadvance(2);
|
|
114
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(14, _c0, ctx.isControlInvalid("company_name")));
|
|
115
|
-
i0.ɵɵadvance(4);
|
|
116
|
-
i0.ɵɵproperty("formGroup", ctx.formGroup)("formSubmitted", ctx.formSubmitted);
|
|
117
|
-
i0.ɵɵadvance();
|
|
118
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(16, _c0, ctx.isControlInvalid("company_phone")));
|
|
119
|
-
i0.ɵɵadvance(4);
|
|
120
|
-
i0.ɵɵproperty("formGroup", ctx.formGroup)("formSubmitted", ctx.formSubmitted);
|
|
121
|
-
i0.ɵɵadvance(2);
|
|
122
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(18, _c0, ctx.isControlInvalid("company_email")));
|
|
123
|
-
i0.ɵɵadvance(4);
|
|
124
|
-
i0.ɵɵproperty("formGroup", ctx.formGroup)("formSubmitted", ctx.formSubmitted);
|
|
125
|
-
i0.ɵɵadvance();
|
|
126
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(20, _c0, ctx.isControlInvalid("company_websiteUrl")));
|
|
127
|
-
i0.ɵɵadvance(4);
|
|
128
|
-
i0.ɵɵproperty("formGroup", ctx.formGroup)("formSubmitted", ctx.formSubmitted);
|
|
129
|
-
} }, dependencies: [i2.NgClass, i2.NgIf, i1.DefaultValueAccessor, i1.NgControlStatus, i1.NgControlStatusGroup, i1.PatternValidator, i1.FormGroupDirective, i1.FormControlName, i3.CardComponent, i4.CardHeaderComponent, i5.CardBodyComponent, i6.NativeElementDirective, i7.ItemValidationSummaryComponent], encapsulation: 2 }); }
|
|
130
|
-
}
|
|
131
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CompanyComponent, [{
|
|
132
|
-
type: Component,
|
|
133
|
-
args: [{ selector: 'anatoly-forms-company', template: "<anatoly-card classes='card-outline card-primary'>\r\n <anatoly-card-header *ngIf='isTitleVisible' [title]='title' />\r\n <anatoly-card-body [formGroup]='formGroup' >\r\n <div class=\"row\">\r\n <div class='form-group col-6' [ngClass]=\"{'has-error': isControlInvalid('company_name') }\">\r\n <label>Name</label>\r\n <input type='text' class='form-control' formControlName='company_name' placeholder='Company Name'>\r\n <anatoly-item-validation-summary controlName='company_name'\r\n controlTitle='Company Name'\r\n [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n <div class='form-group col-6' [ngClass]=\"{'has-error': isControlInvalid('company_phone') }\">\r\n <label>Phone</label>\r\n <input type='tel' class='form-control' formControlName='company_phone' placeholder='Company Phone'>\r\n <anatoly-item-validation-summary controlName='company_phone'\r\n controlTitle='Company Phone'\r\n [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class='form-group col-6 mb-0' [ngClass]=\"{'has-error': isControlInvalid('company_email') }\">\r\n <label>Email</label>\r\n <input type='email' class='form-control' formControlName='company_email' placeholder='Company Email'>\r\n <anatoly-item-validation-summary controlName='company_email'\r\n controlTitle='Company Email'\r\n [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n <div class='form-group col-6 mb-0' [ngClass]=\"{'has-error': isControlInvalid('company_websiteUrl') }\">\r\n <label>Website Url</label>\r\n <input type='url' placeholder='https://example.com' pattern='https://.*' size='30'\r\n class='form-control' formControlName='company_websiteUrl'>\r\n <anatoly-item-validation-summary controlName='company_websiteUrl'\r\n controlTitle='Company website url'\r\n [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n </div>\r\n </anatoly-card-body>\r\n</anatoly-card>\r\n" }]
|
|
134
|
-
}], () => [{ type: i1.FormBuilder }], { company: [{
|
|
135
|
-
type: Input
|
|
136
|
-
}] }); })();
|
|
137
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CompanyComponent, { className: "CompanyComponent", filePath: "lib\\ui\\forms\\components\\company\\company.component.ts", lineNumber: 28 }); })();
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFueS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvdWkvZm9ybXMvY29tcG9uZW50cy9jb21wYW55L2NvbXBhbnkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL3VpL2Zvcm1zL2NvbXBvbmVudHMvY29tcGFueS9jb21wYW55LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFO0FBRUYsTUFBTTtBQUNOLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBR3pELEtBQUs7QUFDTCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7OztJQ3BCOUQsMENBQThEOzs7SUFBbEIsb0NBQWU7OztBRDBCN0QsTUFBTSxPQUFPLGdCQUFpQixTQUFRLGlCQUFpQjtJQU1yRCxRQUFRO0lBQ1IsSUFDSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxLQUFLO1FBQ2YsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFFdEIsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO0lBRUQsWUFBb0IsRUFBZTtRQUNqQyxLQUFLLEVBQUUsQ0FBQztRQURVLE9BQUUsR0FBRixFQUFFLENBQWE7UUFmbkMsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBaUJ6QixJQUFJLENBQUMsS0FBSyxHQUFHLHdCQUF3QixDQUFDO0lBQ3hDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLElB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RCxlQUF1QjtZQUF2Qix5Q0FBdUIsb0NBQUE7WUFNdkIsZUFBNkQ7WUFBN0QsNEZBQTZEO1lBSzdELGVBQXVCO1lBQXZCLHlDQUF1QixvQ0FBQTtZQUl2QixjQUFrRTtZQUFsRSxpR0FBa0U7WUFNbEUsZUFBdUI7WUFBdkIseUNBQXVCLG9DQUFBOzs7aUZEWm5ELGdCQUFnQjtjQUo1QixTQUFTOzJCQUNFLHVCQUF1Qjs0Q0FXN0IsT0FBTztrQkFEVixLQUFLOztrRkFQSyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55IHZhZGltLm9zb3ZpdG55QG9zb3ZpdG55LmNvbVxyXG4gICAgQW5hdG9seSBPc292aXRueSBhbmF0b2x5Lm9zb3ZpdG55QG9zb3ZpdG55LmNvbVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgMDIgQXVnIDIwMjJcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE3LTIwMjUgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG4vL05vZGVcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuLy9BcHBcclxuaW1wb3J0IHsgRWRpdENvbXBvbmVudEJhc2UgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2V4cG9ydHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhbmF0b2x5LWZvcm1zLWNvbXBhbnknLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb21wYW55LmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29tcGFueUNvbXBvbmVudCBleHRlbmRzIEVkaXRDb21wb25lbnRCYXNlIGltcGxlbWVudHMgT25Jbml0IHtcclxuICAvL1ByaXZhdGVcclxuICBwcml2YXRlIF9jb21wYW55O1xyXG5cclxuICBmb3JtR3JvdXBHZW5lcmF0ZWQgPSBmYWxzZTtcclxuXHJcbiAgLy9JbnB1dHNcclxuICBASW5wdXQoKVxyXG4gIGdldCBjb21wYW55KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvbXBhbnk7XHJcbiAgfVxyXG4gIHNldCBjb21wYW55KHZhbHVlKSB7XHJcbiAgICB0aGlzLl9jb21wYW55ID0gdmFsdWU7XHJcblxyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIHRoaXMuaW5pdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICB0aGlzLnRpdGxlID0gJ0NvbXBhbnkgLyBPcmdhbml6YXRpb24nO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmNyZWF0ZUZvcm1Hcm91cCgpO1xyXG4gICAgdGhpcy5pbml0KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZUZvcm1Hcm91cCgpIHtcclxuICAgIHRoaXMuZm9ybUdyb3VwLmFkZENvbnRyb2woJ2NvbXBhbnlfbmFtZScsIHRoaXMuZmIuY29udHJvbCgnJywgW10pKTtcclxuICAgIHRoaXMuZm9ybUdyb3VwLmFkZENvbnRyb2woJ2NvbXBhbnlfcGhvbmUnLCB0aGlzLmZiLmNvbnRyb2woJycsIFtdKSk7XHJcbiAgICB0aGlzLmZvcm1Hcm91cC5hZGRDb250cm9sKCdjb21wYW55X2VtYWlsJywgdGhpcy5mYi5jb250cm9sKCcnLCBbXSkpO1xyXG4gICAgdGhpcy5mb3JtR3JvdXAuYWRkQ29udHJvbCgnY29tcGFueV93ZWJzaXRlVXJsJywgdGhpcy5mYi5jb250cm9sKCcnLCBbXSkpO1xyXG5cclxuICAgIHRoaXMuZm9ybUdyb3VwR2VuZXJhdGVkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdCgpIHtcclxuICAgIGlmICghdGhpcy5mb3JtR3JvdXBHZW5lcmF0ZWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLl9jb21wYW55ICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgbGV0IGNvbXBhbnkgPSBKU09OLnBhcnNlKHRoaXMuX2NvbXBhbnkpO1xyXG5cclxuICAgICAgdGhpcy5zZXRGb3JtVmFsdWUoJ2NvbXBhbnlfbmFtZScsIGNvbXBhbnkubmFtZSk7XHJcbiAgICAgIHRoaXMuc2V0Rm9ybVZhbHVlKCdjb21wYW55X3Bob25lJywgY29tcGFueS5waG9uZSk7XHJcbiAgICAgIHRoaXMuc2V0Rm9ybVZhbHVlKCdjb21wYW55X2VtYWlsJywgY29tcGFueS5lbWFpbCk7XHJcbiAgICAgIHRoaXMuc2V0Rm9ybVZhbHVlKCdjb21wYW55X3dlYnNpdGVVcmwnLCBjb21wYW55LndlYnNpdGVVcmwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0Q29tcGFueSgpIHtcclxuICAgIGNvbnN0IGRhdGEgPSB7XHJcbiAgICAgIG5hbWU6IHRoaXMuZ2V0Rm9ybVZhbHVlKCdjb21wYW55X25hbWUnKSB8fCBudWxsLFxyXG4gICAgICBwaG9uZTogdGhpcy5nZXRGb3JtVmFsdWUoJ2NvbXBhbnlfcGhvbmUnKSB8fCBudWxsLFxyXG4gICAgICBlbWFpbDogdGhpcy5nZXRGb3JtVmFsdWUoJ2NvbXBhbnlfZW1haWwnKSB8fCBudWxsLFxyXG4gICAgICB3ZWJzaXRlVXJsOiB0aGlzLmdldEZvcm1WYWx1ZSgnY29tcGFueV93ZWJzaXRlVXJsJykgfHwgbnVsbFxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoZGF0YSk7XHJcbiAgfVxyXG59XHJcbiIsIjxhbmF0b2x5LWNhcmQgY2xhc3Nlcz0nY2FyZC1vdXRsaW5lIGNhcmQtcHJpbWFyeSc+XHJcbiAgPGFuYXRvbHktY2FyZC1oZWFkZXIgKm5nSWY9J2lzVGl0bGVWaXNpYmxlJyBbdGl0bGVdPSd0aXRsZScgLz5cclxuICA8YW5hdG9seS1jYXJkLWJvZHkgW2Zvcm1Hcm91cF09J2Zvcm1Hcm91cCcgPlxyXG4gICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgPGRpdiBjbGFzcz0nZm9ybS1ncm91cCBjb2wtNicgW25nQ2xhc3NdPVwieydoYXMtZXJyb3InOiBpc0NvbnRyb2xJbnZhbGlkKCdjb21wYW55X25hbWUnKSB9XCI+XHJcbiAgICAgICAgPGxhYmVsPk5hbWU8L2xhYmVsPlxyXG4gICAgICAgIDxpbnB1dCB0eXBlPSd0ZXh0JyBjbGFzcz0nZm9ybS1jb250cm9sJyBmb3JtQ29udHJvbE5hbWU9J2NvbXBhbnlfbmFtZScgcGxhY2Vob2xkZXI9J0NvbXBhbnkgTmFtZSc+XHJcbiAgICAgICAgPGFuYXRvbHktaXRlbS12YWxpZGF0aW9uLXN1bW1hcnkgY29udHJvbE5hbWU9J2NvbXBhbnlfbmFtZSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sVGl0bGU9J0NvbXBhbnkgTmFtZSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUdyb3VwXT0nZm9ybUdyb3VwJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtU3VibWl0dGVkXT0nZm9ybVN1Ym1pdHRlZCc+XHJcbiAgICAgICAgPC9hbmF0b2x5LWl0ZW0tdmFsaWRhdGlvbi1zdW1tYXJ5PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz0nZm9ybS1ncm91cCBjb2wtNicgW25nQ2xhc3NdPVwieydoYXMtZXJyb3InOiBpc0NvbnRyb2xJbnZhbGlkKCdjb21wYW55X3Bob25lJykgfVwiPlxyXG4gICAgICAgIDxsYWJlbD5QaG9uZTwvbGFiZWw+XHJcbiAgICAgICAgPGlucHV0IHR5cGU9J3RlbCcgY2xhc3M9J2Zvcm0tY29udHJvbCcgZm9ybUNvbnRyb2xOYW1lPSdjb21wYW55X3Bob25lJyBwbGFjZWhvbGRlcj0nQ29tcGFueSBQaG9uZSc+XHJcbiAgICAgICAgPGFuYXRvbHktaXRlbS12YWxpZGF0aW9uLXN1bW1hcnkgY29udHJvbE5hbWU9J2NvbXBhbnlfcGhvbmUnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbFRpdGxlPSdDb21wYW55IFBob25lJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtR3JvdXBdPSdmb3JtR3JvdXAnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1TdWJtaXR0ZWRdPSdmb3JtU3VibWl0dGVkJz5cclxuICAgICAgICA8L2FuYXRvbHktaXRlbS12YWxpZGF0aW9uLXN1bW1hcnk+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgIDwvZGl2PlxyXG4gICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgPGRpdiBjbGFzcz0nZm9ybS1ncm91cCBjb2wtNiBtYi0wJyBbbmdDbGFzc109XCJ7J2hhcy1lcnJvcic6IGlzQ29udHJvbEludmFsaWQoJ2NvbXBhbnlfZW1haWwnKSB9XCI+XHJcbiAgICAgICAgPGxhYmVsPkVtYWlsPC9sYWJlbD5cclxuICAgICAgICA8aW5wdXQgdHlwZT0nZW1haWwnIGNsYXNzPSdmb3JtLWNvbnRyb2wnIGZvcm1Db250cm9sTmFtZT0nY29tcGFueV9lbWFpbCcgcGxhY2Vob2xkZXI9J0NvbXBhbnkgRW1haWwnPlxyXG4gICAgICAgIDxhbmF0b2x5LWl0ZW0tdmFsaWRhdGlvbi1zdW1tYXJ5IGNvbnRyb2xOYW1lPSdjb21wYW55X2VtYWlsJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xUaXRsZT0nQ29tcGFueSBFbWFpbCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUdyb3VwXT0nZm9ybUdyb3VwJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtU3VibWl0dGVkXT0nZm9ybVN1Ym1pdHRlZCc+XHJcbiAgICAgICAgPC9hbmF0b2x5LWl0ZW0tdmFsaWRhdGlvbi1zdW1tYXJ5PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz0nZm9ybS1ncm91cCBjb2wtNiBtYi0wJyBbbmdDbGFzc109XCJ7J2hhcy1lcnJvcic6IGlzQ29udHJvbEludmFsaWQoJ2NvbXBhbnlfd2Vic2l0ZVVybCcpIH1cIj5cclxuICAgICAgICA8bGFiZWw+V2Vic2l0ZSBVcmw8L2xhYmVsPlxyXG4gICAgICAgIDxpbnB1dCB0eXBlPSd1cmwnIHBsYWNlaG9sZGVyPSdodHRwczovL2V4YW1wbGUuY29tJyBwYXR0ZXJuPSdodHRwczovLy4qJyBzaXplPSczMCdcclxuICAgICAgICAgICAgICAgY2xhc3M9J2Zvcm0tY29udHJvbCcgZm9ybUNvbnRyb2xOYW1lPSdjb21wYW55X3dlYnNpdGVVcmwnPlxyXG4gICAgICAgIDxhbmF0b2x5LWl0ZW0tdmFsaWRhdGlvbi1zdW1tYXJ5IGNvbnRyb2xOYW1lPSdjb21wYW55X3dlYnNpdGVVcmwnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbFRpdGxlPSdDb21wYW55IHdlYnNpdGUgdXJsJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtR3JvdXBdPSdmb3JtR3JvdXAnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1TdWJtaXR0ZWRdPSdmb3JtU3VibWl0dGVkJz5cclxuICAgICAgICA8L2FuYXRvbHktaXRlbS12YWxpZGF0aW9uLXN1bW1hcnk+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgIDwvZGl2PlxyXG4gIDwvYW5hdG9seS1jYXJkLWJvZHk+XHJcbjwvYW5hdG9seS1jYXJkPlxyXG4iXX0=
|