barsa-novin-ray-core 2.0.135 → 2.1.2
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/barsa-novin-ray-core.mjs +818 -694
- package/fesm2022/barsa-novin-ray-core.mjs.map +1 -1
- package/lib/abstract-classes/form-base.d.ts +1 -0
- package/lib/abstract-classes/report-view-base.component.d.ts +2 -2
- package/lib/barsa-novin-ray-core.module.d.ts +5 -6
- package/lib/dynamic-component/base-view-props.d.ts +2 -2
- package/package.json +3 -5
- package/esm2022/barsa-novin-ray-core.mjs +0 -5
- package/esm2022/lib/abstract-classes/application-base.mjs +0 -24
- package/esm2022/lib/abstract-classes/barsa-api.mjs +0 -43
- package/esm2022/lib/abstract-classes/base-column-props.mjs +0 -84
- package/esm2022/lib/abstract-classes/base.component.mjs +0 -59
- package/esm2022/lib/abstract-classes/field-base.mjs +0 -232
- package/esm2022/lib/abstract-classes/files-validation-helper.mjs +0 -75
- package/esm2022/lib/abstract-classes/form-base.mjs +0 -156
- package/esm2022/lib/abstract-classes/form-field-report-page.component.mjs +0 -54
- package/esm2022/lib/abstract-classes/form-page-base.mjs +0 -129
- package/esm2022/lib/abstract-classes/form-page.component.mjs +0 -53
- package/esm2022/lib/abstract-classes/form-props.base.mjs +0 -97
- package/esm2022/lib/abstract-classes/form-toolbar-base.mjs +0 -56
- package/esm2022/lib/abstract-classes/index.mjs +0 -25
- package/esm2022/lib/abstract-classes/layout-item-base.mjs +0 -48
- package/esm2022/lib/abstract-classes/layout-panel-base.mjs +0 -63
- package/esm2022/lib/abstract-classes/linear-list-helper.mjs +0 -135
- package/esm2022/lib/abstract-classes/models.mjs +0 -184
- package/esm2022/lib/abstract-classes/module-with-dynamic-components.mjs +0 -2
- package/esm2022/lib/abstract-classes/number-base.mjs +0 -200
- package/esm2022/lib/abstract-classes/page-base.mjs +0 -97
- package/esm2022/lib/abstract-classes/page-with-form-handler-base.mjs +0 -40
- package/esm2022/lib/abstract-classes/report-base.mjs +0 -254
- package/esm2022/lib/abstract-classes/report-item-base.mjs +0 -53
- package/esm2022/lib/abstract-classes/report-view-base.component.mjs +0 -428
- package/esm2022/lib/abstract-classes/system-base.mjs +0 -24
- package/esm2022/lib/abstract-classes/tile-props.mjs +0 -46
- package/esm2022/lib/auth-guard.mjs +0 -48
- package/esm2022/lib/barsa-novin-ray-core-routing.module.mjs +0 -292
- package/esm2022/lib/barsa-novin-ray-core.module.mjs +0 -489
- package/esm2022/lib/base-ulv-setting.component.mjs +0 -45
- package/esm2022/lib/base.module.mjs +0 -28
- package/esm2022/lib/button-loading/button-loading.component.mjs +0 -18
- package/esm2022/lib/constants.mjs +0 -898
- package/esm2022/lib/container.component.mjs +0 -99
- package/esm2022/lib/controllers/base-controller.mjs +0 -30
- package/esm2022/lib/controllers/index.mjs +0 -5
- package/esm2022/lib/controllers/login-controller.mjs +0 -54
- package/esm2022/lib/controllers/login-verification-controller.mjs +0 -56
- package/esm2022/lib/controllers/models.mjs +0 -2
- package/esm2022/lib/custom-route-reuse-strategy.mjs +0 -32
- package/esm2022/lib/date-services/date-hijri.service.mjs +0 -146
- package/esm2022/lib/date-services/date-info.mjs +0 -2
- package/esm2022/lib/date-services/date-miladi.service.mjs +0 -124
- package/esm2022/lib/date-services/date-shamsi.service.mjs +0 -148
- package/esm2022/lib/date-services/date.service.mjs +0 -149
- package/esm2022/lib/date-services/index.mjs +0 -6
- package/esm2022/lib/device.mjs +0 -663
- package/esm2022/lib/directives/absolute-div-body.directive.mjs +0 -45
- package/esm2022/lib/directives/anchor-scroll.directive.mjs +0 -24
- package/esm2022/lib/directives/attr-rtl.directive.mjs +0 -35
- package/esm2022/lib/directives/base.directive.mjs +0 -55
- package/esm2022/lib/directives/body-click.directive.mjs +0 -35
- package/esm2022/lib/directives/column-resizer.directive.mjs +0 -39
- package/esm2022/lib/directives/copy.directive.mjs +0 -59
- package/esm2022/lib/directives/count-down.directive.mjs +0 -108
- package/esm2022/lib/directives/dynamic-command.directive.mjs +0 -42
- package/esm2022/lib/directives/dynamic-style.directive.mjs +0 -57
- package/esm2022/lib/directives/ellapsis-text.directive.mjs +0 -69
- package/esm2022/lib/directives/ellipsify.directive.mjs +0 -72
- package/esm2022/lib/directives/field-binding.directive.mjs +0 -17
- package/esm2022/lib/directives/fill-empty-space.mjs +0 -83
- package/esm2022/lib/directives/form-close.directive.mjs +0 -32
- package/esm2022/lib/directives/img-lazy.directive.mjs +0 -81
- package/esm2022/lib/directives/index.mjs +0 -35
- package/esm2022/lib/directives/intersection-observer.directive.mjs +0 -51
- package/esm2022/lib/directives/items-renderer.directive.mjs +0 -59
- package/esm2022/lib/directives/label-mandatory.directive.mjs +0 -48
- package/esm2022/lib/directives/load-external-files.directive.mjs +0 -37
- package/esm2022/lib/directives/mobile.directive.mjs +0 -29
- package/esm2022/lib/directives/nowraptext.directive.mjs +0 -26
- package/esm2022/lib/directives/numbers-only-input.directive.mjs +0 -26
- package/esm2022/lib/directives/placeHolder.directive.mjs +0 -15
- package/esm2022/lib/directives/prevent-default.directive.mjs +0 -20
- package/esm2022/lib/directives/render-ulv-paging.directive.mjs +0 -80
- package/esm2022/lib/directives/render-ulv-viewer.directive.mjs +0 -75
- package/esm2022/lib/directives/route-form-change.directive.mjs +0 -37
- package/esm2022/lib/directives/stop-propagation.directive.mjs +0 -20
- package/esm2022/lib/directives/table-resizer.directive.mjs +0 -235
- package/esm2022/lib/directives/ulv-command.directive.mjs +0 -42
- package/esm2022/lib/directives/until-inview.directive.mjs +0 -52
- package/esm2022/lib/directives/workflow-choice-command.directive.mjs +0 -60
- package/esm2022/lib/dynamic-component/base-dynamic.component.mjs +0 -96
- package/esm2022/lib/dynamic-component/base-form-toolbaritem-props.mjs +0 -52
- package/esm2022/lib/dynamic-component/base-item-content-props.mjs +0 -80
- package/esm2022/lib/dynamic-component/base-view-content-props.mjs +0 -20
- package/esm2022/lib/dynamic-component/base-view-item-props.mjs +0 -525
- package/esm2022/lib/dynamic-component/base-view-props.mjs +0 -162
- package/esm2022/lib/dynamic-component/dynamic-form-toolbar-item.component.mjs +0 -38
- package/esm2022/lib/dynamic-component/dynamic-form.component.mjs +0 -66
- package/esm2022/lib/dynamic-component/dynamic-item.component.mjs +0 -76
- package/esm2022/lib/dynamic-component/dynamic-layout.component.mjs +0 -63
- package/esm2022/lib/dynamic-component/index.mjs +0 -11
- package/esm2022/lib/empty-page/empty-page.component.mjs +0 -44
- package/esm2022/lib/empty-page-with-router-and-router-outlet/empty-page-with-router-and-router-outlet.component.mjs +0 -16
- package/esm2022/lib/field-ui/field-ui.component.mjs +0 -146
- package/esm2022/lib/form/form.component.mjs +0 -211
- package/esm2022/lib/form-new/form-new.component.mjs +0 -30
- package/esm2022/lib/form-page-routing/barsa-sap-ui-form-page-routing.module.mjs +0 -54
- package/esm2022/lib/form-page-routing/barsa-sap-ui-form-page.module.mjs +0 -29
- package/esm2022/lib/form-page-routing/constants.mjs +0 -9
- package/esm2022/lib/form-page-routing/index.mjs +0 -3
- package/esm2022/lib/from-intersection-observer.mjs +0 -53
- package/esm2022/lib/global-error-handler.mjs +0 -26
- package/esm2022/lib/injdection-tokens.mjs +0 -8
- package/esm2022/lib/login-enter-mobile/login-enter-mobile.component.mjs +0 -64
- package/esm2022/lib/login-verification/login-verification.component.mjs +0 -79
- package/esm2022/lib/login2/login2.component.mjs +0 -60
- package/esm2022/lib/modal-root.component.mjs +0 -33
- package/esm2022/lib/not-found/not-found.component.mjs +0 -16
- package/esm2022/lib/not-internet/not-internet.component.mjs +0 -21
- package/esm2022/lib/pipes/barsa-icon-dict.pipe.mjs +0 -19
- package/esm2022/lib/pipes/bbb-translate.pipe.mjs +0 -35
- package/esm2022/lib/pipes/can-upload.pipe.mjs +0 -30
- package/esm2022/lib/pipes/column-custom-component.pipe.mjs +0 -40
- package/esm2022/lib/pipes/column-customui.pipe.mjs +0 -32
- package/esm2022/lib/pipes/column-icon.pipe.mjs +0 -22
- package/esm2022/lib/pipes/column-value.pipe.mjs +0 -34
- package/esm2022/lib/pipes/combo-row-img.pipe.mjs +0 -16
- package/esm2022/lib/pipes/context-menu.pipe.mjs +0 -40
- package/esm2022/lib/pipes/control-ui.pipe.mjs +0 -31
- package/esm2022/lib/pipes/convert-to-style.pipe.mjs +0 -32
- package/esm2022/lib/pipes/date-time-to-caption.pipe.mjs +0 -34
- package/esm2022/lib/pipes/fileinfo-count.pipe.mjs +0 -20
- package/esm2022/lib/pipes/filter-columns-by-details.pipe.mjs +0 -22
- package/esm2022/lib/pipes/filter-string.pipe.mjs +0 -44
- package/esm2022/lib/pipes/filter-tab.pipe.mjs +0 -19
- package/esm2022/lib/pipes/filter-toolbar-control.pipe.mjs +0 -16
- package/esm2022/lib/pipes/filter-workflow-mobile.pipe.mjs +0 -24
- package/esm2022/lib/pipes/filter.pipe.mjs +0 -33
- package/esm2022/lib/pipes/find-column-by-db-name.pipe.mjs +0 -27
- package/esm2022/lib/pipes/find-preview-column.pipe.mjs +0 -19
- package/esm2022/lib/pipes/fiori-icon.pipe.mjs +0 -42
- package/esm2022/lib/pipes/groupby.pipe.mjs +0 -63
- package/esm2022/lib/pipes/header-facet-value.pipe.mjs +0 -22
- package/esm2022/lib/pipes/hide-columns-inmobile.pipe.mjs +0 -22
- package/esm2022/lib/pipes/index.mjs +0 -48
- package/esm2022/lib/pipes/list-count.pipe.mjs +0 -17
- package/esm2022/lib/pipes/merge-fields-to-columns.pipe.mjs +0 -42
- package/esm2022/lib/pipes/mo-info-ulv-data.pipe.mjs +0 -58
- package/esm2022/lib/pipes/mo-info-ulv-paging.pipe.mjs +0 -16
- package/esm2022/lib/pipes/mo-report-value-concat.pipe.mjs +0 -35
- package/esm2022/lib/pipes/mo-report-value.pipe.mjs +0 -17
- package/esm2022/lib/pipes/mo-value.pipe.mjs +0 -18
- package/esm2022/lib/pipes/multiple-groupby.pipe.mjs +0 -90
- package/esm2022/lib/pipes/numeral.pipe.mjs +0 -43
- package/esm2022/lib/pipes/picture-field-source.pipe.mjs +0 -22
- package/esm2022/lib/pipes/remove-newline.pipe.mjs +0 -20
- package/esm2022/lib/pipes/replace.pipe.mjs +0 -17
- package/esm2022/lib/pipes/reverse.pipe.mjs +0 -22
- package/esm2022/lib/pipes/rownumber.pipe.mjs +0 -25
- package/esm2022/lib/pipes/sanitize-text.pipe.mjs +0 -20
- package/esm2022/lib/pipes/seperator-fix.pipe.mjs +0 -23
- package/esm2022/lib/pipes/sort.pipe.mjs +0 -48
- package/esm2022/lib/pipes/th-image-icon.pipe.mjs +0 -22
- package/esm2022/lib/pipes/tlbButtons.pipe.mjs +0 -59
- package/esm2022/lib/pipes/total-summary.pipe.mjs +0 -16
- package/esm2022/lib/pipes/tree-item-isexpanded.pipe.mjs +0 -25
- package/esm2022/lib/pipes/visible-value.pipe.mjs +0 -18
- package/esm2022/lib/portal-page/portal-page.component.mjs +0 -23
- package/esm2022/lib/portal-page/portal-sidebar.component.mjs +0 -36
- package/esm2022/lib/redirect-home-guard.mjs +0 -51
- package/esm2022/lib/redirect-report-navigator-command/redirect-report-navigator-command.component.mjs +0 -12
- package/esm2022/lib/report-container/report-container.component.mjs +0 -63
- package/esm2022/lib/resizable-module/resizable.component.mjs +0 -31
- package/esm2022/lib/resizable-module/resizable.directive.mjs +0 -41
- package/esm2022/lib/resizable-module/resizable.module.mjs +0 -17
- package/esm2022/lib/resolvers/index.mjs +0 -6
- package/esm2022/lib/resolvers/portal-dynamic-page.resolver.mjs +0 -49
- package/esm2022/lib/resolvers/portal-form-page.resolver.mjs +0 -18
- package/esm2022/lib/resolvers/portal-page.resolver.mjs +0 -30
- package/esm2022/lib/resolvers/portal-report-page.resolver.mjs +0 -37
- package/esm2022/lib/resolvers/tile-group-breadcrumb.resolver.mjs +0 -30
- package/esm2022/lib/root-page/root-page.component.mjs +0 -21
- package/esm2022/lib/root-portal/root-portal.component.mjs +0 -164
- package/esm2022/lib/server-connection-error/server-connection-error.component.mjs +0 -19
- package/esm2022/lib/services/api.service.mjs +0 -63
- package/esm2022/lib/services/audio-recording.service.mjs +0 -95
- package/esm2022/lib/services/barsa-dialog.service.mjs +0 -80
- package/esm2022/lib/services/barsa-storage.service.mjs +0 -78
- package/esm2022/lib/services/breadcrumb.service.mjs +0 -64
- package/esm2022/lib/services/column.service.mjs +0 -20
- package/esm2022/lib/services/container.service.mjs +0 -69
- package/esm2022/lib/services/dynamic-component.service.mjs +0 -55
- package/esm2022/lib/services/form-panel.service.mjs +0 -380
- package/esm2022/lib/services/form.service.mjs +0 -14
- package/esm2022/lib/services/horizontal-layout.service.mjs +0 -16
- package/esm2022/lib/services/index.mjs +0 -29
- package/esm2022/lib/services/indexeddb.service.mjs +0 -34
- package/esm2022/lib/services/layout.service.mjs +0 -42
- package/esm2022/lib/services/local-storage.service.mjs +0 -32
- package/esm2022/lib/services/log.service.mjs +0 -50
- package/esm2022/lib/services/network-status.service.mjs +0 -15
- package/esm2022/lib/services/notification-popup.service.mjs +0 -2
- package/esm2022/lib/services/notification-sw.service.mjs +0 -180
- package/esm2022/lib/services/notification.service.mjs +0 -308
- package/esm2022/lib/services/portal.service.mjs +0 -929
- package/esm2022/lib/services/prompt-update.service.mjs +0 -56
- package/esm2022/lib/services/routing.service.mjs +0 -60
- package/esm2022/lib/services/save-scoll-position.service.mjs +0 -29
- package/esm2022/lib/services/service-worker-communication.service.mjs +0 -120
- package/esm2022/lib/services/toast.service.mjs +0 -2
- package/esm2022/lib/services/ui.service.mjs +0 -23
- package/esm2022/lib/services/ulvmain.service.mjs +0 -810
- package/esm2022/lib/services/upload.service.mjs +0 -161
- package/esm2022/lib/services/video-recording.service.mjs +0 -115
- package/esm2022/public-api.mjs +0 -44
|
@@ -1,232 +0,0 @@
|
|
|
1
|
-
import { Input, Output, EventEmitter, Component, ChangeDetectionStrategy, Self, Optional, Inject, HostBinding } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject, combineLatest, Subject } from 'rxjs';
|
|
3
|
-
import { distinctUntilChanged, map, takeUntil } from 'rxjs/operators';
|
|
4
|
-
import { BaseComponent } from './base.component';
|
|
5
|
-
import { DIALOG_SERVICE } from '../injdection-tokens';
|
|
6
|
-
import { BarsaApi } from './barsa-api';
|
|
7
|
-
import { getDeviceIsMobile, getDeviceIsTablet } from '../constants';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "../services";
|
|
10
|
-
import * as i2 from "../pipes";
|
|
11
|
-
import * as i3 from "@angular/router";
|
|
12
|
-
import * as i4 from "@angular/platform-browser";
|
|
13
|
-
import * as i5 from "../date-services";
|
|
14
|
-
export class FieldBaseComponent extends BaseComponent {
|
|
15
|
-
get customFieldInfo() {
|
|
16
|
-
return this.context.Setting.CustomFieldInfo;
|
|
17
|
-
}
|
|
18
|
-
constructor(_portalService, _bbbPipe, _picFieldSrc, _numeralPipe, _el, _cdr, _renderer2, _activatedRoute, _domSanitizer, _dialogService, _uploadService, _dateService, _audioRecorder, _videoRecoder, _columnService) {
|
|
19
|
-
super();
|
|
20
|
-
this._portalService = _portalService;
|
|
21
|
-
this._bbbPipe = _bbbPipe;
|
|
22
|
-
this._picFieldSrc = _picFieldSrc;
|
|
23
|
-
this._numeralPipe = _numeralPipe;
|
|
24
|
-
this._el = _el;
|
|
25
|
-
this._cdr = _cdr;
|
|
26
|
-
this._renderer2 = _renderer2;
|
|
27
|
-
this._activatedRoute = _activatedRoute;
|
|
28
|
-
this._domSanitizer = _domSanitizer;
|
|
29
|
-
this._dialogService = _dialogService;
|
|
30
|
-
this._uploadService = _uploadService;
|
|
31
|
-
this._dateService = _dateService;
|
|
32
|
-
this._audioRecorder = _audioRecorder;
|
|
33
|
-
this._videoRecoder = _videoRecoder;
|
|
34
|
-
this._columnService = _columnService;
|
|
35
|
-
this.valueChange = new EventEmitter();
|
|
36
|
-
this.formmatedValue = new EventEmitter();
|
|
37
|
-
this.isMobile = getDeviceIsMobile();
|
|
38
|
-
this.isTablet = getDeviceIsTablet();
|
|
39
|
-
this.mobileConfig = {
|
|
40
|
-
title: 'انتخاب',
|
|
41
|
-
approveButtonText: 'تایید',
|
|
42
|
-
cancelButtonText: 'انصراف',
|
|
43
|
-
hasCloseButton: true,
|
|
44
|
-
dialogConfig: {
|
|
45
|
-
ariaLabel: 'انتخاب'
|
|
46
|
-
}
|
|
47
|
-
};
|
|
48
|
-
this._refreshSource = new Subject();
|
|
49
|
-
this._valueChangedSource = new Subject();
|
|
50
|
-
this._disableChangedSource = new BehaviorSubject(false);
|
|
51
|
-
this._readonlyChangedSource = new BehaviorSubject(false);
|
|
52
|
-
this.refresh$ = this._refreshSource.asObservable().pipe(takeUntil(this._onDestroy$));
|
|
53
|
-
this.value$ = this._valueChangedSource.asObservable().pipe(takeUntil(this._onDestroy$));
|
|
54
|
-
this.deviceSize$ = this._portalService.deviceSize$;
|
|
55
|
-
this.disable$ = this._disableChangedSource
|
|
56
|
-
.asObservable()
|
|
57
|
-
.pipe(takeUntil(this._onDestroy$), distinctUntilChanged());
|
|
58
|
-
this.readonly$ = this._readonlyChangedSource
|
|
59
|
-
.asObservable()
|
|
60
|
-
.pipe(takeUntil(this._onDestroy$), distinctUntilChanged());
|
|
61
|
-
this.disableOrReadonly$ = combineLatest([this.readonly$, this.disable$]).pipe(map(([disable, readonly]) => disable || readonly), distinctUntilChanged());
|
|
62
|
-
this.el = _el;
|
|
63
|
-
}
|
|
64
|
-
ngOnInit() {
|
|
65
|
-
super.ngOnInit();
|
|
66
|
-
if (this.context) {
|
|
67
|
-
this.context.dom = this.el.nativeElement;
|
|
68
|
-
this.context.id = this.id;
|
|
69
|
-
// this.context.rendered = true;
|
|
70
|
-
this.Setting = this.context ? this.context.Setting : null;
|
|
71
|
-
const readonly = this.context?.readOnly;
|
|
72
|
-
this._setReadonly(readonly, false);
|
|
73
|
-
this._setDisable(this.context.disable, false);
|
|
74
|
-
// this.parameters = BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.CustomUi.Parameters', null);
|
|
75
|
-
// if (!this.parameters) {
|
|
76
|
-
// this.parameters = BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.CustomUi.Settings', null);
|
|
77
|
-
// }
|
|
78
|
-
this.JsonExtraProp = BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.JsonExtraProp', null);
|
|
79
|
-
}
|
|
80
|
-
this._addListener();
|
|
81
|
-
this._setMobileConfig();
|
|
82
|
-
}
|
|
83
|
-
ngOnDestroy() {
|
|
84
|
-
super.ngOnDestroy();
|
|
85
|
-
this._removeListener();
|
|
86
|
-
}
|
|
87
|
-
ngAfterViewInit() {
|
|
88
|
-
super.ngAfterViewInit();
|
|
89
|
-
if (this.context) {
|
|
90
|
-
this.context.rendered = true;
|
|
91
|
-
}
|
|
92
|
-
this._columnService?.controlRendered();
|
|
93
|
-
if (this.focusControl) {
|
|
94
|
-
const elDom = this._el.nativeElement;
|
|
95
|
-
const focusableNodeList = elDom.querySelectorAll(' button, [href], input, select, textarea, [tabindex]:not([tabindex=”-1″])');
|
|
96
|
-
let focused = false;
|
|
97
|
-
focusableNodeList.forEach((el) => {
|
|
98
|
-
const tagName = el.tagName.toLocaleLowerCase();
|
|
99
|
-
if (!focused &&
|
|
100
|
-
el.offsetWidth > 0 &&
|
|
101
|
-
el.offsetHeight > 0 &&
|
|
102
|
-
el.getAttribute('disabled') !== 'true' &&
|
|
103
|
-
el.getAttribute('ng-reflect-disabled') !== 'true' &&
|
|
104
|
-
!tagName.startsWith('fdp')) {
|
|
105
|
-
el.focus();
|
|
106
|
-
focused = true;
|
|
107
|
-
}
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
fireContextEvent(event, value, value1, value2) {
|
|
112
|
-
this.context.fireEvent(event, value, value1, value2);
|
|
113
|
-
}
|
|
114
|
-
_setMobileConfig() {
|
|
115
|
-
const mobileConfig = this.mobileConfig;
|
|
116
|
-
mobileConfig.title = this.Setting?.ControlFieldCaptionTranslated;
|
|
117
|
-
mobileConfig.dialogConfig && (mobileConfig.dialogConfig.ariaLabel = mobileConfig.title);
|
|
118
|
-
mobileConfig.approveButtonText = this._bbbPipe.transform('Ok');
|
|
119
|
-
mobileConfig.cancelButtonText = this._bbbPipe.transform('Cancel');
|
|
120
|
-
}
|
|
121
|
-
_addListener() {
|
|
122
|
-
if (this.context && this.context.on) {
|
|
123
|
-
this.context.on({
|
|
124
|
-
ControlValueChanged: this._setValue.bind(this),
|
|
125
|
-
ControlDisableChanged: this._setDisable.bind(this),
|
|
126
|
-
ControlReadonlyChanged: this._setReadonly.bind(this),
|
|
127
|
-
ControlRefresh: this._setRefresh.bind(this),
|
|
128
|
-
ConfigChanged: this._configChaned.bind(this)
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
_removeListener() {
|
|
133
|
-
if (this.context && this.context.un) {
|
|
134
|
-
this.context.un('ControlValueChanged', this._setValue);
|
|
135
|
-
this.context.un('ControlDisableChanged', this._setDisable);
|
|
136
|
-
this.context.un('ControlReadonlyChanged', this._setReadonly);
|
|
137
|
-
this.context.un('ControlRefresh', this._setRefresh);
|
|
138
|
-
this.context.un('ConfigChanged', this._configChaned);
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
_configChaned(options) {
|
|
142
|
-
// implemented by child components
|
|
143
|
-
this._cdr.detectChanges();
|
|
144
|
-
}
|
|
145
|
-
_setValue(value) {
|
|
146
|
-
this.value = value;
|
|
147
|
-
this._valueChangedSource.next(value);
|
|
148
|
-
this._cdr.detectChanges();
|
|
149
|
-
}
|
|
150
|
-
_setRefresh(value) {
|
|
151
|
-
this._refreshSource.next(value);
|
|
152
|
-
this._cdr.detectChanges();
|
|
153
|
-
}
|
|
154
|
-
_setDisable(value, changeDetect = true) {
|
|
155
|
-
this._disableChangedSource.next(value);
|
|
156
|
-
if (changeDetect) {
|
|
157
|
-
this._cdr.detectChanges();
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
_setReadonly(value, changeDetect = true) {
|
|
161
|
-
this._readonlyChangedSource.next(value);
|
|
162
|
-
if (changeDetect) {
|
|
163
|
-
this._cdr.detectChanges();
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: FieldBaseComponent, deps: [{ token: i1.PortalService }, { token: i2.BbbTranslatePipe }, { token: i2.PictureFieldSourcePipe }, { token: i2.NumeralPipe }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i3.ActivatedRoute }, { token: i4.DomSanitizer }, { token: DIALOG_SERVICE, optional: true }, { token: i1.UploadService, optional: true, self: true }, { token: i5.DateService, optional: true, self: true }, { token: i1.AudioRecordingService, optional: true, self: true }, { token: i1.VideoRecordingService, optional: true, self: true }, { token: i1.ColumnService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
167
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: FieldBaseComponent, selector: "bnrc-field-base", inputs: { context: "context", focusControl: "focusControl", layoutInfo: "layoutInfo", value: "value", width: "width", height: "height", formHeight: "formHeight", inlineEdit: "inlineEdit", formContainer: "formContainer", id: "id", parametes: "parametes" }, outputs: { valueChange: "valueChange", formmatedValue: "formmatedValue" }, host: { properties: { "class.isMobile": "this.isMobile", "class.isTablet": "this.isTablet" } }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
168
|
-
}
|
|
169
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: FieldBaseComponent, decorators: [{
|
|
170
|
-
type: Component,
|
|
171
|
-
args: [{
|
|
172
|
-
selector: 'bnrc-field-base',
|
|
173
|
-
template: '',
|
|
174
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
|
175
|
-
}]
|
|
176
|
-
}], ctorParameters: () => [{ type: i1.PortalService }, { type: i2.BbbTranslatePipe }, { type: i2.PictureFieldSourcePipe }, { type: i2.NumeralPipe }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }, { type: i3.ActivatedRoute }, { type: i4.DomSanitizer }, { type: undefined, decorators: [{
|
|
177
|
-
type: Optional
|
|
178
|
-
}, {
|
|
179
|
-
type: Inject,
|
|
180
|
-
args: [DIALOG_SERVICE]
|
|
181
|
-
}] }, { type: i1.UploadService, decorators: [{
|
|
182
|
-
type: Self
|
|
183
|
-
}, {
|
|
184
|
-
type: Optional
|
|
185
|
-
}] }, { type: i5.DateService, decorators: [{
|
|
186
|
-
type: Self
|
|
187
|
-
}, {
|
|
188
|
-
type: Optional
|
|
189
|
-
}] }, { type: i1.AudioRecordingService, decorators: [{
|
|
190
|
-
type: Self
|
|
191
|
-
}, {
|
|
192
|
-
type: Optional
|
|
193
|
-
}] }, { type: i1.VideoRecordingService, decorators: [{
|
|
194
|
-
type: Self
|
|
195
|
-
}, {
|
|
196
|
-
type: Optional
|
|
197
|
-
}] }, { type: i1.ColumnService, decorators: [{
|
|
198
|
-
type: Optional
|
|
199
|
-
}] }], propDecorators: { context: [{
|
|
200
|
-
type: Input
|
|
201
|
-
}], focusControl: [{
|
|
202
|
-
type: Input
|
|
203
|
-
}], layoutInfo: [{
|
|
204
|
-
type: Input
|
|
205
|
-
}], value: [{
|
|
206
|
-
type: Input
|
|
207
|
-
}], width: [{
|
|
208
|
-
type: Input
|
|
209
|
-
}], height: [{
|
|
210
|
-
type: Input
|
|
211
|
-
}], formHeight: [{
|
|
212
|
-
type: Input
|
|
213
|
-
}], inlineEdit: [{
|
|
214
|
-
type: Input
|
|
215
|
-
}], formContainer: [{
|
|
216
|
-
type: Input
|
|
217
|
-
}], id: [{
|
|
218
|
-
type: Input
|
|
219
|
-
}], parametes: [{
|
|
220
|
-
type: Input
|
|
221
|
-
}], valueChange: [{
|
|
222
|
-
type: Output
|
|
223
|
-
}], formmatedValue: [{
|
|
224
|
-
type: Output
|
|
225
|
-
}], isMobile: [{
|
|
226
|
-
type: HostBinding,
|
|
227
|
-
args: ['class.isMobile']
|
|
228
|
-
}], isTablet: [{
|
|
229
|
-
type: HostBinding,
|
|
230
|
-
args: ['class.isTablet']
|
|
231
|
-
}] } });
|
|
232
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLW5vdmluLXJheS1jb3JlL3NyYy9saWIvYWJzdHJhY3QtY2xhc3Nlcy9maWVsZC1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixTQUFTLEVBTVQsdUJBQXVCLEVBRXZCLElBQUksRUFDSixRQUFRLEVBQ1IsTUFBTSxFQUNOLFdBQVcsRUFDZCxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFakQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR3RELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFdkMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDOzs7Ozs7O0FBNEJwRSxNQUFNLE9BQWdCLGtCQUFtQixTQUFRLGFBQWE7SUFtQzFELElBQUksZUFBZTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDO0lBQ2hELENBQUM7SUFNRCxZQUNjLGNBQTZCLEVBQzdCLFFBQTBCLEVBQzFCLFlBQW9DLEVBQ3BDLFlBQXlCLEVBQ3pCLEdBQWUsRUFDZixJQUF1QixFQUN2QixVQUFxQixFQUNyQixlQUErQixFQUMvQixhQUEyQixFQUNTLGNBQW1CLEVBQ25DLGNBQTZCLEVBQzdCLFlBQXlCLEVBQ3pCLGNBQXFDLEVBQ3JDLGFBQW9DLEVBQzVDLGNB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SSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzlCLENBQUM7SUFDTCxDQUFDOzhHQXhMaUIsa0JBQWtCLDhSQXFEWixjQUFjO2tHQXJEcEIsa0JBQWtCLHlmQUgxQixFQUFFOzsyRkFHTSxrQkFBa0I7a0JBTHZDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsUUFBUSxFQUFFLEVBQUU7b0JBQ1osZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2xEOzswQkFzRFEsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxjQUFjOzswQkFDakMsSUFBSTs7MEJBQUksUUFBUTs7MEJBQ2hCLElBQUk7OzBCQUFJLFFBQVE7OzBCQUNoQixJQUFJOzswQkFBSSxRQUFROzswQkFDaEIsSUFBSTs7MEJBQUksUUFBUTs7MEJBQ2hCLFFBQVE7eUNBekRKLE9BQU87c0JBQWYsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUN3QixRQUFRO3NCQUF0QyxXQUFXO3VCQUFDLGdCQUFnQjtnQkFDRSxRQUFRO3NCQUF0QyxXQUFXO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBDb21wb25lbnQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgRWxlbWVudFJlZixcbiAgICBPbkluaXQsXG4gICAgT25EZXN0cm95LFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgUmVuZGVyZXIyLFxuICAgIFNlbGYsXG4gICAgT3B0aW9uYWwsXG4gICAgSW5qZWN0LFxuICAgIEhvc3RCaW5kaW5nXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4vYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9kYXRlLXNlcnZpY2VzJztcbmltcG9ydCB7IERJQUxPR19TRVJWSUNFIH0gZnJvbSAnLi4vaW5qZGVjdGlvbi10b2tlbnMnO1xuaW1wb3J0IHsgQmJiVHJhbnNsYXRlUGlwZSwgTnVtZXJhbFBpcGUsIFBpY3R1cmVGaWVsZFNvdXJjZVBpcGUgfSBmcm9tICcuLi9waXBlcyc7XG5pbXBvcnQgeyBBdWRpb1JlY29yZGluZ1NlcnZpY2UsIENvbHVtblNlcnZpY2UsIFBvcnRhbFNlcnZpY2UsIFVwbG9hZFNlcnZpY2UsIFZpZGVvUmVjb3JkaW5nU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IEJhcnNhQXBpIH0gZnJvbSAnLi9iYXJzYS1hcGknO1xuaW1wb3J0IHsgR2VuZXJhbENvbnRyb2xJbmZvTW9kZWwsIEFiYnJldmF0aW9uRGV2aWNlU2l6ZSwgTWV0YW9iamVjdERhdGFNb2RlbCB9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7IGdldERldmljZUlzTW9iaWxlLCBnZXREZXZpY2VJc1RhYmxldCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmllbGRTZXR0aW5nIHtcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgQ29udHJvbEZpZWxkQ2FwdGlvbjogc3RyaW5nO1xuICAgIENvbnRyb2xGaWVsZENhcHRpb25UcmFuc2xhdGVkOiBzdHJpbmc7XG4gICAgQ29udHJvbEZpZWxkRGVmSWQ6IHN0cmluZztcbiAgICBDb250cm9sTmFtZTogc3RyaW5nO1xuICAgIFJlbGF0ZWRGaWVsZExpc3Q6IFtdO1xuICAgIEhpZGU6IGJvb2xlYW47XG4gICAgeHR5cGU6IHN0cmluZztcbiAgICBMYWJlbFBvc2l0aW9uOiBzdHJpbmc7XG4gICAgSXNNYW5kYXRvcnk6IGJvb2xlYW47XG4gICAgSXNWaXNpYmxlOiBib29sZWFuO1xuICAgIFNob3dMYWJlbDogYm9vbGVhbjtcbiAgICBJc1JlYWRPbmx5OiBib29sZWFuO1xuICAgIElzRW5hYmxlZDogYm9vbGVhbjtcbiAgICBJc0JvbGQ6IGJvb2xlYW47XG4gICAgSXNBdXRvbWF0aWM6IGJvb2xlYW47XG4gICAgSnNvbkV4dHJhUHJvcDogYW55IHwgbnVsbDtcbiAgICBGaWVsZEljb246IHN0cmluZztcbiAgICBJc0x0cjogYm9vbGVhbjtcbn1cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYm5yYy1maWVsZC1iYXNlJyxcbiAgICB0ZW1wbGF0ZTogJycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRmllbGRCYXNlQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcbiAgICBASW5wdXQoKSBjb250ZXh0OiBhbnk7XG4gICAgQElucHV0KCkgZm9jdXNDb250cm9sOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGxheW91dEluZm86IGFueTtcbiAgICBASW5wdXQoKSB2YWx1ZTogYW55O1xuICAgIEBJbnB1dCgpIHdpZHRoOiBudW1iZXI7XG4gICAgQElucHV0KCkgaGVpZ2h0OiBudW1iZXI7XG4gICAgQElucHV0KCkgZm9ybUhlaWdodDogbnVtYmVyO1xuICAgIEBJbnB1dCgpIGlubGluZUVkaXQ6IGJvb2xlYW47XG4gICAgQElucHV0KCkgZm9ybUNvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG4gICAgQElucHV0KCkgaWQ6IHN0cmluZztcbiAgICBASW5wdXQoKSBwYXJhbWV0ZXM6IE1ldGFvYmplY3REYXRhTW9kZWw7XG4gICAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIGZvcm1tYXRlZFZhbHVlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pc01vYmlsZScpIGlzTW9iaWxlID0gZ2V0RGV2aWNlSXNNb2JpbGUoKTtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlzVGFibGV0JykgaXNUYWJsZXQgPSBnZXREZXZpY2VJc1RhYmxldCgpO1xuICAgIEpzb25FeHRyYVByb3A6IGFueTtcbiAgICBwYXJhbWV0ZXJzOiBhbnk7XG4gICAgU2V0dGluZzogR2VuZXJhbENvbnRyb2xJbmZvTW9kZWw7XG4gICAgcmVmcmVzaCQ6IE9ic2VydmFibGU8YW55PjtcbiAgICB2YWx1ZSQ6IE9ic2VydmFibGU8YW55PjtcbiAgICBkaXNhYmxlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICByZWFkb25seSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgZGlzYWJsZU9yUmVhZG9ubHkkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIGRldmljZVNpemUkOiBPYnNlcnZhYmxlPEFiYnJldmF0aW9uRGV2aWNlU2l6ZT47XG4gICAgZWw6IGFueTtcbiAgICBtb2JpbGVDb25maWc6IGFueSA9IHtcbiAgICAgICAgdGl0bGU6ICfYp9mG2KrYrtin2KgnLFxuICAgICAgICBhcHByb3ZlQnV0dG9uVGV4dDogJ9iq2KfbjNuM2K8nLFxuICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiAn2KfZhti12LHYp9mBJyxcbiAgICAgICAgaGFzQ2xvc2VCdXR0b246IHRydWUsXG4gICAgICAgIGRpYWxvZ0NvbmZpZzoge1xuICAgICAgICAgICAgYXJpYUxhYmVsOiAn2KfZhtiq2K7Yp9ioJ1xuICAgICAgICB9XG4gICAgfTtcbiAgICBnZXQgY3VzdG9tRmllbGRJbmZvKCk6IE1ldGFvYmplY3REYXRhTW9kZWwge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250ZXh0LlNldHRpbmcuQ3VzdG9tRmllbGRJbmZvO1xuICAgIH1cbiAgICBwcml2YXRlIF9yZWZyZXNoU291cmNlID0gbmV3IFN1YmplY3Q8YW55PigpO1xuICAgIHByaXZhdGUgX3ZhbHVlQ2hhbmdlZFNvdXJjZSA9IG5ldyBTdWJqZWN0PGFueT4oKTtcbiAgICBwcml2YXRlIF9kaXNhYmxlQ2hhbmdlZFNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIHByaXZhdGUgX3JlYWRvbmx5Q2hhbmdlZFNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBfcG9ydGFsU2VydmljZTogUG9ydGFsU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIF9iYmJQaXBlOiBCYmJUcmFuc2xhdGVQaXBlLFxuICAgICAgICBwcm90ZWN0ZWQgX3BpY0ZpZWxkU3JjOiBQaWN0dXJlRmllbGRTb3VyY2VQaXBlLFxuICAgICAgICBwcm90ZWN0ZWQgX251bWVyYWxQaXBlOiBOdW1lcmFsUGlwZSxcbiAgICAgICAgcHJvdGVjdGVkIF9lbDogRWxlbWVudFJlZixcbiAgICAgICAgcHJvdGVjdGVkIF9jZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcm90ZWN0ZWQgX3JlbmRlcmVyMjogUmVuZGVyZXIyLFxuICAgICAgICBwcm90ZWN0ZWQgX2FjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgcHJvdGVjdGVkIF9kb21TYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChESUFMT0dfU0VSVklDRSkgcHJvdGVjdGVkIF9kaWFsb2dTZXJ2aWNlOiBhbnksXG4gICAgICAgIEBTZWxmKCkgQE9wdGlvbmFsKCkgcHJvdGVjdGVkIF91cGxvYWRTZXJ2aWNlOiBVcGxvYWRTZXJ2aWNlLFxuICAgICAgICBAU2VsZigpIEBPcHRpb25hbCgpIHByb3RlY3RlZCBfZGF0ZVNlcnZpY2U6IERhdGVTZXJ2aWNlLFxuICAgICAgICBAU2VsZigpIEBPcHRpb25hbCgpIHByb3RlY3RlZCBfYXVkaW9SZWNvcmRlcjogQXVkaW9SZWNvcmRpbmdTZXJ2aWNlLFxuICAgICAgICBAU2VsZigpIEBPcHRpb25hbCgpIHByb3RlY3RlZCBfdmlkZW9SZWNvZGVyOiBWaWRlb1JlY29yZGluZ1NlcnZpY2UsXG4gICAgICAgIEBPcHRpb25hbCgpIHByb3RlY3RlZCBfY29sdW1uU2VydmljZTogQ29sdW1uU2VydmljZVxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnJlZnJlc2gkID0gdGhpcy5fcmVmcmVzaFNvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSk7XG4gICAgICAgIHRoaXMudmFsdWUkID0gdGhpcy5fdmFsdWVDaGFuZ2VkU291cmNlLmFzT2JzZXJ2YWJsZSgpLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKTtcbiAgICAgICAgdGhpcy5kZXZpY2VTaXplJCA9IHRoaXMuX3BvcnRhbFNlcnZpY2UuZGV2aWNlU2l6ZSQ7XG4gICAgICAgIHRoaXMuZGlzYWJsZSQgPSB0aGlzLl9kaXNhYmxlQ2hhbmdlZFNvdXJjZVxuICAgICAgICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICAgICAgICB0aGlzLnJlYWRvbmx5JCA9IHRoaXMuX3JlYWRvbmx5Q2hhbmdlZFNvdXJjZVxuICAgICAgICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICAgICAgICB0aGlzLmRpc2FibGVPclJlYWRvbmx5JCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMucmVhZG9ubHkkLCB0aGlzLmRpc2FibGUkXSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoW2Rpc2FibGUsIHJlYWRvbmx5XSkgPT4gZGlzYWJsZSB8fCByZWFkb25seSksXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZWwgPSBfZWw7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIGlmICh0aGlzLmNvbnRleHQpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC5kb20gPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHQuaWQgPSB0aGlzLmlkO1xuXG4gICAgICAgICAgICAvLyB0aGlzLmNvbnRleHQucmVuZGVyZWQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5TZXR0aW5nID0gdGhpcy5jb250ZXh0ID8gdGhpcy5jb250ZXh0LlNldHRpbmcgOiBudWxsO1xuICAgICAgICAgICAgY29uc3QgcmVhZG9ubHkgPSB0aGlzLmNvbnRleHQ/LnJlYWRPbmx5O1xuICAgICAgICAgICAgdGhpcy5fc2V0UmVhZG9ubHkocmVhZG9ubHksIGZhbHNlKTtcbiAgICAgICAgICAgIHRoaXMuX3NldERpc2FibGUodGhpcy5jb250ZXh0LmRpc2FibGUsIGZhbHNlKTtcbiAgICAgICAgICAgIC8vIHRoaXMucGFyYW1ldGVycyA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKHRoaXMuY29udGV4dCwgJ1NldHRpbmcuQ3VzdG9tVWkuUGFyYW1ldGVycycsIG51bGwpO1xuICAgICAgICAgICAgLy8gaWYgKCF0aGlzLnBhcmFtZXRlcnMpIHtcbiAgICAgICAgICAgIC8vICAgICB0aGlzLnBhcmFtZXRlcnMgPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZSh0aGlzLmNvbnRleHQsICdTZXR0aW5nLkN1c3RvbVVpLlNldHRpbmdzJywgbnVsbCk7XG4gICAgICAgICAgICAvLyB9XG4gICAgICAgICAgICB0aGlzLkpzb25FeHRyYVByb3AgPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZSh0aGlzLmNvbnRleHQsICdTZXR0aW5nLkpzb25FeHRyYVByb3AnLCBudWxsKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9hZGRMaXN0ZW5lcigpO1xuICAgICAgICB0aGlzLl9zZXRNb2JpbGVDb25maWcoKTtcbiAgICB9XG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgICAgIHRoaXMuX3JlbW92ZUxpc3RlbmVyKCk7XG4gICAgfVxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgICAgIGlmICh0aGlzLmNvbnRleHQpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC5yZW5kZXJlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fY29sdW1uU2VydmljZT8uY29udHJvbFJlbmRlcmVkKCk7XG4gICAgICAgIGlmICh0aGlzLmZvY3VzQ29udHJvbCkge1xuICAgICAgICAgICAgY29uc3QgZWxEb20gPSB0aGlzLl9lbC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgICAgY29uc3QgZm9jdXNhYmxlTm9kZUxpc3Q6IE5vZGVMaXN0T2Y8SFRNTEVsZW1lbnQ+ID0gZWxEb20ucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgICAgICAgICAnIGJ1dHRvbiwgW2hyZWZdLCBpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSwgW3RhYmluZGV4XTpub3QoW3RhYmluZGV4PeKAnS0x4oCzXSknXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbGV0IGZvY3VzZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGZvY3VzYWJsZU5vZGVMaXN0LmZvckVhY2goKGVsOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRhZ05hbWU6IHN0cmluZyA9IGVsLnRhZ05hbWUudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICFmb2N1c2VkICYmXG4gICAgICAgICAgICAgICAgICAgIGVsLm9mZnNldFdpZHRoID4gMCAmJlxuICAgICAgICAgICAgICAgICAgICBlbC5vZmZzZXRIZWlnaHQgPiAwICYmXG4gICAgICAgICAgICAgICAgICAgIGVsLmdldEF0dHJpYnV0ZSgnZGlzYWJsZWQnKSAhPT0gJ3RydWUnICYmXG4gICAgICAgICAgICAgICAgICAgIGVsLmdldEF0dHJpYnV0ZSgnbmctcmVmbGVjdC1kaXNhYmxlZCcpICE9PSAndHJ1ZScgJiZcbiAgICAgICAgICAgICAgICAgICAgIXRhZ05hbWUuc3RhcnRzV2l0aCgnZmRwJylcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgZWwuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICAgICAgZm9jdXNlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmaXJlQ29udGV4dEV2ZW50KGV2ZW50OiBzdHJpbmcsIHZhbHVlOiBhbnksIHZhbHVlMT86IGFueSwgdmFsdWUyPzogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29udGV4dC5maXJlRXZlbnQoZXZlbnQsIHZhbHVlLCB2YWx1ZTEsIHZhbHVlMik7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfc2V0TW9iaWxlQ29uZmlnKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBtb2JpbGVDb25maWcgPSB0aGlzLm1vYmlsZUNvbmZpZztcbiAgICAgICAgbW9iaWxlQ29uZmlnLnRpdGxlID0gdGhpcy5TZXR0aW5nPy5Db250cm9sRmllbGRDYXB0aW9uVHJhbnNsYXRlZDtcbiAgICAgICAgbW9iaWxlQ29uZmlnLmRpYWxvZ0NvbmZpZyAmJiAobW9iaWxlQ29uZmlnLmRpYWxvZ0NvbmZpZy5hcmlhTGFiZWwgPSBtb2JpbGVDb25maWcudGl0bGUpO1xuICAgICAgICBtb2JpbGVDb25maWcuYXBwcm92ZUJ1dHRvblRleHQgPSB0aGlzLl9iYmJQaXBlLnRyYW5zZm9ybSgnT2snKTtcbiAgICAgICAgbW9iaWxlQ29uZmlnLmNhbmNlbEJ1dHRvblRleHQgPSB0aGlzLl9iYmJQaXBlLnRyYW5zZm9ybSgnQ2FuY2VsJyk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfYWRkTGlzdGVuZXIoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRleHQgJiYgdGhpcy5jb250ZXh0Lm9uKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHQub24oe1xuICAgICAgICAgICAgICAgIENvbnRyb2xWYWx1ZUNoYW5nZWQ6IHRoaXMuX3NldFZhbHVlLmJpbmQodGhpcyksXG4gICAgICAgICAgICAgICAgQ29udHJvbERpc2FibGVDaGFuZ2VkOiB0aGlzLl9zZXREaXNhYmxlLmJpbmQodGhpcyksXG4gICAgICAgICAgICAgICAgQ29udHJvbFJlYWRvbmx5Q2hhbmdlZDogdGhpcy5fc2V0UmVhZG9ubHkuYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgICBDb250cm9sUmVmcmVzaDogdGhpcy5fc2V0UmVmcmVzaC5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgICAgIENvbmZpZ0NoYW5nZWQ6IHRoaXMuX2NvbmZpZ0NoYW5lZC5iaW5kKHRoaXMpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3JlbW92ZUxpc3RlbmVyKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jb250ZXh0ICYmIHRoaXMuY29udGV4dC51bikge1xuICAgICAgICAgICAgdGhpcy5jb250ZXh0LnVuKCdDb250cm9sVmFsdWVDaGFuZ2VkJywgdGhpcy5fc2V0VmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5jb250ZXh0LnVuKCdDb250cm9sRGlzYWJsZUNoYW5nZWQnLCB0aGlzLl9zZXREaXNhYmxlKTtcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC51bignQ29udHJvbFJlYWRvbmx5Q2hhbmdlZCcsIHRoaXMuX3NldFJlYWRvbmx5KTtcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC51bignQ29udHJvbFJlZnJlc2gnLCB0aGlzLl9zZXRSZWZyZXNoKTtcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC51bignQ29uZmlnQ2hhbmdlZCcsIHRoaXMuX2NvbmZpZ0NoYW5lZCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHJvdGVjdGVkIF9jb25maWdDaGFuZWQob3B0aW9ucyk6IHZvaWQge1xuICAgICAgICAvLyBpbXBsZW1lbnRlZCBieSBjaGlsZCBjb21wb25lbnRzXG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfc2V0VmFsdWUodmFsdWUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLl92YWx1ZUNoYW5nZWRTb3VyY2UubmV4dCh2YWx1ZSk7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfc2V0UmVmcmVzaCh2YWx1ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9yZWZyZXNoU291cmNlLm5leHQodmFsdWUpO1xuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3NldERpc2FibGUodmFsdWUsIGNoYW5nZURldGVjdCA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZGlzYWJsZUNoYW5nZWRTb3VyY2UubmV4dCh2YWx1ZSk7XG4gICAgICAgIGlmIChjaGFuZ2VEZXRlY3QpIHtcbiAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHJvdGVjdGVkIF9zZXRSZWFkb25seSh2YWx1ZSwgY2hhbmdlRGV0ZWN0ID0gdHJ1ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9yZWFkb25seUNoYW5nZWRTb3VyY2UubmV4dCh2YWx1ZSk7XG4gICAgICAgIGlmIChjaGFuZ2VEZXRlY3QpIHtcbiAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import { BaseComponent } from './base.component';
|
|
2
|
-
import { formatBytes } from '../constants';
|
|
3
|
-
import { BarsaApi } from './barsa-api';
|
|
4
|
-
export class FilesValidationHelper extends BaseComponent {
|
|
5
|
-
get maxFileCount() {
|
|
6
|
-
return this._maxFileCount;
|
|
7
|
-
}
|
|
8
|
-
set maxFileCount(val) {
|
|
9
|
-
this._maxFileCount = val;
|
|
10
|
-
}
|
|
11
|
-
get maxFileSize() {
|
|
12
|
-
return this._maxFileSize;
|
|
13
|
-
}
|
|
14
|
-
set maxFileSize(val) {
|
|
15
|
-
this._maxFileSize = val * 1024;
|
|
16
|
-
}
|
|
17
|
-
get maxTotalFileSize() {
|
|
18
|
-
return this._maxTotalFileSize;
|
|
19
|
-
}
|
|
20
|
-
set maxTotalFileSize(val) {
|
|
21
|
-
this._maxTotalFileSize = val * 1024;
|
|
22
|
-
}
|
|
23
|
-
constructor(maxFileCount, maxFileSize, maxTotalFileSize) {
|
|
24
|
-
super();
|
|
25
|
-
this.maxFileCount = Number(maxFileCount);
|
|
26
|
-
this.maxFileSize = Number(maxFileSize);
|
|
27
|
-
this.maxTotalFileSize = Number(maxTotalFileSize);
|
|
28
|
-
}
|
|
29
|
-
validateFiles(files) {
|
|
30
|
-
return this._validateSize(files);
|
|
31
|
-
}
|
|
32
|
-
_validateSize(files) {
|
|
33
|
-
const totalFileSize = files.reduce((accumulator, currFile) => accumulator + currFile.size, 0);
|
|
34
|
-
const uplaodTotalSizeTooBigText = BarsaApi.BBB['Uplaod_TotalSizeTooBig'];
|
|
35
|
-
const uplaodFileTooBigText = BarsaApi.BBB['Uplaod_FileTooBig'];
|
|
36
|
-
const maxFilesExceeded = BarsaApi.BBB['Uplaod_MaxFilesExceeded'];
|
|
37
|
-
let errorMsg = '';
|
|
38
|
-
if (files.length > this.maxFileCount && this.maxFileCount > 0) {
|
|
39
|
-
errorMsg = maxFilesExceeded + `(${this.maxFileCount})`;
|
|
40
|
-
}
|
|
41
|
-
const fileReachSize = [];
|
|
42
|
-
files.forEach((file) => {
|
|
43
|
-
if (file.size > this.maxFileSize) {
|
|
44
|
-
fileReachSize.push(file);
|
|
45
|
-
}
|
|
46
|
-
});
|
|
47
|
-
if (files.length > 1 && this.maxTotalFileSize > 0 && totalFileSize > this.maxTotalFileSize) {
|
|
48
|
-
errorMsg = uplaodTotalSizeTooBigText
|
|
49
|
-
?.replace('{{{filesize}}}', this._getMbSize(totalFileSize))
|
|
50
|
-
.replace('{{maxFilesize}}', this._getMbSize(this.maxTotalFileSize));
|
|
51
|
-
}
|
|
52
|
-
else if (fileReachSize.length) {
|
|
53
|
-
errorMsg += uplaodFileTooBigText
|
|
54
|
-
?.replace('{{{filesize}}}', this._getMbSize(fileReachSize[0].size))
|
|
55
|
-
.replace('{{maxFilesize}}', this._getMbSize(this.maxFileSize));
|
|
56
|
-
errorMsg +=
|
|
57
|
-
`<br/>` +
|
|
58
|
-
fileReachSize
|
|
59
|
-
.map((c, index) => `<div class="file-validation" ><strong>${index + 1}-</strong><strong>${c.name}</strong></div>`)
|
|
60
|
-
.join('<br/>');
|
|
61
|
-
}
|
|
62
|
-
if (errorMsg) {
|
|
63
|
-
BarsaApi.Ul.MsgBox.Error(errorMsg, () => { });
|
|
64
|
-
return false;
|
|
65
|
-
}
|
|
66
|
-
return true;
|
|
67
|
-
}
|
|
68
|
-
_getKbSize(size) {
|
|
69
|
-
return formatBytes(size, 2, 'KB');
|
|
70
|
-
}
|
|
71
|
-
_getMbSize(size) {
|
|
72
|
-
return formatBytes(size, 2, 'MB');
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXMtdmFsaWRhdGlvbi1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL2Fic3RyYWN0LWNsYXNzZXMvZmlsZXMtdmFsaWRhdGlvbi1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV2QyxNQUFNLE9BQU8scUJBQXNCLFNBQVEsYUFBYTtJQUtwRCxJQUFJLFlBQVk7UUFDWixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUNELElBQUksWUFBWSxDQUFDLEdBQVc7UUFDeEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUM7SUFDN0IsQ0FBQztJQUNELElBQUksV0FBVztRQUNYLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM3QixDQUFDO0lBQ0QsSUFBSSxXQUFXLENBQUMsR0FBVztRQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUM7SUFDbkMsQ0FBQztJQUNELElBQUksZ0JBQWdCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2xDLENBQUM7SUFDRCxJQUFJLGdCQUFnQixDQUFDLEdBQVc7UUFDNUIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUM7SUFDeEMsQ0FBQztJQUVELFlBQVksWUFBb0IsRUFBRSxXQUFtQixFQUFFLGdCQUF3QjtRQUMzRSxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxXQUFX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VyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUNPLFVBQVUsQ0FBQyxJQUFJO1FBQ25CLE9BQU8sV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdEMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4vYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgZm9ybWF0Qnl0ZXMgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgQmFyc2FBcGkgfSBmcm9tICcuL2JhcnNhLWFwaSc7XG5cbmV4cG9ydCBjbGFzcyBGaWxlc1ZhbGlkYXRpb25IZWxwZXIgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgICBfbWF4RmlsZUNvdW50OiBudW1iZXI7XG4gICAgX21heEZpbGVTaXplOiBudW1iZXI7XG4gICAgX21heFRvdGFsRmlsZVNpemU6IG51bWJlcjtcblxuICAgIGdldCBtYXhGaWxlQ291bnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21heEZpbGVDb3VudDtcbiAgICB9XG4gICAgc2V0IG1heEZpbGVDb3VudCh2YWw6IG51bWJlcikge1xuICAgICAgICB0aGlzLl9tYXhGaWxlQ291bnQgPSB2YWw7XG4gICAgfVxuICAgIGdldCBtYXhGaWxlU2l6ZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fbWF4RmlsZVNpemU7XG4gICAgfVxuICAgIHNldCBtYXhGaWxlU2l6ZSh2YWw6IG51bWJlcikge1xuICAgICAgICB0aGlzLl9tYXhGaWxlU2l6ZSA9IHZhbCAqIDEwMjQ7XG4gICAgfVxuICAgIGdldCBtYXhUb3RhbEZpbGVTaXplKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tYXhUb3RhbEZpbGVTaXplO1xuICAgIH1cbiAgICBzZXQgbWF4VG90YWxGaWxlU2l6ZSh2YWw6IG51bWJlcikge1xuICAgICAgICB0aGlzLl9tYXhUb3RhbEZpbGVTaXplID0gdmFsICogMTAyNDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihtYXhGaWxlQ291bnQ6IG51bWJlciwgbWF4RmlsZVNpemU6IG51bWJlciwgbWF4VG90YWxGaWxlU2l6ZTogbnVtYmVyKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMubWF4RmlsZUNvdW50ID0gTnVtYmVyKG1heEZpbGVDb3VudCk7XG4gICAgICAgIHRoaXMubWF4RmlsZVNpemUgPSBOdW1iZXIobWF4RmlsZVNpemUpO1xuICAgICAgICB0aGlzLm1heFRvdGFsRmlsZVNpemUgPSBOdW1iZXIobWF4VG90YWxGaWxlU2l6ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHZhbGlkYXRlRmlsZXMoZmlsZXM6IEZpbGVbXSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsaWRhdGVTaXplKGZpbGVzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF92YWxpZGF0ZVNpemUoZmlsZXM6IEZpbGVbXSk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCB0b3RhbEZpbGVTaXplID0gZmlsZXMucmVkdWNlKChhY2N1bXVsYXRvciwgY3VyckZpbGUpID0+IGFjY3VtdWxhdG9yICsgY3VyckZpbGUuc2l6ZSwgMCk7XG4gICAgICAgIGNvbnN0IHVwbGFvZFRvdGFsU2l6ZVRvb0JpZ1RleHQgPSBCYXJzYUFwaS5CQkJbJ1VwbGFvZF9Ub3RhbFNpemVUb29CaWcnXTtcbiAgICAgICAgY29uc3QgdXBsYW9kRmlsZVRvb0JpZ1RleHQgPSBCYXJzYUFwaS5CQkJbJ1VwbGFvZF9GaWxlVG9vQmlnJ107XG4gICAgICAgIGNvbnN0IG1heEZpbGVzRXhjZWVkZWQgPSBCYXJzYUFwaS5CQkJbJ1VwbGFvZF9NYXhGaWxlc0V4Y2VlZGVkJ107XG5cbiAgICAgICAgbGV0IGVycm9yTXNnID0gJyc7XG4gICAgICAgIGlmIChmaWxlcy5sZW5ndGggPiB0aGlzLm1heEZpbGVDb3VudCAmJiB0aGlzLm1heEZpbGVDb3VudCA+IDApIHtcbiAgICAgICAgICAgIGVycm9yTXNnID0gbWF4RmlsZXNFeGNlZWRlZCArIGAoJHt0aGlzLm1heEZpbGVDb3VudH0pYDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmaWxlUmVhY2hTaXplOiBGaWxlW10gPSBbXTtcbiAgICAgICAgZmlsZXMuZm9yRWFjaCgoZmlsZSkgPT4ge1xuICAgICAgICAgICAgaWYgKGZpbGUuc2l6ZSA+IHRoaXMubWF4RmlsZVNpemUpIHtcbiAgICAgICAgICAgICAgICBmaWxlUmVhY2hTaXplLnB1c2goZmlsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZmlsZXMubGVuZ3RoID4gMSAmJiB0aGlzLm1heFRvdGFsRmlsZVNpemUgPiAwICYmIHRvdGFsRmlsZVNpemUgPiB0aGlzLm1heFRvdGFsRmlsZVNpemUpIHtcbiAgICAgICAgICAgIGVycm9yTXNnID0gdXBsYW9kVG90YWxTaXplVG9vQmlnVGV4dFxuICAgICAgICAgICAgICAgID8ucmVwbGFjZSgne3t7ZmlsZXNpemV9fX0nLCB0aGlzLl9nZXRNYlNpemUodG90YWxGaWxlU2l6ZSkpXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoJ3t7bWF4RmlsZXNpemV9fScsIHRoaXMuX2dldE1iU2l6ZSh0aGlzLm1heFRvdGFsRmlsZVNpemUpKTtcbiAgICAgICAgfSBlbHNlIGlmIChmaWxlUmVhY2hTaXplLmxlbmd0aCkge1xuICAgICAgICAgICAgZXJyb3JNc2cgKz0gdXBsYW9kRmlsZVRvb0JpZ1RleHRcbiAgICAgICAgICAgICAgICA/LnJlcGxhY2UoJ3t7e2ZpbGVzaXplfX19JywgdGhpcy5fZ2V0TWJTaXplKGZpbGVSZWFjaFNpemVbMF0uc2l6ZSkpXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoJ3t7bWF4RmlsZXNpemV9fScsIHRoaXMuX2dldE1iU2l6ZSh0aGlzLm1heEZpbGVTaXplKSk7XG4gICAgICAgICAgICBlcnJvck1zZyArPVxuICAgICAgICAgICAgICAgIGA8YnIvPmAgK1xuICAgICAgICAgICAgICAgIGZpbGVSZWFjaFNpemVcbiAgICAgICAgICAgICAgICAgICAgLm1hcChcbiAgICAgICAgICAgICAgICAgICAgICAgIChjLCBpbmRleCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgPGRpdiBjbGFzcz1cImZpbGUtdmFsaWRhdGlvblwiID48c3Ryb25nPiR7aW5kZXggKyAxfS08L3N0cm9uZz48c3Ryb25nPiR7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMubmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH08L3N0cm9uZz48L2Rpdj5gXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgLmpvaW4oJzxici8+Jyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVycm9yTXNnKSB7XG4gICAgICAgICAgICBCYXJzYUFwaS5VbC5Nc2dCb3guRXJyb3IoZXJyb3JNc2csICgpID0+IHt9KTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfZ2V0S2JTaXplKHNpemUpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gZm9ybWF0Qnl0ZXMoc2l6ZSwgMiwgJ0tCJyk7XG4gICAgfVxuICAgIHByaXZhdGUgX2dldE1iU2l6ZShzaXplKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGZvcm1hdEJ5dGVzKHNpemUsIDIsICdNQicpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
import { Input, Component, Output, EventEmitter, ChangeDetectionStrategy, Self, HostBinding } from '@angular/core';
|
|
2
|
-
import { filter, map, takeUntil, merge } from 'rxjs/operators';
|
|
3
|
-
import { BaseComponent } from './base.component';
|
|
4
|
-
import { getDeviceIsMobile, getParentHeight, getUniqueId } from '../constants';
|
|
5
|
-
import { BarsaApi } from './barsa-api';
|
|
6
|
-
import { fromIntersectionObserver } from '../from-intersection-observer';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "../services";
|
|
9
|
-
import * as i2 from "@angular/router";
|
|
10
|
-
import * as i3 from "../pipes";
|
|
11
|
-
import * as i4 from "../services/form-panel.service";
|
|
12
|
-
export class FormBaseComponent extends BaseComponent {
|
|
13
|
-
constructor(_breadcrumbService, _portalService, _router, _el, _controlUiPipe, _formPanelService, _activatedRoute, _cdr) {
|
|
14
|
-
super();
|
|
15
|
-
this._breadcrumbService = _breadcrumbService;
|
|
16
|
-
this._portalService = _portalService;
|
|
17
|
-
this._router = _router;
|
|
18
|
-
this._el = _el;
|
|
19
|
-
this._controlUiPipe = _controlUiPipe;
|
|
20
|
-
this._formPanelService = _formPanelService;
|
|
21
|
-
this._activatedRoute = _activatedRoute;
|
|
22
|
-
this._cdr = _cdr;
|
|
23
|
-
this.id = `form_${getUniqueId(4)}`;
|
|
24
|
-
this.fullscreen = false;
|
|
25
|
-
this.formClose = new EventEmitter();
|
|
26
|
-
this._formPanelService.isSearchPanel$.subscribe((isSearchPanel) => {
|
|
27
|
-
this.isSearchPanel = isSearchPanel;
|
|
28
|
-
});
|
|
29
|
-
this.hideClose$ = this._formPanelService.hideClose$;
|
|
30
|
-
this.hideTitle$ = this._formPanelService.hideTitle$;
|
|
31
|
-
this.hidePin$ = this._formPanelService.hidePin$;
|
|
32
|
-
this.toolbarVisible$ = this._formPanelService.toolbarVisible$;
|
|
33
|
-
this.title$ = this._formPanelService.title$.pipe(map((title) => (!title ? '' : getDeviceIsMobile() ? title.split(':')[0] : title)));
|
|
34
|
-
this.toolbarItems$ = this._formPanelService.toolbarItems$;
|
|
35
|
-
this.workflowButtons$ = this._formPanelService.workflowButtons$;
|
|
36
|
-
this.headerLayout$ = this._formPanelService.headerLayout$;
|
|
37
|
-
this.layout94$ = this._formPanelService.layout$;
|
|
38
|
-
this.maxContentWidth$ = this._formPanelService.maxContentWidth$;
|
|
39
|
-
this.formWidth$ = this._formPanelService.formWidth$;
|
|
40
|
-
this.headerSubtitle$ = this._formPanelService.headerSubtitle$;
|
|
41
|
-
this.avatar$ = this._formPanelService.avatar$;
|
|
42
|
-
this.circleAvatar$ = this._formPanelService.circleAvatar$;
|
|
43
|
-
this.workflowPanelUi$ = this._formPanelService.workflowPanelUi$;
|
|
44
|
-
this.view$ = this._formPanelService.view$;
|
|
45
|
-
this.mo$ = this._formPanelService.mo$;
|
|
46
|
-
this.fieldDict$ = this._formPanelService.fieldDict$;
|
|
47
|
-
this.isSimple$ = this._formPanelService.isSimpleForm$;
|
|
48
|
-
this.mask$ = this._formPanelService.mask$;
|
|
49
|
-
this.headerDescription$ = this._formPanelService.headerDescription$;
|
|
50
|
-
this.headerRemoveContentPadding$ = this._formPanelService.headerRemoveContentPadding$;
|
|
51
|
-
this._formPanelService.context$.pipe(takeUntil(this._onDestroy$)).subscribe();
|
|
52
|
-
this._formPanelService.view$.pipe(takeUntil(this._onDestroy$)).subscribe();
|
|
53
|
-
this.landscape$ = this._portalService.landscape$;
|
|
54
|
-
this.standalone$ = this._portalService.standalone$;
|
|
55
|
-
this._portalService.standalone$.pipe(takeUntil(this._onDestroy$)).subscribe((c) => (this._standalone = c));
|
|
56
|
-
}
|
|
57
|
-
get forceClose$() {
|
|
58
|
-
return this._formPanelService.forceClose$;
|
|
59
|
-
}
|
|
60
|
-
ngOnInit() {
|
|
61
|
-
super.ngOnInit();
|
|
62
|
-
this._formPanelService.context = this.context;
|
|
63
|
-
this.isMobile = getDeviceIsMobile();
|
|
64
|
-
this.listFieldUi = this.context._dictFieldUi;
|
|
65
|
-
this.isModal = this.context.Setting?.IsModal;
|
|
66
|
-
this.isSubForm = this.context.IsSubForm;
|
|
67
|
-
this.isFormReport = this.context.IsFormReport;
|
|
68
|
-
this._setParamters();
|
|
69
|
-
this.modernTabs$ = this.layout94$.pipe(filter((c) => c), map((layout94) => (this.layout94 = layout94)),
|
|
70
|
-
/* eslint-disable */
|
|
71
|
-
merge(this._formPanelService.groupLayout$), map((_) => {
|
|
72
|
-
if (this.layout94.items[0].xtype !== 'Ly.LayoutTabPanel') {
|
|
73
|
-
return [];
|
|
74
|
-
}
|
|
75
|
-
const tabs = this.layout94.items[0].items;
|
|
76
|
-
return tabs.filter((c) => c.Visible !== false);
|
|
77
|
-
}));
|
|
78
|
-
setTimeout(() => {
|
|
79
|
-
this.obtainHeight();
|
|
80
|
-
}, 0);
|
|
81
|
-
this._portalService.windowResize$.subscribe((e) => {
|
|
82
|
-
this.obtainHeight();
|
|
83
|
-
});
|
|
84
|
-
this._formIntersection = fromIntersectionObserver(this._el.nativeElement, {
|
|
85
|
-
root: null,
|
|
86
|
-
rootMargin: '0px',
|
|
87
|
-
threshold: 0
|
|
88
|
-
}, 100, false)
|
|
89
|
-
.pipe(takeUntil(this._onDestroy$))
|
|
90
|
-
.subscribe((e) => {
|
|
91
|
-
this._onInView(e);
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
ngOnDestroy() {
|
|
95
|
-
super.ngOnDestroy();
|
|
96
|
-
this._formIntersection.unsubscribe();
|
|
97
|
-
this._formPanelService.destroy();
|
|
98
|
-
}
|
|
99
|
-
onClose() {
|
|
100
|
-
this.context.fireEvent('RequestForClose', this.context);
|
|
101
|
-
}
|
|
102
|
-
onFullscreen() {
|
|
103
|
-
this.fullscreen = !this.fullscreen;
|
|
104
|
-
}
|
|
105
|
-
onToolbarClick(btn) {
|
|
106
|
-
this._formPanelService.toolbarClick(btn);
|
|
107
|
-
}
|
|
108
|
-
onWorkflowChoiceClick(wfChoice) {
|
|
109
|
-
this._formPanelService.wfChoice(wfChoice);
|
|
110
|
-
}
|
|
111
|
-
fieldChange(fieldName, value) {
|
|
112
|
-
const fieldUi = this.context._listFieldUi.find((c) => c.Setting.ControlName === fieldName);
|
|
113
|
-
fieldUi.value = value;
|
|
114
|
-
fieldUi.fireEvent('change', fieldUi);
|
|
115
|
-
}
|
|
116
|
-
searchClick() {
|
|
117
|
-
const fieldUi = this.context._listFieldUi.find((c) => c.originalXtype === 'Ui.SearchCommandInfoUi');
|
|
118
|
-
fieldUi.fireEvent(BarsaApi.Ul.FormPanelCtrlr.EventEnum.SearchClick, fieldUi);
|
|
119
|
-
}
|
|
120
|
-
_onInView(e) {
|
|
121
|
-
if (this.isMobile) {
|
|
122
|
-
this.formVisibilityStatus = e;
|
|
123
|
-
this._cdr.detectChanges();
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
obtainHeight() {
|
|
127
|
-
const parentHeight = getParentHeight(this._el.nativeElement);
|
|
128
|
-
this._formPanelService.setFormHeight(parentHeight);
|
|
129
|
-
}
|
|
130
|
-
_setParamters() {
|
|
131
|
-
this.parameters = BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.View.CustomUi.Parameters', null);
|
|
132
|
-
}
|
|
133
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: FormBaseComponent, deps: [{ token: i1.BreadcrumbService }, { token: i1.PortalService }, { token: i2.Router }, { token: i0.ElementRef }, { token: i3.ControlUiPipe }, { token: i4.FormPanelService, self: true }, { token: i2.ActivatedRoute }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
134
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: FormBaseComponent, selector: "bnrc-form-base", inputs: { context: "context" }, outputs: { formClose: "formClose" }, host: { properties: { "attr.id": "this.id", "class.fullscreen": "this.fullscreen" } }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
135
|
-
}
|
|
136
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: FormBaseComponent, decorators: [{
|
|
137
|
-
type: Component,
|
|
138
|
-
args: [{
|
|
139
|
-
selector: 'bnrc-form-base',
|
|
140
|
-
template: '',
|
|
141
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
|
142
|
-
}]
|
|
143
|
-
}], ctorParameters: () => [{ type: i1.BreadcrumbService }, { type: i1.PortalService }, { type: i2.Router }, { type: i0.ElementRef }, { type: i3.ControlUiPipe }, { type: i4.FormPanelService, decorators: [{
|
|
144
|
-
type: Self
|
|
145
|
-
}] }, { type: i2.ActivatedRoute }, { type: i0.ChangeDetectorRef }], propDecorators: { id: [{
|
|
146
|
-
type: HostBinding,
|
|
147
|
-
args: ['attr.id']
|
|
148
|
-
}], fullscreen: [{
|
|
149
|
-
type: HostBinding,
|
|
150
|
-
args: ['class.fullscreen']
|
|
151
|
-
}], context: [{
|
|
152
|
-
type: Input
|
|
153
|
-
}], formClose: [{
|
|
154
|
-
type: Output
|
|
155
|
-
}] } });
|
|
156
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etbm92aW4tcmF5LWNvcmUvc3JjL2xpYi9hYnN0cmFjdC1jbGFzc2VzL2Zvcm0tYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsS0FBSyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBQ04sWUFBWSxFQUdaLHVCQUF1QixFQUV2QixJQUFJLEVBRUosV0FBVyxFQUNkLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFL0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQVl2QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7O0FBT3pFLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxhQUFhO0lBcURoRCxZQUNjLGtCQUFxQyxFQUNyQyxjQUE2QixFQUM3QixPQUFlLEVBQ2YsR0FBZSxFQUNmLGNBQTZCLEVBQ3JCLGlCQUFtQyxFQUMzQyxlQUErQixFQUMvQixJQUF1QjtRQUVqQyxLQUFLLEVBQUUsQ0FBQztRQVRFLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDckMsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDN0IsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLFFBQUcsR0FBSCxHQUFHLENBQVk7UUFDZixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUNyQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBQzNDLG9CQUFlLEdBQWYsZUFBZSxDQUFnQjtRQUMvQixT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QUFJO3NHQTFEZSxFQUFFO3NCQUF6QixXQUFXO3VCQUFDLFNBQVM7Z0JBQ1csVUFBVTtzQkFBMUMsV0FBVzt1QkFBQyxrQkFBa0I7Z0JBRXRCLE9BQU87c0JBQWYsS0FBSztnQkFLSSxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBJbnB1dCxcbiAgICBDb21wb25lbnQsXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBPbkluaXQsXG4gICAgT25EZXN0cm95LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgU2VsZixcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBIb3N0QmluZGluZ1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCB0YWtlVW50aWwsIG1lcmdlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBnZXREZXZpY2VJc01vYmlsZSwgZ2V0UGFyZW50SGVpZ2h0LCBnZXRVbmlxdWVJZCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBGb3JtUGFuZWxTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZm9ybS1wYW5lbC5zZXJ2aWNlJztcbmltcG9ydCB7IEJhcnNhQXBpIH0gZnJvbSAnLi9iYXJzYS1hcGknO1xuaW1wb3J0IHtcbiAgICBGb3JtU2V0dGluZyxcbiAgICBGb3JtVmlld1NldHRpbmcsXG4gICAgRm9ybVZpc2liaWxpdHlTdGF0dXMsXG4gICAgSUhlYWRlckxheW91dCxcbiAgICBMYXlvdXRTZXR0aW5nLFxuICAgIE1ldGFvYmplY3REYXRhTW9kZWxcbn0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgQnJlYWRjcnVtYlNlcnZpY2UsIFBvcnRhbFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBDb250cm9sVWlQaXBlIH0gZnJvbSAnLi4vcGlwZXMnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBmcm9tSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgfSBmcm9tICcuLi9mcm9tLWludGVyc2VjdGlvbi1vYnNlcnZlcic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYm5yYy1mb3JtLWJhc2UnLFxuICAgIHRlbXBsYXRlOiAnJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtQmFzZUNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmlkJykgaWQgPSBgZm9ybV8ke2dldFVuaXF1ZUlkKDQpfWA7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mdWxsc2NyZWVuJykgZnVsbHNjcmVlbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgY29udGV4dDoge1xuICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIGNvbmZpZzogYW55O1xuICAgICAgICBTZXR0aW5nOiBGb3JtU2V0dGluZztcbiAgICB9O1xuICAgIEBPdXRwdXQoKSBmb3JtQ2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgbGlzdEZpZWxkVWk6IGFueTtcbiAgICBpc1dpemFyZDogYm9vbGVhbjtcbiAgICBwYXJhbWV0ZXJzOiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xuICAgIGlzTW9iaWxlOiBib29sZWFuO1xuICAgIGRldmljZVNpemUkOiBPYnNlcnZhYmxlPCdzJyB8ICdtJyB8ICdsJyB8ICd4bCc+O1xuICAgIGRpclZhbHVlJDogT2JzZXJ2YWJsZTwncnRsJyB8ICdsdHInPjtcbiAgICBydGwkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIHRvb2xiYXJWaXNpYmxlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBoaWRlQ2xvc2UkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIGhpZGVUaXRsZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgaGlkZVBpbiQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgdGl0bGUkOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gICAgdG9vbGJhckl0ZW1zJDogT2JzZXJ2YWJsZTxhbnlbXT47XG4gICAgd29ya2Zsb3dCdXR0b25zJDogT2JzZXJ2YWJsZTxhbnlbXT47XG4gICAgaGVhZGVyTGF5b3V0JDogT2JzZXJ2YWJsZTxJSGVhZGVyTGF5b3V0IHwgbnVsbD47XG4gICAgbGF5b3V0OTQkOiBPYnNlcnZhYmxlPGFueT47XG4gICAgbGF5b3V0OTQ6IGFueTtcbiAgICBtYXhDb250ZW50V2lkdGgkOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gICAgZm9ybVdpZHRoJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICAgIGhlYWRlckRlc2NyaXB0aW9uJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICAgIGhlYWRlclJlbW92ZUNvbnRlbnRQYWRkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBoZWFkZXJTdWJ0aXRsZSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgICBhdmF0YXIkOiBPYnNlcnZhYmxlPGFueT47XG4gICAgY2lyY2xlQXZhdGFyJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBleHRlbmRUb29sYmFySXRlbXMkOiBPYnNlcnZhYmxlPGFueVtdPjtcbiAgICB3b3JrZmxvd1BhbmVsVWkkOiBPYnNlcnZhYmxlPGFueT47XG4gICAgdmlldyQ6IE9ic2VydmFibGU8Rm9ybVZpZXdTZXR0aW5nPjtcbiAgICBtbyQ6IE9ic2VydmFibGU8TWV0YW9iamVjdERhdGFNb2RlbCB8IG51bGw+O1xuICAgIGlzU2ltcGxlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBmaWVsZERpY3QkOiBPYnNlcnZhYmxlPHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gfCB1bmRlZmluZWQ+O1xuICAgIG1hc2skOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIGlzU2VhcmNoUGFuZWw6IGJvb2xlYW47XG4gICAgaXNNb2RhbDogYm9vbGVhbjtcbiAgICBpc1N1YkZvcm06IGJvb2xlYW47XG4gICAgbW9kZXJuVGFicyQ6IE9ic2VydmFibGU8TGF5b3V0U2V0dGluZ1tdPjtcbiAgICBpc0Zvcm1SZXBvcnQ6IGJvb2xlYW47XG4gICAgbGFuZHNjYXBlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBzdGFuZGFsb25lJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBwcm90ZWN0ZWQgX3N0eWxlOiBIVE1MU3R5bGVFbGVtZW50O1xuICAgIHByb3RlY3RlZCBfc3RhbmRhbG9uZTogYm9vbGVhbjtcbiAgICBwcml2YXRlIF9mb3JtSW50ZXJzZWN0aW9uOiBhbnk7XG4gICAgZm9ybVZpc2liaWxpdHlTdGF0dXM6IEZvcm1WaXNpYmlsaXR5U3RhdHVzO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBfYnJlYWRjcnVtYlNlcnZpY2U6IEJyZWFkY3J1bWJTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgX3BvcnRhbFNlcnZpY2U6IFBvcnRhbFNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBfcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgIHByb3RlY3RlZCBfZWw6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByb3RlY3RlZCBfY29udHJvbFVpUGlwZTogQ29udHJvbFVpUGlwZSxcbiAgICAgICAgQFNlbGYoKSBwcm90ZWN0ZWQgX2Zvcm1QYW5lbFNlcnZpY2U6IEZvcm1QYW5lbFNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBfYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwcm90ZWN0ZWQgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5fZm9ybVBhbmVsU2VydmljZS5pc1NlYXJjaFBhbmVsJC5zdWJzY3JpYmUoKGlzU2VhcmNoUGFuZWwpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaXNTZWFyY2hQYW5lbCA9IGlzU2VhcmNoUGFuZWw7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmhpZGVDbG9zZSQgPSB0aGlzLl9mb3JtUGFuZWxTZXJ2aWNlLmhpZGVDbG9zZSQ7XG4gICAgICAgIHRoaXMuaGlkZVRpdGxlJCA9IHRoaXMuX2Zvcm1QYW5lbFNlcnZpY2UuaGlkZVRpdGxlJDtcbiAgICAgICAgdGhpcy5oaWRlUGluJCA9IHRoaXMuX2Zvcm1QYW5lbFNlcnZpY2UuaGlkZVBpbiQ7XG4gICAgICAgIHRoaXMudG9vbGJhclZpc2libGUkID0gdGhpcy5fZm9ybVBhbmVsU2VydmljZS50b29sYmFyVmlzaWJsZSQ7XG4gICAgICAgIHRoaXMudGl0bGUkID0gdGhpcy5fZm9ybVBhbmVsU2VydmljZS50aXRsZSQucGlwZShcbiAgICAgICAgICAgIG1hcCgodGl0bGUpID0+ICghdGl0bGUgPyAnJyA6IGdldERldmljZUlzTW9iaWxlKCkgPyB0aXRsZS5zcGxpdCgnOicpWzBdIDogdGl0bGUpKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLnRvb2xiYXJJdGVtcyQgPSB0aGlzLl9mb3JtUGFuZWxTZXJ2aWNlLnRvb2xiYXJJdGVtcyQ7XG4gICAgICAgIHRoaXMud29ya2Zsb3dCdXR0b25zJCA9IHRoaXMuX2Zvcm1QYW5lbFNlcnZpY2Uud29ya2Zsb3dCdXR0b25zJDtcbiAgICAgICAgdGhpcy5oZWFkZXJMYXlvdXQkID0gdGhpcy5fZm9ybVBhbmVsU2VydmljZS5oZWFkZXJMYXlvdXQkO1xuICAgICAgICB0aGlzLmxheW91dDk0JCA9IHRoaXMuX2Zvcm1QYW5lbFNlcnZpY2UubGF5b3V0JDtcbiAgICAgICAgdGhpcy5tYXhDb250ZW50V2lkdGgkID0gdGhpcy5fZm9ybVBhbmVsU2VydmljZS5tYXhDb250ZW50V2lkdGgkO1xuICAgICAgICB0aGlzLmZvcm1XaWR0aCQgPSB0aGlzLl9mb3JtUGFuZWxTZXJ2aWNlLmZvcm1XaWR0aCQ7XG4gICAgICAgIHRoaXMuaGVhZGVyU3VidGl0bGUkID0gdGhpcy5fZm9ybVBhbmVsU2VydmljZS5oZWFkZXJTdWJ0aXRsZSQ7XG4gICAgICAgIHRoaXMuYXZhdGFyJCA9IHRoaXMuX2Zvcm1QYW5lbFNlcnZpY2UuYXZhdGFyJDtcbiAgICAgICAgdGhpcy5jaXJjbGVBdmF0YXIkID0gdGhpcy5fZm9ybVBhbmVsU2VydmljZS5jaXJjbGVBdmF0YXIkO1xuICAgICAgICB0aGlzLndvcmtmbG93UGFuZWxVaSQgPSB0aGlzLl9mb3JtUGFuZWxTZXJ2aWNlLndvcmtmbG93UGFuZWxVaSQ7XG4gICAgICAgIHRoaXMudmlldyQgPSB0aGlzLl9mb3JtUGFuZWxTZXJ2aWNlLnZpZXckO1xuICAgICAgICB0aGlzLm1vJCA9IHRoaXMuX2Zvcm1QYW5lbFNlcnZpY2UubW8kO1xuICAgICAgICB0aGlzLmZpZWxkRGljdCQgPSB0aGlzLl9mb3JtUGFuZWxTZXJ2aWNlLmZpZWxkRGljdCQ7XG4gICAgICAgIHRoaXMuaXNTaW1wbGUkID0gdGhpcy5fZm9ybVBhbmVsU2VydmljZS5pc1NpbXBsZUZvcm0kO1xuICAgICAgICB0aGlzLm1hc2skID0gdGhpcy5fZm9ybVBhbmVsU2VydmljZS5tYXNrJDtcbiAgICAgICAgdGhpcy5oZWFkZXJEZXNjcmlwdGlvbiQgPSB0aGlzLl9mb3JtUGFuZWxTZXJ2aWNlLmhlYWRlckRlc2NyaXB0aW9uJDtcbiAgICAgICAgdGhpcy5oZWFkZXJSZW1vdmVDb250ZW50UGFkZGluZyQgPSB0aGlzLl9mb3JtUGFuZWxTZXJ2aWNlLmhlYWRlclJlbW92ZUNvbnRlbnRQYWRkaW5nJDtcbiAgICAgICAgdGhpcy5fZm9ybVBhbmVsU2VydmljZS5jb250ZXh0JC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuX2Zvcm1QYW5lbFNlcnZpY2UudmlldyQucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLmxhbmRzY2FwZSQgPSB0aGlzLl9wb3J0YWxTZXJ2aWNlLmxhbmRzY2FwZSQ7XG4gICAgICAgIHRoaXMuc3RhbmRhbG9uZSQgPSB0aGlzLl9wb3J0YWxTZXJ2aWNlLnN0YW5kYWxvbmUkO1xuICAgICAgICB0aGlzLl9wb3J0YWxTZXJ2aWNlLnN0YW5kYWxvbmUkLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKGMpID0+ICh0aGlzLl9zdGFuZGFsb25lID0gYykpO1xuICAgIH1cbiAgICBnZXQgZm9yY2VDbG9zZSQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mb3JtUGFuZWxTZXJ2aWNlLmZvcmNlQ2xvc2UkO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLl9mb3JtUGFuZWxTZXJ2aWNlLmNvbnRleHQgPSB0aGlzLmNvbnRleHQ7XG4gICAgICAgIHRoaXMuaXNNb2JpbGUgPSBnZXREZXZpY2VJc01vYmlsZSgpO1xuICAgICAgICB0aGlzLmxpc3RGaWVsZFVpID0gdGhpcy5jb250ZXh0Ll9kaWN0RmllbGRVaTtcblxuICAgICAgICB0aGlzLmlzTW9kYWwgPSB0aGlzLmNvbnRleHQuU2V0dGluZz8uSXNNb2RhbDtcbiAgICAgICAgdGhpcy5pc1N1YkZvcm0gPSB0aGlzLmNvbnRleHQuSXNTdWJGb3JtO1xuICAgICAgICB0aGlzLmlzRm9ybVJlcG9ydCA9IHRoaXMuY29udGV4dC5Jc0Zvcm1SZXBvcnQ7XG4gICAgICAgIHRoaXMuX3NldFBhcmFtdGVycygpO1xuICAgICAgICB0aGlzLm1vZGVyblRhYnMkID0gdGhpcy5sYXlvdXQ5NCQucGlwZShcbiAgICAgICAgICAgIGZpbHRlcigoYykgPT4gYyksXG4gICAgICAgICAgICBtYXAoKGxheW91dDk0KSA9PiAodGhpcy5sYXlvdXQ5NCA9IGxheW91dDk0KSksXG4gICAgICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgICAgICAgICAgbWVyZ2UodGhpcy5fZm9ybVBhbmVsU2VydmljZS5ncm91cExheW91dCQpLFxuICAgICAgICAgICAgbWFwKChfKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubGF5b3V0OTQuaXRlbXNbMF0ueHR5cGUgIT09ICdMeS5MYXlvdXRUYWJQYW5lbCcpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCB0YWJzOiBMYXlvdXRTZXR0aW5nW10gPSB0aGlzLmxheW91dDk0Lml0ZW1zWzBdLml0ZW1zO1xuICAgICAgICAgICAgICAgIHJldHVybiB0YWJzLmZpbHRlcigoYykgPT4gYy5WaXNpYmxlICE9PSBmYWxzZSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMub2J0YWluSGVpZ2h0KCk7XG4gICAgICAgIH0sIDApO1xuICAgICAgICB0aGlzLl9wb3J0YWxTZXJ2aWNlLndpbmRvd1Jlc2l6ZSQuc3Vic2NyaWJlKChlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9idGFpbkhlaWdodCgpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fZm9ybUludGVyc2VjdGlvbiA9IGZyb21JbnRlcnNlY3Rpb25PYnNlcnZlcihcbiAgICAgICAgICAgIHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcm9vdDogbnVsbCxcbiAgICAgICAgICAgICAgICByb290TWFyZ2luOiAnMHB4JyxcbiAgICAgICAgICAgICAgICB0aHJlc2hvbGQ6IDBcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAxMDAsXG4gICAgICAgICAgICBmYWxzZVxuICAgICAgICApXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fb25JblZpZXcoZSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5fZm9ybUludGVyc2VjdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLl9mb3JtUGFuZWxTZXJ2aWNlLmRlc3Ryb3koKTtcbiAgICB9XG4gICAgb25DbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb250ZXh0LmZpcmVFdmVudCgnUmVxdWVzdEZvckNsb3NlJywgdGhpcy5jb250ZXh0KTtcbiAgICB9XG4gICAgb25GdWxsc2NyZWVuKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZ1bGxzY3JlZW4gPSAhdGhpcy5mdWxsc2NyZWVuO1xuICAgIH1cbiAgICBvblRvb2xiYXJDbGljayhidG4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZm9ybVBhbmVsU2VydmljZS50b29sYmFyQ2xpY2soYnRuKTtcbiAgICB9XG4gICAgb25Xb3JrZmxvd0Nob2ljZUNsaWNrKHdmQ2hvaWNlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Zvcm1QYW5lbFNlcnZpY2Uud2ZDaG9pY2Uod2ZDaG9pY2UpO1xuICAgIH1cbiAgICBmaWVsZENoYW5nZShmaWVsZE5hbWUsIHZhbHVlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGZpZWxkVWkgPSB0aGlzLmNvbnRleHQuX2xpc3RGaWVsZFVpLmZpbmQoKGMpID0+IGMuU2V0dGluZy5Db250cm9sTmFtZSA9PT0gZmllbGROYW1lKTtcbiAgICAgICAgZmllbGRVaS52YWx1ZSA9IHZhbHVlO1xuICAgICAgICBmaWVsZFVpLmZpcmVFdmVudCgnY2hhbmdlJywgZmllbGRVaSk7XG4gICAgfVxuICAgIHNlYXJjaENsaWNrKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBmaWVsZFVpID0gdGhpcy5jb250ZXh0Ll9saXN0RmllbGRVaS5maW5kKChjKSA9PiBjLm9yaWdpbmFsWHR5cGUgPT09ICdVaS5TZWFyY2hDb21tYW5kSW5mb1VpJyk7XG5cbiAgICAgICAgZmllbGRVaS5maXJlRXZlbnQoQmFyc2FBcGkuVWwuRm9ybVBhbmVsQ3RybHIuRXZlbnRFbnVtLlNlYXJjaENsaWNrLCBmaWVsZFVpKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9vbkluVmlldyhlKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzTW9iaWxlKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1WaXNpYmlsaXR5U3RhdHVzID0gZTtcbiAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb2J0YWluSGVpZ2h0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBwYXJlbnRIZWlnaHQgPSBnZXRQYXJlbnRIZWlnaHQodGhpcy5fZWwubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCk7XG4gICAgICAgIHRoaXMuX2Zvcm1QYW5lbFNlcnZpY2Uuc2V0Rm9ybUhlaWdodChwYXJlbnRIZWlnaHQpO1xuICAgIH1cbiAgICBwcml2YXRlIF9zZXRQYXJhbXRlcnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGFyYW1ldGVycyA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKHRoaXMuY29udGV4dCwgJ1NldHRpbmcuVmlldy5DdXN0b21VaS5QYXJhbWV0ZXJzJywgbnVsbCk7XG4gICAgfVxufVxuIl19
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, HostBinding, ViewChild, ViewContainerRef } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject } from 'rxjs';
|
|
3
|
-
import { debounceTime, map, switchMap, takeUntil, tap } from 'rxjs/operators';
|
|
4
|
-
import { BaseComponent } from './base.component';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/router";
|
|
7
|
-
import * as i2 from "../services";
|
|
8
|
-
export class FormFieldReportPageComponent extends BaseComponent {
|
|
9
|
-
constructor(_activatedRoute, _portalService, _injector, _cdr) {
|
|
10
|
-
super();
|
|
11
|
-
this._activatedRoute = _activatedRoute;
|
|
12
|
-
this._portalService = _portalService;
|
|
13
|
-
this._injector = _injector;
|
|
14
|
-
this._cdr = _cdr;
|
|
15
|
-
this.sectionClass = true;
|
|
16
|
-
this.absolutePageClass = true;
|
|
17
|
-
this._loadingSource = new BehaviorSubject(false);
|
|
18
|
-
this.loading$ = this._loadingSource.asObservable().pipe(takeUntil(this._onDestroy$), debounceTime(200));
|
|
19
|
-
}
|
|
20
|
-
ngOnInit() {
|
|
21
|
-
super.ngOnInit();
|
|
22
|
-
this._activatedRoute.params
|
|
23
|
-
.pipe(takeUntil(this._onDestroy$), tap(() => this._setLoading(true)), map((params) => ({
|
|
24
|
-
Id: 0,
|
|
25
|
-
ReportId: params.id
|
|
26
|
-
})), switchMap((navItem) => this._portalService.renderUlvMainUi(navItem, this.containerRef, this._injector, true)))
|
|
27
|
-
.subscribe(() => {
|
|
28
|
-
this._setLoading(false);
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
ngOnDestroy() {
|
|
32
|
-
super.ngOnDestroy();
|
|
33
|
-
}
|
|
34
|
-
_setLoading(val) {
|
|
35
|
-
this._loadingSource.next(val);
|
|
36
|
-
this._cdr.detectChanges();
|
|
37
|
-
}
|
|
38
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: FormFieldReportPageComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.PortalService }, { token: i0.Injector }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
39
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: FormFieldReportPageComponent, selector: "bnrc-form-field-report-page.component", host: { properties: { "class.section": "this.sectionClass", "class.absolute-page": "this.absolutePageClass" } }, viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["containerRef"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: `<ng-container #containerRef></ng-container><router-outlet></router-outlet>`, isInline: true, styles: [":host{display:block;background:var(--sapBackgroundColor)}\n"], dependencies: [{ kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
40
|
-
}
|
|
41
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: FormFieldReportPageComponent, decorators: [{
|
|
42
|
-
type: Component,
|
|
43
|
-
args: [{ selector: 'bnrc-form-field-report-page.component', template: `<ng-container #containerRef></ng-container><router-outlet></router-outlet>`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block;background:var(--sapBackgroundColor)}\n"] }]
|
|
44
|
-
}], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i2.PortalService }, { type: i0.Injector }, { type: i0.ChangeDetectorRef }], propDecorators: { containerRef: [{
|
|
45
|
-
type: ViewChild,
|
|
46
|
-
args: ['containerRef', { static: true, read: ViewContainerRef }]
|
|
47
|
-
}], sectionClass: [{
|
|
48
|
-
type: HostBinding,
|
|
49
|
-
args: ['class.section']
|
|
50
|
-
}], absolutePageClass: [{
|
|
51
|
-
type: HostBinding,
|
|
52
|
-
args: ['class.absolute-page']
|
|
53
|
-
}] } });
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1yZXBvcnQtcGFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL2Fic3RyYWN0LWNsYXNzZXMvZm9ybS1maWVsZC1yZXBvcnQtcGFnZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsV0FBVyxFQUlYLFNBQVMsRUFDVCxnQkFBZ0IsRUFDbkIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7OztBQWdCakQsTUFBTSxPQUFPLDRCQUE2QixTQUFRLGFBQWE7SUFRM0QsWUFDWSxlQUErQixFQUMvQixjQUE2QixFQUM3QixTQUFtQixFQUNuQixJQUF1QjtRQUUvQixLQUFLLEVBQUUsQ0FBQztRQUxBLG9CQUFlLEdBQWYsZUFBZSxDQUFnQjtRQUMvQixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3QixjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ25CLFNBQUksR0FBSixJQUFJLENBQW1CO1FBVkwsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFDZCxzQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFJckQsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQVF6RCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDNUcsQ0FBQztJQUVELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNO2FBQ3RCLElBQUksQ0FDRCxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUMzQixHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUNqQyxHQUFHLENBQUMsQ0FBQyxNQUFjLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDckIsRUFBRSxFQUFFLENBQUM7WUFDTCxRQUFRLEVBQUUsTUFBTSxDQUFDLEVBQUU7U0FDdEIsQ0FBQyxDQUFDLEVBQ0gsU0FBUyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FDbEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FDeEYsQ0FDSjthQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUNELFdBQVc7UUFDUCxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUNPLFdBQVcsQ0FBQyxHQUFZO1FBQzVCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDOUIsQ0FBQzs4R0ExQ1EsNEJBQTRCO2tHQUE1Qiw0QkFBNEIsdVJBQ1ksZ0JBQWdCLGtFQVp2RCw0RUFBNEU7OzJGQVc3RSw0QkFBNEI7a0JBYnhDLFNBQVM7K0JBQ0ksdUNBQXVDLFlBQ3ZDLDRFQUE0RSxtQkFTckUsdUJBQXVCLENBQUMsTUFBTTtzS0FHc0IsWUFBWTtzQkFBaEYsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtnQkFDckMsWUFBWTtzQkFBekMsV0FBVzt1QkFBQyxlQUFlO2dCQUNRLGlCQUFpQjtzQkFBcEQsV0FBVzt1QkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIENvbXBvbmVudCxcclxuICAgIEhvc3RCaW5kaW5nLFxyXG4gICAgSW5qZWN0b3IsXHJcbiAgICBPbkRlc3Ryb3ksXHJcbiAgICBPbkluaXQsXHJcbiAgICBWaWV3Q2hpbGQsXHJcbiAgICBWaWV3Q29udGFpbmVyUmVmXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBtYXAsIHN3aXRjaE1hcCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuL2Jhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUG9ydGFsU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdibnJjLWZvcm0tZmllbGQtcmVwb3J0LXBhZ2UuY29tcG9uZW50JyxcclxuICAgIHRlbXBsYXRlOiBgPG5nLWNvbnRhaW5lciAjY29udGFpbmVyUmVmPjwvbmctY29udGFpbmVyPjxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD5gLFxyXG4gICAgc3R5bGVzOiBbXHJcbiAgICAgICAgYFxyXG4gICAgICAgICAgICA6aG9zdCB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNhcEJhY2tncm91bmRDb2xvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICBgXHJcbiAgICBdLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1GaWVsZFJlcG9ydFBhZ2VDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gICAgQFZpZXdDaGlsZCgnY29udGFpbmVyUmVmJywgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgY29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmO1xyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zZWN0aW9uJykgc2VjdGlvbkNsYXNzID0gdHJ1ZTtcclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuYWJzb2x1dGUtcGFnZScpIGFic29sdXRlUGFnZUNsYXNzID0gdHJ1ZTtcclxuICAgIC8vIEBIb3N0QmluZGluZygnY2xhc3Muc2VjdGlvbicpIHNlY3Rpb25DbGFzcyA9IHRydWU7XHJcbiAgICAvLyBASG9zdEJpbmRpbmcoJ2NsYXNzLmFic29sdXRlLXBhZ2UnKSBhYnNvbHV0ZVBhZ2VDbGFzcyA9IHRydWU7XHJcbiAgICBsb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuICAgIHByaXZhdGUgX2xvYWRpbmdTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgX2FjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgICAgICBwcml2YXRlIF9wb3J0YWxTZXJ2aWNlOiBQb3J0YWxTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX2luamVjdG9yOiBJbmplY3RvcixcclxuICAgICAgICBwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIHRoaXMubG9hZGluZyQgPSB0aGlzLl9sb2FkaW5nU291cmNlLmFzT2JzZXJ2YWJsZSgpLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpLCBkZWJvdW5jZVRpbWUoMjAwKSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgICAgICB0aGlzLl9hY3RpdmF0ZWRSb3V0ZS5wYXJhbXNcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCksXHJcbiAgICAgICAgICAgICAgICB0YXAoKCkgPT4gdGhpcy5fc2V0TG9hZGluZyh0cnVlKSksXHJcbiAgICAgICAgICAgICAgICBtYXAoKHBhcmFtczogUGFyYW1zKSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgICAgIElkOiAwLFxyXG4gICAgICAgICAgICAgICAgICAgIFJlcG9ydElkOiBwYXJhbXMuaWRcclxuICAgICAgICAgICAgICAgIH0pKSxcclxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgobmF2SXRlbSkgPT5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9wb3J0YWxTZXJ2aWNlLnJlbmRlclVsdk1haW5VaShuYXZJdGVtLCB0aGlzLmNvbnRhaW5lclJlZiwgdGhpcy5faW5qZWN0b3IsIHRydWUpXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9zZXRMb2FkaW5nKGZhbHNlKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfc2V0TG9hZGluZyh2YWw6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9sb2FkaW5nU291cmNlLm5leHQodmFsKTtcclxuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|