barsa-novin-ray-core 2.1.1 → 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 +254 -135
- package/fesm2022/barsa-novin-ray-core.mjs.map +1 -1
- 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 -163
- 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 -487
- 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,184 +0,0 @@
|
|
|
1
|
-
export class GeneralControlInfoModel {
|
|
2
|
-
constructor() {
|
|
3
|
-
this.ShowLabel = true;
|
|
4
|
-
}
|
|
5
|
-
}
|
|
6
|
-
export class StringControlInfoModel extends GeneralControlInfoModel {
|
|
7
|
-
}
|
|
8
|
-
export class RichStringControlInfoModel extends StringControlInfoModel {
|
|
9
|
-
}
|
|
10
|
-
export class NumberControlInfoModel extends GeneralControlInfoModel {
|
|
11
|
-
}
|
|
12
|
-
export class FilePictureInfoModel extends GeneralControlInfoModel {
|
|
13
|
-
}
|
|
14
|
-
export class FileControlInfoModel extends GeneralControlInfoModel {
|
|
15
|
-
}
|
|
16
|
-
export class CommandControlInfoModel extends GeneralControlInfoModel {
|
|
17
|
-
}
|
|
18
|
-
export class IconControlInfoModel extends GeneralControlInfoModel {
|
|
19
|
-
}
|
|
20
|
-
export class PictureFileControlInfoModel extends GeneralControlInfoModel {
|
|
21
|
-
}
|
|
22
|
-
export class GaugeControlInfoModel extends GeneralControlInfoModel {
|
|
23
|
-
}
|
|
24
|
-
export class RelationListControlInfoModel extends GeneralControlInfoModel {
|
|
25
|
-
}
|
|
26
|
-
export class HistoryControlInfoModel extends RelationListControlInfoModel {
|
|
27
|
-
}
|
|
28
|
-
export class RabetehAkseTakiListiControlInfoModel extends RelationListControlInfoModel {
|
|
29
|
-
}
|
|
30
|
-
export class RelatedReportControlInfoModel extends GeneralControlInfoModel {
|
|
31
|
-
}
|
|
32
|
-
export class CodeEditorControlInfoModel extends GeneralControlInfoModel {
|
|
33
|
-
}
|
|
34
|
-
export class EnumControlInfoModel extends GeneralControlInfoModel {
|
|
35
|
-
}
|
|
36
|
-
export class RowDataOption {
|
|
37
|
-
}
|
|
38
|
-
export class DateTimeControlInfoModel extends GeneralControlInfoModel {
|
|
39
|
-
}
|
|
40
|
-
export class BoolControlInfoModel extends GeneralControlInfoModel {
|
|
41
|
-
}
|
|
42
|
-
export class CalculateControlInfoModel extends GeneralControlInfoModel {
|
|
43
|
-
}
|
|
44
|
-
export class SubformControlInfoModel extends GeneralControlInfoModel {
|
|
45
|
-
}
|
|
46
|
-
export class LinearListControlInfoModel extends GeneralControlInfoModel {
|
|
47
|
-
}
|
|
48
|
-
export class ListRelationModel {
|
|
49
|
-
}
|
|
50
|
-
export class SingleRelationControlInfoModel extends GeneralControlInfoModel {
|
|
51
|
-
}
|
|
52
|
-
export class MetaobjectDataModel {
|
|
53
|
-
}
|
|
54
|
-
export class MoForReportModel {
|
|
55
|
-
constructor() {
|
|
56
|
-
this.DeletedList = this.AddedList = this.MoDataList = [];
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
export class ReportBaseInfo {
|
|
60
|
-
}
|
|
61
|
-
export class ReportExtraInfo extends ReportBaseInfo {
|
|
62
|
-
}
|
|
63
|
-
export class MetaobjectRelationModel extends ListRelationModel {
|
|
64
|
-
}
|
|
65
|
-
export var FieldInfoTypeEnum;
|
|
66
|
-
(function (FieldInfoTypeEnum) {
|
|
67
|
-
FieldInfoTypeEnum[FieldInfoTypeEnum["IntInfo"] = 0] = "IntInfo";
|
|
68
|
-
FieldInfoTypeEnum[FieldInfoTypeEnum["StringInfo"] = 2] = "StringInfo";
|
|
69
|
-
FieldInfoTypeEnum[FieldInfoTypeEnum["DateInfo"] = 3] = "DateInfo";
|
|
70
|
-
FieldInfoTypeEnum[FieldInfoTypeEnum["BoolInfo"] = 5] = "BoolInfo";
|
|
71
|
-
FieldInfoTypeEnum[FieldInfoTypeEnum["EnumInfo"] = 6] = "EnumInfo";
|
|
72
|
-
FieldInfoTypeEnum[FieldInfoTypeEnum["UserInfo"] = 7] = "UserInfo";
|
|
73
|
-
FieldInfoTypeEnum[FieldInfoTypeEnum["CategoryInfo"] = 8] = "CategoryInfo";
|
|
74
|
-
FieldInfoTypeEnum[FieldInfoTypeEnum["MetaObjectInfo"] = 9] = "MetaObjectInfo";
|
|
75
|
-
FieldInfoTypeEnum[FieldInfoTypeEnum["CommandInfo"] = 10] = "CommandInfo";
|
|
76
|
-
FieldInfoTypeEnum[FieldInfoTypeEnum["PicturesInfo"] = 11] = "PicturesInfo";
|
|
77
|
-
FieldInfoTypeEnum[FieldInfoTypeEnum["RelationInfo"] = 12] = "RelationInfo";
|
|
78
|
-
FieldInfoTypeEnum[FieldInfoTypeEnum["HistoryInfo"] = 13] = "HistoryInfo";
|
|
79
|
-
FieldInfoTypeEnum[FieldInfoTypeEnum["RelationInfoReverse_AksListi"] = 14] = "RelationInfoReverse_AksListi";
|
|
80
|
-
FieldInfoTypeEnum[FieldInfoTypeEnum["CreatorUserInfo"] = 15] = "CreatorUserInfo";
|
|
81
|
-
FieldInfoTypeEnum[FieldInfoTypeEnum["CreationDateInfo"] = 16] = "CreationDateInfo";
|
|
82
|
-
FieldInfoTypeEnum[FieldInfoTypeEnum["LastUpdateDateInfo"] = 17] = "LastUpdateDateInfo";
|
|
83
|
-
FieldInfoTypeEnum[FieldInfoTypeEnum["ReminderInfo"] = 18] = "ReminderInfo";
|
|
84
|
-
FieldInfoTypeEnum[FieldInfoTypeEnum["RichStringInfo"] = 19] = "RichStringInfo";
|
|
85
|
-
FieldInfoTypeEnum[FieldInfoTypeEnum["ConvertCommandInfo"] = 20] = "ConvertCommandInfo";
|
|
86
|
-
FieldInfoTypeEnum[FieldInfoTypeEnum["RelationInfoSingleReverse_AksTakiListi"] = 21] = "RelationInfoSingleReverse_AksTakiListi";
|
|
87
|
-
FieldInfoTypeEnum[FieldInfoTypeEnum["DialCommandInfo"] = 22] = "DialCommandInfo";
|
|
88
|
-
FieldInfoTypeEnum[FieldInfoTypeEnum["FindContactCommandInfo"] = 23] = "FindContactCommandInfo";
|
|
89
|
-
FieldInfoTypeEnum[FieldInfoTypeEnum["SequenceCommandInfo"] = 24] = "SequenceCommandInfo";
|
|
90
|
-
FieldInfoTypeEnum[FieldInfoTypeEnum["CurrencyInfo"] = 25] = "CurrencyInfo";
|
|
91
|
-
FieldInfoTypeEnum[FieldInfoTypeEnum["SinglePictureInfo"] = 26] = "SinglePictureInfo";
|
|
92
|
-
FieldInfoTypeEnum[FieldInfoTypeEnum["WordReportCommandInfo"] = 27] = "WordReportCommandInfo";
|
|
93
|
-
FieldInfoTypeEnum[FieldInfoTypeEnum["HierarchicalInfo"] = 28] = "HierarchicalInfo";
|
|
94
|
-
FieldInfoTypeEnum[FieldInfoTypeEnum["TimeSpanInfo"] = 29] = "TimeSpanInfo";
|
|
95
|
-
FieldInfoTypeEnum[FieldInfoTypeEnum["ReportInfo"] = 30] = "ReportInfo";
|
|
96
|
-
FieldInfoTypeEnum[FieldInfoTypeEnum["FileInfo"] = 31] = "FileInfo";
|
|
97
|
-
FieldInfoTypeEnum[FieldInfoTypeEnum["WordFileInfo"] = 32] = "WordFileInfo";
|
|
98
|
-
FieldInfoTypeEnum[FieldInfoTypeEnum["PictureFileInfo"] = 33] = "PictureFileInfo";
|
|
99
|
-
FieldInfoTypeEnum[FieldInfoTypeEnum["GaugeInfo"] = 34] = "GaugeInfo";
|
|
100
|
-
FieldInfoTypeEnum[FieldInfoTypeEnum["CodeInfo"] = 35] = "CodeInfo";
|
|
101
|
-
FieldInfoTypeEnum[FieldInfoTypeEnum["WorkCenterInfo"] = 36] = "WorkCenterInfo";
|
|
102
|
-
FieldInfoTypeEnum[FieldInfoTypeEnum["IsDeletedInfo"] = 37] = "IsDeletedInfo";
|
|
103
|
-
FieldInfoTypeEnum[FieldInfoTypeEnum["RowNumberInfo"] = 38] = "RowNumberInfo";
|
|
104
|
-
FieldInfoTypeEnum[FieldInfoTypeEnum["BinaryInfo"] = 39] = "BinaryInfo";
|
|
105
|
-
FieldInfoTypeEnum[FieldInfoTypeEnum["ReverseMetaObjectInfo_AksTakiTaki"] = 40] = "ReverseMetaObjectInfo_AksTakiTaki";
|
|
106
|
-
FieldInfoTypeEnum[FieldInfoTypeEnum["ColorInfo"] = 41] = "ColorInfo";
|
|
107
|
-
FieldInfoTypeEnum[FieldInfoTypeEnum["IconInfo"] = 42] = "IconInfo";
|
|
108
|
-
FieldInfoTypeEnum[FieldInfoTypeEnum["RefreshFieldCommandInfo"] = 43] = "RefreshFieldCommandInfo";
|
|
109
|
-
FieldInfoTypeEnum[FieldInfoTypeEnum["ReferenceFieldInfo"] = 44] = "ReferenceFieldInfo";
|
|
110
|
-
FieldInfoTypeEnum[FieldInfoTypeEnum["SearchCommandInfo"] = 45] = "SearchCommandInfo";
|
|
111
|
-
FieldInfoTypeEnum[FieldInfoTypeEnum["OrderInfo"] = 46] = "OrderInfo"; // 0x0000002E
|
|
112
|
-
})(FieldInfoTypeEnum || (FieldInfoTypeEnum = {}));
|
|
113
|
-
export class BaseReportModel {
|
|
114
|
-
constructor() {
|
|
115
|
-
this.DefaultItemComponent = 'ReportDefaultItemComponent';
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
export class CustomCommand {
|
|
119
|
-
}
|
|
120
|
-
export class ReportModel extends BaseReportModel {
|
|
121
|
-
constructor() {
|
|
122
|
-
super();
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
export class ReportListModel extends BaseReportModel {
|
|
126
|
-
}
|
|
127
|
-
export class ReportFormModel extends BaseReportModel {
|
|
128
|
-
}
|
|
129
|
-
export class ReportCalendarModel extends BaseReportModel {
|
|
130
|
-
}
|
|
131
|
-
export class ReportTreeModel extends BaseReportModel {
|
|
132
|
-
}
|
|
133
|
-
export class ReportViewColumn {
|
|
134
|
-
}
|
|
135
|
-
export class GridSetting {
|
|
136
|
-
}
|
|
137
|
-
export class ColSetting {
|
|
138
|
-
}
|
|
139
|
-
export class SortSetting {
|
|
140
|
-
}
|
|
141
|
-
export class ReportField {
|
|
142
|
-
constructor(column, item) {
|
|
143
|
-
this.column = column;
|
|
144
|
-
this.item = item;
|
|
145
|
-
const name = column.Name;
|
|
146
|
-
this.caption = column.Caption;
|
|
147
|
-
this.value = this.item[name];
|
|
148
|
-
if (Number(column.FieldTypeId) === FieldInfoTypeEnum.DateInfo) {
|
|
149
|
-
this.value = this.item[name + '$Caption'];
|
|
150
|
-
}
|
|
151
|
-
if (Number(column.FieldTypeId) === FieldInfoTypeEnum.IconInfo) {
|
|
152
|
-
this.value = this.item[name].Url;
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
export const DateRanges = [
|
|
157
|
-
'DateR_None',
|
|
158
|
-
'DateR_SpecificRange',
|
|
159
|
-
'DateR_Today',
|
|
160
|
-
'DateR_ThisWeek',
|
|
161
|
-
'DateR_ThisMonth',
|
|
162
|
-
'DateR_ThisYear',
|
|
163
|
-
'DateR_DaysBefore',
|
|
164
|
-
'DateR_PrevWeek',
|
|
165
|
-
'DateR_PrevMonth',
|
|
166
|
-
'DateR_PrevYear',
|
|
167
|
-
'DateR_DaysAfter',
|
|
168
|
-
'DateR_NextWeek',
|
|
169
|
-
'DateR_NextMonth',
|
|
170
|
-
'DateR_NextYear'
|
|
171
|
-
];
|
|
172
|
-
export var SortDirection;
|
|
173
|
-
(function (SortDirection) {
|
|
174
|
-
SortDirection["NONE"] = "none";
|
|
175
|
-
SortDirection["ASC"] = "asc";
|
|
176
|
-
SortDirection["DESC"] = "desc";
|
|
177
|
-
})(SortDirection || (SortDirection = {}));
|
|
178
|
-
export var SelectionMode;
|
|
179
|
-
(function (SelectionMode) {
|
|
180
|
-
SelectionMode["SINGLE"] = "single";
|
|
181
|
-
SelectionMode["MULTIPLE"] = "multiple";
|
|
182
|
-
SelectionMode["NONE"] = "none";
|
|
183
|
-
})(SelectionMode || (SelectionMode = {}));
|
|
184
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etbm92aW4tcmF5LWNvcmUvc3JjL2xpYi9hYnN0cmFjdC1jbGFzc2VzL21vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTQSxNQUFNLE9BQU8sdUJBQXVCO0lBQXBDO1FBWUksY0FBUyxHQUFHLElBQUksQ0FBQztJQVdyQixDQUFDO0NBQUE7QUFTRCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsdUJBQXVCO0NBU2xFO0FBQ0QsTUFBTSxPQUFPLDBCQUEyQixTQUFRLHNCQUFzQjtDQUVyRTtBQUNELE1BQU0sT0FBTyxzQkFBdUIsU0FBUSx1QkFBdUI7Q0FPbEU7QUFDRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsdUJBQXVCO0NBSWhFO0FBQ0QsTUFBTSxPQUFPLG9CQUFxQixTQUFRLHVCQUF1QjtDQVVoRTtBQUNELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSx1QkFBdUI7Q0FLbkU7QUFDRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsdUJBQXVCO0NBQUc7QUFDcEUsTUFBTSxPQUFPLDJCQUE0QixTQUFRLHVCQUF1QjtDQUl2RTtBQUNELE1BQU0sT0FBTyxxQkFBc0IsU0FBUSx1QkFBdUI7Q0FPakU7QUFNRCxNQUFNLE9BQU8sNEJBQTZCLFNBQVEsdUJBQXVCO0NBR3hFO0FBQ0QsTUFBTSxPQUFPLHVCQUF3QixTQUFRLDRCQUE0QjtDQUd4RTtBQUNELE1BQU0sT0FBTyxvQ0FBcUMsU0FBUSw0QkFBNEI7Q0FFckY7QUFDRCxNQUFNLE9BQU8sNkJBQThCLFNBQVEsdUJBQXVCO0NBSXpFO0FBQ0QsTUFBTSxPQUFPLDBCQUEyQixTQUFRLHVCQUF1QjtDQUd0RTtBQUNELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSx1QkFBdUI7Q0FRaEU7QUFDRCxNQUFNLE9BQU8sYUFBYTtDQU16QjtBQUNELE1BQU0sT0FBTyx3QkFBeUIsU0FBUSx1QkFBdUI7Q0FNcEU7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LFFBSXhCO0FBaUNELE1BQU0sQ0FBTixJQUFZLGFBSVg7QUFKRCxXQUFZLGFBQWE7SUFDckIsa0NBQWlCLENBQUE7SUFDakIsc0NBQXFCLENBQUE7SUFDckIsOEJBQWEsQ0FBQTtBQUNqQixDQUFDLEVBSlcsYUFBYSxLQUFiLGFBQWEsUUFJeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgRGF0ZUluZm8gYXMgRGF0ZUluZm9TZXJ2aWNlIH0gZnJvbSAnLi4vZGF0ZS1zZXJ2aWNlcyc7XG5cbmV4cG9ydCB0eXBlIFVsdlBhcmFtVHlwZSA9IHtcbiAgICBGbGFnczogeyBEYXRhOiBzdHJpbmc7IEV4dHJhOiBzdHJpbmc7IFNlYXJjaDogc3RyaW5nOyBWaWV3OiBzdHJpbmcgfTtcbiAgICBSZXBvcnROYW1lOiBzdHJpbmc7XG4gICAgUmVwb3J0SWQ/OiBzdHJpbmc7XG4gICAgVXNhZ2VFbnVtOiBzdHJpbmc7XG59O1xuZXhwb3J0IGNsYXNzIEdlbmVyYWxDb250cm9sSW5mb01vZGVsIHtcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgQ29udHJvbEZpZWxkQ2FwdGlvbjogc3RyaW5nO1xuICAgIENvbnRyb2xGaWVsZENhcHRpb25UcmFuc2xhdGVkOiBzdHJpbmc7XG4gICAgQ29udHJvbEZpZWxkRGVmSWQ6IHN0cmluZztcbiAgICBDb250cm9sTmFtZTogc3RyaW5nO1xuICAgIFJlbGF0ZWRGaWVsZExpc3Q6IFtdO1xuICAgIEhpZGU6IGJvb2xlYW47XG4gICAgeHR5cGU6IHN0cmluZztcbiAgICBMYWJlbFBvc2l0aW9uOiBzdHJpbmc7XG4gICAgSXNNYW5kYXRvcnk6IGJvb2xlYW47XG4gICAgSXNWaXNpYmxlOiBib29sZWFuO1xuICAgIFNob3dMYWJlbCA9IHRydWU7XG4gICAgSXNSZWFkT25seTogYm9vbGVhbjtcbiAgICBJc0VuYWJsZWQ6IGJvb2xlYW47XG4gICAgSXNCb2xkOiBib29sZWFuO1xuICAgIElzQXV0b21hdGljOiBib29sZWFuO1xuICAgIEpzb25FeHRyYVByb3A6IGFueSB8IG51bGw7XG4gICAgQ29tcG9uZW50OiBzdHJpbmc7XG4gICAgSW5mbzogQ29udHJvbEluZm9UeXBlcztcbiAgICBGaWVsZEljb246IHN0cmluZztcbiAgICBJc0x0cjogYm9vbGVhbjtcbiAgICBEaXNwbGF5VHlwZTogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBGaWxlQXR0YWNobWVudEluZm8ge1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICBJZDogc3RyaW5nO1xuICAgIElzTmV3OiBib29sZWFuO1xuICAgIElzRGVsZXRlZDogYm9vbGVhbjtcbiAgICBUeXBlOiBzdHJpbmc7XG4gICAgRmlsZU5hbWU/OiBzdHJpbmc7XG59XG5leHBvcnQgY2xhc3MgU3RyaW5nQ29udHJvbEluZm9Nb2RlbCBleHRlbmRzIEdlbmVyYWxDb250cm9sSW5mb01vZGVsIHtcbiAgICBNYXhMZW5ndGg6IG51bWJlcjtcbiAgICBNaW5MZW5ndGg6IG51bWJlcjtcbiAgICBSZWd1bGFyRXhwcmVzc2lvbjogc3RyaW5nO1xuICAgIElzUGFzc3dvcmQ6IGJvb2xlYW47XG4gICAgSXNNdWx0aUxpbmU6IGJvb2xlYW47XG4gICAgTnVsbFRleHQ6IHN0cmluZztcbiAgICBBbGxvd2VkU3RyaW5nQ2hhcnM6IHN0cmluZztcbiAgICBPbmx5QWNjZXB0Q3VycmVudEN1bHR1cmU6IGJvb2xlYW47XG59XG5leHBvcnQgY2xhc3MgUmljaFN0cmluZ0NvbnRyb2xJbmZvTW9kZWwgZXh0ZW5kcyBTdHJpbmdDb250cm9sSW5mb01vZGVsIHtcbiAgICBJc0h0bWxWaWV3ZXI6IGJvb2xlYW47XG59XG5leHBvcnQgY2xhc3MgTnVtYmVyQ29udHJvbEluZm9Nb2RlbCBleHRlbmRzIEdlbmVyYWxDb250cm9sSW5mb01vZGVsIHtcbiAgICBNaW5WYWx1ZTogbnVtYmVyO1xuICAgIE1heFZhbHVlOiBudW1iZXI7XG4gICAgRGVjaW1hbFByZWNpc2lvbjogbnVtYmVyO1xuICAgIFNob3dUaG91c2FuZFNlcGVyYXRvcjogYm9vbGVhbjtcbiAgICBOdW1iZXJUeXBlOiBzdHJpbmc7XG4gICAgQ3VycmVuY3lTeW1ib2w6IHN0cmluZztcbn1cbmV4cG9ydCBjbGFzcyBGaWxlUGljdHVyZUluZm9Nb2RlbCBleHRlbmRzIEdlbmVyYWxDb250cm9sSW5mb01vZGVsIHtcbiAgICBFeHQ6IHN0cmluZztcbiAgICBGaWxlSWQ6IHN0cmluZztcbiAgICBJc0RlbGV0ZWQ6IGJvb2xlYW47XG59XG5leHBvcnQgY2xhc3MgRmlsZUNvbnRyb2xJbmZvTW9kZWwgZXh0ZW5kcyBHZW5lcmFsQ29udHJvbEluZm9Nb2RlbCB7XG4gICAgQ2FuRGVsZXRlOiBib29sZWFuO1xuICAgIENhblNhdmU6IGJvb2xlYW47XG4gICAgQ2FuVmlldzogYm9vbGVhbjtcbiAgICBJc011bHRpU2VsZWN0OiBib29sZWFuO1xuICAgIE1heEZpbGVDb3VudDogbnVtYmVyO1xuICAgIE1heEZpbGVTaXplS2I6IG51bWJlcjtcbiAgICBPZmZpY2VPbmxpbmU6IGJvb2xlYW47XG4gICAgVmFsaWRFeHRlbnNpb25zOiBzdHJpbmc7XG4gICAgVmlld1R5cGU6IHN0cmluZztcbn1cbmV4cG9ydCBjbGFzcyBDb21tYW5kQ29udHJvbEluZm9Nb2RlbCBleHRlbmRzIEdlbmVyYWxDb250cm9sSW5mb01vZGVsIHtcbiAgICBNZW51TmFtZTogc3RyaW5nO1xuICAgIERpc2FibGVXaGVuUmVhZG9ubHk6IGJvb2xlYW47XG4gICAgRGlzcGxheVR5cGU6IHN0cmluZztcbiAgICBEeW5hbWljQ29tbWFuZDogc3RyaW5nO1xufVxuZXhwb3J0IGNsYXNzIEljb25Db250cm9sSW5mb01vZGVsIGV4dGVuZHMgR2VuZXJhbENvbnRyb2xJbmZvTW9kZWwge31cbmV4cG9ydCBjbGFzcyBQaWN0dXJlRmlsZUNvbnRyb2xJbmZvTW9kZWwgZXh0ZW5kcyBHZW5lcmFsQ29udHJvbEluZm9Nb2RlbCB7XG4gICAgU2l6ZU1vZGU6IG51bWJlcjtcbiAgICBNYXhGaWxlU2l6ZUtiOiBudW1iZXI7XG4gICAgVmFsaWRFeHRlbnNpb25zOiBzdHJpbmc7XG59XG5leHBvcnQgY2xhc3MgR2F1Z2VDb250cm9sSW5mb01vZGVsIGV4dGVuZHMgR2VuZXJhbENvbnRyb2xJbmZvTW9kZWwge1xuICAgIElzQXV0b21hdGljOiBib29sZWFuO1xuICAgIE1heFZhbHVlOiBudW1iZXI7XG4gICAgTWF4VmFsdWUyOiBudW1iZXI7XG4gICAgTWluVmFsdWU6IG51bWJlcjtcbiAgICBNaW5WYWx1ZTI6IG51bWJlcjtcbiAgICBWYWx1ZTogbnVtYmVyO1xufVxuZXhwb3J0IHR5cGUgUmVsYXRpb25MaXN0VHlwZXMgPVxuICAgIHwgUmVsYXRpb25MaXN0Q29udHJvbEluZm9Nb2RlbFxuICAgIHwgSGlzdG9yeUNvbnRyb2xJbmZvTW9kZWxcbiAgICB8IFJhYmV0ZWhBa3NlVGFraUxpc3RpQ29udHJvbEluZm9Nb2RlbFxuICAgIHwgU2luZ2xlUmVsYXRpb25Db250cm9sSW5mb01vZGVsO1xuZXhwb3J0IGNsYXNzIFJlbGF0aW9uTGlzdENvbnRyb2xJbmZvTW9kZWwgZXh0ZW5kcyBHZW5lcmFsQ29udHJvbEluZm9Nb2RlbCB7XG4gICAgUmVsYXRpb25WaWV3VHlwZTogc3RyaW5nO1xuICAgIFVsdlNldHRpbmc6IFJlcG9ydE1vZGVsO1xufVxuZXhwb3J0IGNsYXNzIEhpc3RvcnlDb250cm9sSW5mb01vZGVsIGV4dGVuZHMgUmVsYXRpb25MaXN0Q29udHJvbEluZm9Nb2RlbCB7XG4gICAgSGFzRXh0ZXJuYWxQYXJhbWV0ZXI6IGJvb2xlYW47XG4gICAgUGFyYW1OYW1lMTogc3RyaW5nO1xufVxuZXhwb3J0IGNsYXNzIFJhYmV0ZWhBa3NlVGFraUxpc3RpQ29udHJvbEluZm9Nb2RlbCBleHRlbmRzIFJlbGF0aW9uTGlzdENvbnRyb2xJbmZvTW9kZWwge1xuICAgIEF1dG9TYXZlO1xufVxuZXhwb3J0IGNsYXNzIFJlbGF0ZWRSZXBvcnRDb250cm9sSW5mb01vZGVsIGV4dGVuZHMgR2VuZXJhbENvbnRyb2xJbmZvTW9kZWwge1xuICAgIEhhc0V4dGVybmFsUGFyYW1ldGVyOiBib29sZWFuO1xuICAgIFBhcmFtTmFtZTE6IHN0cmluZztcbiAgICBVbHZTZXR0aW5nOiBSZXBvcnRNb2RlbDtcbn1cbmV4cG9ydCBjbGFzcyBDb2RlRWRpdG9yQ29udHJvbEluZm9Nb2RlbCBleHRlbmRzIEdlbmVyYWxDb250cm9sSW5mb01vZGVsIHtcbiAgICBFeHRyYVRleHQ6IHN0cmluZztcbiAgICBTdWdnZXN0aW9uczogc3RyaW5nO1xufVxuZXhwb3J0IGNsYXNzIEVudW1Db250cm9sSW5mb01vZGVsIGV4dGVuZHMgR2VuZXJhbENvbnRyb2xJbmZvTW9kZWwge1xuICAgIElzTXVsdGlTZWxlY3Q6IGJvb2xlYW47XG4gICAgU2hvd0FzUmFkaW9CdXR0b246IGJvb2xlYW47XG4gICAgSWNvbkRpc3BsYXlUeXBlOiBzdHJpbmc7XG4gICAgRGF0YVNvdXJjZToge1xuICAgICAgICBSb3dzOiBSb3dEYXRhT3B0aW9uW107XG4gICAgfTtcbiAgICBFbXB0eVJvd0RhdGE6IFJvd0RhdGFPcHRpb247XG59XG5leHBvcnQgY2xhc3MgUm93RGF0YU9wdGlvbiB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBJc0VtcHR5OiBib29sZWFuO1xuICAgIHR4dDogc3RyaW5nO1xuICAgIHR4dF9zYWZlPzogc3RyaW5nO1xuICAgIHVybDogc3RyaW5nO1xufVxuZXhwb3J0IGNsYXNzIERhdGVUaW1lQ29udHJvbEluZm9Nb2RlbCBleHRlbmRzIEdlbmVyYWxDb250cm9sSW5mb01vZGVsIHtcbiAgICBDYWxlbmRhclR5cGU6IHN0cmluZztcbiAgICBEYXRlRm9ybWF0OiBzdHJpbmc7XG4gICAgU2hvd0RhdGUxOiBib29sZWFuO1xuICAgIFNob3dUaW1lMTogYm9vbGVhbjtcbiAgICBUaW1lRm9ybWF0OiBzdHJpbmc7XG59XG5leHBvcnQgY2xhc3MgQm9vbENvbnRyb2xJbmZvTW9kZWwgZXh0ZW5kcyBHZW5lcmFsQ29udHJvbEluZm9Nb2RlbCB7XG4gICAgRmFsc2VDYXB0aW9uOiBzdHJpbmc7XG4gICAgVHJ1ZUNhcHRpb246IHN0cmluZztcbiAgICBUcnVlSWNvbjogc3RyaW5nO1xuICAgIFZpZXdUeXBlOiBzdHJpbmc7XG4gICAgRmFsc2VJY29uOiBzdHJpbmc7XG59XG5leHBvcnQgY2xhc3MgQ2FsY3VsYXRlQ29udHJvbEluZm9Nb2RlbCBleHRlbmRzIEdlbmVyYWxDb250cm9sSW5mb01vZGVsIHtcbiAgICBJbm5lckN0cmxyOiBDb250cm9sSW5mb1R5cGVzO1xuICAgIEV4ZWN1dGFpb25UaW1lOiBzdHJpbmc7XG4gICAgRWRpdFR5cGU6IHN0cmluZztcbiAgICBEb250U2hvd1JlY2FsY3VsYXRlQnV0dG9uOiBib29sZWFuO1xufVxuZXhwb3J0IGNsYXNzIFN1YmZvcm1Db250cm9sSW5mb01vZGVsIGV4dGVuZHMgR2VuZXJhbENvbnRyb2xJbmZvTW9kZWwge1xuICAgIFR5cGVEZWZJZDogYW55O1xuICAgIFR5cGVEZWZJY29uOiBzdHJpbmc7XG4gICAgSXNDb21wb3NlZFJlbGF0aW9uOiBzdHJpbmc7XG4gICAgRHJvcERvd25SZXBvcnRJZDogc3RyaW5nO1xuICAgIFR5cGVWaWV3SWQ6IHN0cmluZztcbiAgICBGb3JtUGFuZWxTZXR0aW5nOiBGb3JtU2V0dGluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRG93bmxvYWRGaWxlSW5mbyB7XG4gICAgZmlsZUlkOiBzdHJpbmc7XG4gICAgZmlsZVVybDogc3RyaW5nO1xuICAgIHZpZXdJbkJyb3dzZXI6IGJvb2xlYW47XG4gICAgY29udmVydFRvOiBzdHJpbmc7XG4gICAgaXNPZmZpY2VPbmxpbmU6IGJvb2xlYW47XG4gICAgZm9yT2N4OiBib29sZWFuO1xufVxuZXhwb3J0IGludGVyZmFjZSBEb3dubG9hZEZpbGVJbmZvUmVzdWx0IHtcbiAgICBmaWxlbmFtZTogc3RyaW5nO1xuICAgIGNvbnRlbnQ6IHN0cmluZztcbiAgICBjb250ZW50VHlwZTogc3RyaW5nO1xuICAgIHN1Y2NlZWQ6IGJvb2xlYW47XG59XG5leHBvcnQgY2xhc3MgTGluZWFyTGlzdENvbnRyb2xJbmZvTW9kZWwgZXh0ZW5kcyBHZW5lcmFsQ29udHJvbEluZm9Nb2RlbCB7XG4gICAgRGVmYXVsdEZpZWxkOiBzdHJpbmc7XG4gICAgRXh0cmFKc29uUHJvcEZpZWxkOiBzdHJpbmc7XG4gICAgRmlsbEJlZm9yZURyb3BEb3duOiBib29sZWFuO1xuICAgIElzR2VuZXJhbEluZm86IGJvb2xlYW47XG4gICAgSXNNdWx0aVNlbGVjdDogYm9vbGVhbjtcbiAgICBSZWxhdGlvbjogTGlzdFJlbGF0aW9uTW9kZWw7XG4gICAgUmVsYXRpb25WaWV3VHlwZTogc3RyaW5nO1xuICAgIFJvd0ljb246IHN0cmluZztcbiAgICBUYXJnZXRUeXBlRGVmSWQ6IHN0cmluZztcbn1cbmV4cG9ydCBjbGFzcyBMaXN0UmVsYXRpb25Nb2RlbCB7XG4gICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgIENoaWxkRmRJZDogc3RyaW5nO1xuICAgIENoaWxkRmROYW1lOiBzdHJpbmc7XG4gICAgSXNBdXRvU2F2ZTogYm9vbGVhbjtcbiAgICBQYXJlbnRNb0lkOiBzdHJpbmc7XG4gICAgUmVsYXRpb25UeXBlOiBzdHJpbmc7XG59XG5leHBvcnQgY2xhc3MgU2luZ2xlUmVsYXRpb25Db250cm9sSW5mb01vZGVsIGV4dGVuZHMgR2VuZXJhbENvbnRyb2xJbmZvTW9kZWwge1xuICAgIENvbHVtblJlcXVlc3RFbnVtOiBzdHJpbmc7XG4gICAgRHJvcERvd25SZXBvcnRJZDogc3RyaW5nO1xuICAgIEZpbGxCZWZvcmVEcm9wRG93bjogYm9vbGVhbjtcbiAgICBIaWRlQ29tYm86IGJvb2xlYW47XG4gICAgUmVsYXRpb25WaWV3VHlwZTogc3RyaW5nO1xuICAgIFBhc3NQYXJlbnRGb3JtOiBib29sZWFuO1xuICAgIFNob3dOZXdCdXR0b246IGJvb2xlYW47XG4gICAgU2hvd09rQ2FuY2VsOiBib29sZWFuO1xuICAgIFZpZXdSZWxhdGVkRm9ybVR5cGU6IHN0cmluZztcbiAgICBUYXJnZXRUeXBlRGVmSWQ6IHN0cmluZztcbiAgICBEYXRhU291cmNlOiB7XG4gICAgICAgIFJvd3M6IFJvd0RhdGFPcHRpb25bXTtcbiAgICB9O1xuICAgIFByZXZpZXdGaWVsZENhcHRpb246IHN0cmluZztcbiAgICBQcmV2aWV3RmllbGRJZDogc3RyaW5nO1xuICAgIFByZXZpZXdGaWVsZE5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgQ29udHJvbEluZm9UeXBlcyA9XG4gICAgfCBTdWJmb3JtQ29udHJvbEluZm9Nb2RlbFxuICAgIHwgQ2FsY3VsYXRlQ29udHJvbEluZm9Nb2RlbFxuICAgIHwgQm9vbENvbnRyb2xJbmZvTW9kZWxcbiAgICB8IEVudW1Db250cm9sSW5mb01vZGVsXG4gICAgfCBJY29uQ29udHJvbEluZm9Nb2RlbFxuICAgIHwgRmlsZUNvbnRyb2xJbmZvTW9kZWxcbiAgICB8IERhdGVUaW1lQ29udHJvbEluZm9Nb2RlbFxuICAgIHwgTnVtYmVyQ29udHJvbEluZm9Nb2RlbFxuICAgIHwgU3RyaW5nQ29udHJvbEluZm9Nb2RlbFxuICAgIHwgUGljdHVyZUZpbGVDb250cm9sSW5mb01vZGVsXG4gICAgfCBHYXVnZUNvbnRyb2xJbmZvTW9kZWxcbiAgICB8IENvbW1hbmRDb250cm9sSW5mb01vZGVsXG4gICAgfCBDb2RlRWRpdG9yQ29udHJvbEluZm9Nb2RlbDtcblxuZXhwb3J0IGludGVyZmFjZSBGb3JtVmlld1NldHRpbmcge1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICBMYXlvdXQ5NDogYW55O1xuICAgIENvbnRyb2xJbmZvOiBHZW5lcmFsQ29udHJvbEluZm9Nb2RlbFtdO1xufVxuZXhwb3J0IGludGVyZmFjZSBGb3JtU2V0dGluZyB7XG4gICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgIERhdGE6IHtcbiAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICBNbzogTWV0YW9iamVjdERhdGFNb2RlbDtcbiAgICB9O1xuICAgIFZpZXc6IEZvcm1WaWV3U2V0dGluZztcbn1cblxuZXhwb3J0IGNsYXNzIE1ldGFvYmplY3REYXRhTW9kZWwge1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAkRmllbGREaWN0PzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgICAkUmVwb3J0SWQ/OiBzdHJpbmc7XG4gICAgJFR5cGU/OiBzdHJpbmc7XG4gICAgJFN0eWxlSW5kZXg/OiBudW1iZXJbXTtcbiAgICAkQ2FwdGlvbjogc3RyaW5nO1xuICAgICRJY29uPzogc3RyaW5nO1xuICAgICRTdGF0ZT86IHN0cmluZztcbiAgICAkVHlwZURlZklkPzogc3RyaW5nO1xuICAgICRUeXBlRGVmTmFtZT86IHN0cmluZztcbiAgICAkQ2hpbGRyZW4/OiBNZXRhb2JqZWN0RGF0YU1vZGVsW107XG4gICAgSW5oZXJpdGFuY2U/OiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xuICAgIEluaGVyaXRhbmNlSW5mbz86IHtcbiAgICAgICAgQ2hpbGRGaWVsZE5hbWU6IHN0cmluZztcbiAgICAgICAgUGFyZW50RmllbGROYW1lOiBzdHJpbmc7XG4gICAgfTtcbiAgICBJZDogc3RyaW5nO1xufVxuZXhwb3J0IGRlY2xhcmUgY2xhc3MgQ2FsZW5kYXJNZXRhb2JqZWN0RGF0YU1vZGVsIGV4dGVuZHMgTWV0YW9iamVjdERhdGFNb2RlbCB7XG4gICAgJENvbG9yOiBzdHJpbmc7XG4gICAgJE1vbWVudFN0YXJ0RGF0ZTogc3RyaW5nO1xuICAgICRNb21lbnRFbmREYXRlOiBzdHJpbmc7XG4gICAgJFN0YXJ0VGltZXM6IHN0cmluZztcbiAgICAkRW5kVGltZXM6IHN0cmluZztcbiAgICAkVGl0bGU6IHN0cmluZztcbiAgICAkTm90ZXM6IHN0cmluZztcbiAgICAkU3RhcnREYXRlSW5mbz86IERhdGVJbmZvU2VydmljZTtcbiAgICAkRW5kRGF0ZUluZm8/OiBEYXRlSW5mb1NlcnZpY2U7XG59XG5cbmV4cG9ydCBjbGFzcyBNb0ZvclJlcG9ydE1vZGVsIHtcbiAgICAkVHlwZT86IHN0cmluZztcbiAgICBUeXBlRGVmSWQ6IHN0cmluZztcbiAgICBSZXBvcnRJZDogc3RyaW5nO1xuICAgIEljb24/OiBzdHJpbmc7XG4gICAgTW9EYXRhTGlzdDogQXJyYXk8TWV0YW9iamVjdERhdGFNb2RlbD47XG4gICAgRGVsZXRlZExpc3Q6IEFycmF5PHsgSWQ6IHN0cmluZzsgVHlwZURlZklkOiBzdHJpbmcgfT47XG4gICAgQWRkZWRMaXN0OiBBcnJheTx7IElkOiBzdHJpbmc7IFR5cGVEZWZJZDogc3RyaW5nIH0+O1xuICAgIFBhZ2luZzogUGFnaW5nU2V0dGluZztcbiAgICBSZWxhdGlvbj86IHtcbiAgICAgICAgUmVsYXRpb25UeXBlOiBzdHJpbmc7XG4gICAgICAgIFBhcmVudE1vSWQ6IHN0cmluZztcbiAgICAgICAgUGFyZW50RmRJZDogc3RyaW5nO1xuICAgICAgICBDaGlsZEZkSWQ6IHN0cmluZztcbiAgICAgICAgUGFyZW50RmROYW1lOiBzdHJpbmc7XG4gICAgICAgIENoaWxkRmROYW1lOiBzdHJpbmc7XG4gICAgICAgIFBhc3NQYXJlbnRNb0ZpZWxkOiBzdHJpbmc7XG4gICAgICAgIElzQXV0b1NhdmU6IGJvb2xlYW47XG4gICAgICAgIElzQXV0b1NhdmVfUmVsb2FkUGFyZW50Rm9ybXM6IGJvb2xlYW47XG4gICAgICAgIElzQXV0b1NhdmVfUmVsb2FkUm9vdFBhcmVudExpc3Q6IGJvb2xlYW47XG4gICAgfTtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5EZWxldGVkTGlzdCA9IHRoaXMuQWRkZWRMaXN0ID0gdGhpcy5Nb0RhdGFMaXN0ID0gW107XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIFJlcG9ydEJhc2VJbmZvIHtcbiAgICBJZDogc3RyaW5nO1xuICAgIENhcHRpb246IHN0cmluZztcbiAgICBGb2xkZXJJZDogc3RyaW5nO1xuICAgIEljb25Vcmw6IHN0cmluZztcbiAgICBOYW1lOiBzdHJpbmc7XG4gICAgUmVwb3J0SWQ6IHN0cmluZztcbn1cbmV4cG9ydCBjbGFzcyBSZXBvcnRFeHRyYUluZm8gZXh0ZW5kcyBSZXBvcnRCYXNlSW5mbyB7XG4gICAgVHlwZURlZklkOiBzdHJpbmc7XG4gICAgVHlwZURlZkNhcHRpb246IHN0cmluZztcbiAgICBSZXBvcnRUeXBlOiBzdHJpbmc7XG4gICAgSGlkZVRvb2xiYXI6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBNZXRhb2JqZWN0UmVsYXRpb25Nb2RlbCBleHRlbmRzIExpc3RSZWxhdGlvbk1vZGVsIHtcbiAgICBQYXJlbnRGZElkOiBzdHJpbmc7XG4gICAgUGFzc1BhcmVudE1vRmllbGQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGVudW0gRmllbGRJbmZvVHlwZUVudW0ge1xuICAgIEludEluZm8gPSAwLFxuICAgIFN0cmluZ0luZm8gPSAyLFxuICAgIERhdGVJbmZvID0gMyxcbiAgICBCb29sSW5mbyA9IDUsXG4gICAgRW51bUluZm8gPSA2LFxuICAgIFVzZXJJbmZvID0gNyxcbiAgICBDYXRlZ29yeUluZm8gPSA4LFxuICAgIE1ldGFPYmplY3RJbmZvID0gOSxcbiAgICBDb21tYW5kSW5mbyA9IDEwLCAvLyAweDAwMDAwMDBBXG4gICAgUGljdHVyZXNJbmZvID0gMTEsIC8vIDB4MDAwMDAwMEJcbiAgICBSZWxhdGlvbkluZm8gPSAxMiwgLy8gMHgwMDAwMDAwQ1xuICAgIEhpc3RvcnlJbmZvID0gMTMsIC8vIDB4MDAwMDAwMERcbiAgICBSZWxhdGlvbkluZm9SZXZlcnNlX0Frc0xpc3RpID0gMTQsIC8vIDB4MDAwMDAwMEVcbiAgICBDcmVhdG9yVXNlckluZm8gPSAxNSwgLy8gMHgwMDAwMDAwRlxuICAgIENyZWF0aW9uRGF0ZUluZm8gPSAxNiwgLy8gMHgwMDAwMDAxMFxuICAgIExhc3RVcGRhdGVEYXRlSW5mbyA9IDE3LCAvLyAweDAwMDAwMDExXG4gICAgUmVtaW5kZXJJbmZvID0gMTgsIC8vIDB4MDAwMDAwMTJcbiAgICBSaWNoU3RyaW5nSW5mbyA9IDE5LCAvLyAweDAwMDAwMDEzXG4gICAgQ29udmVydENvbW1hbmRJbmZvID0gMjAsIC8vIDB4MDAwMDAwMTRcbiAgICBSZWxhdGlvbkluZm9TaW5nbGVSZXZlcnNlX0Frc1Rha2lMaXN0aSA9IDIxLCAvLyAweDAwMDAwMDE1XG4gICAgRGlhbENvbW1hbmRJbmZvID0gMjIsIC8vIDB4MDAwMDAwMTZcbiAgICBGaW5kQ29udGFjdENvbW1hbmRJbmZvID0gMjMsIC8vIDB4MDAwMDAwMTdcbiAgICBTZXF1ZW5jZUNvbW1hbmRJbmZvID0gMjQsIC8vIDB4MDAwMDAwMThcbiAgICBDdXJyZW5jeUluZm8gPSAyNSwgLy8gMHgwMDAwMDAxOVxuICAgIFNpbmdsZVBpY3R1cmVJbmZvID0gMjYsIC8vIDB4MDAwMDAwMUFcbiAgICBXb3JkUmVwb3J0Q29tbWFuZEluZm8gPSAyNywgLy8gMHgwMDAwMDAxQlxuICAgIEhpZXJhcmNoaWNhbEluZm8gPSAyOCwgLy8gMHgwMDAwMDAxQ1xuICAgIFRpbWVTcGFuSW5mbyA9IDI5LCAvLyAweDAwMDAwMDFEXG4gICAgUmVwb3J0SW5mbyA9IDMwLCAvLyAweDAwMDAwMDFFXG4gICAgRmlsZUluZm8gPSAzMSwgLy8gMHgwMDAwMDAxRlxuICAgIFdvcmRGaWxlSW5mbyA9IDMyLCAvLyAweDAwMDAwMDIwXG4gICAgUGljdHVyZUZpbGVJbmZvID0gMzMsIC8vIDB4MDAwMDAwMjFcbiAgICBHYXVnZUluZm8gPSAzNCwgLy8gMHgwMDAwMDAyMlxuICAgIENvZGVJbmZvID0gMzUsIC8vIDB4MDAwMDAwMjNcbiAgICBXb3JrQ2VudGVySW5mbyA9IDM2LCAvLyAweDAwMDAwMDI0XG4gICAgSXNEZWxldGVkSW5mbyA9IDM3LCAvLyAweDAwMDAwMDI1XG4gICAgUm93TnVtYmVySW5mbyA9IDM4LCAvLyAweDAwMDAwMDI2XG4gICAgQmluYXJ5SW5mbyA9IDM5LCAvLyAweDAwMDAwMDI3XG4gICAgUmV2ZXJzZU1ldGFPYmplY3RJbmZvX0Frc1Rha2lUYWtpID0gNDAsIC8vIDB4MDAwMDAwMjhcbiAgICBDb2xvckluZm8gPSA0MSwgLy8gMHgwMDAwMDAyOVxuICAgIEljb25JbmZvID0gNDIsIC8vIDB4MDAwMDAwMkFcbiAgICBSZWZyZXNoRmllbGRDb21tYW5kSW5mbyA9IDQzLCAvLyAweDAwMDAwMDJCXG4gICAgUmVmZXJlbmNlRmllbGRJbmZvID0gNDQsIC8vIDB4MDAwMDAwMkNcbiAgICBTZWFyY2hDb21tYW5kSW5mbyA9IDQ1LCAvLyAweDAwMDAwMDJEXG4gICAgT3JkZXJJbmZvID0gNDYgLy8gMHgwMDAwMDAyRVxufVxuZXhwb3J0IGludGVyZmFjZSBDbGFzc05hbWVzTW9kZWwge1xuICAgIENvbW1hbmRCYXJDbGFzczogc3RyaW5nO1xuICAgIERhdGFDbGFzczogc3RyaW5nO1xuICAgIFNlbGVjdGlvbkNsYXNzOiBzdHJpbmc7XG4gICAgVmlld2VyQ2xhc3M6IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRXh0cmFNb2RlbCB7XG4gICAgQ3VzdG9tQ29tbWFuZHM/OiBDdXN0b21Db21tYW5kW107XG4gICAgRGVmYXVsdENvbW1hbmRzQWNjZXNzPzogRGVmYXVsdENvbW1hbmRzQWNjZXNzO1xuICAgIFBhcmVudFVsdkNvbmZpZz86IGFueTtcbiAgICBSZWxhdGlvbj86IE1ldGFvYmplY3RSZWxhdGlvbk1vZGVsO1xuICAgIFJlcG9ydD86IFJlcG9ydEV4dHJhSW5mbztcbiAgICBFeHRyYUpzb25Qcm9wUmVwb3J0PzogYW55O1xufVxuXG5leHBvcnQgY2xhc3MgQmFzZVJlcG9ydE1vZGVsIHtcbiAgICBDbGFzc05hbWVzOiBDbGFzc05hbWVzTW9kZWw7XG4gICAgRXh0cmE6IEV4dHJhTW9kZWw7XG4gICAgVmlldzogVmlld1R5cGVzO1xuICAgIFNlYXJjaFBhbmVsOiBhbnk7XG4gICAgRGVmYXVsdEl0ZW1Db21wb25lbnQgPSAnUmVwb3J0RGVmYXVsdEl0ZW1Db21wb25lbnQnO1xufVxuZXhwb3J0IGludGVyZmFjZSBEZWZhdWx0Q29tbWFuZHNBY2Nlc3Mge1xuICAgIEFkZDogYm9vbGVhbjtcbiAgICBBZGRUb0xpc3Q6IGJvb2xlYW47XG4gICAgRGVsZXRlOiBib29sZWFuO1xuICAgIEVkaXQ6IGJvb2xlYW47XG4gICAgRXhwb3J0OiBib29sZWFuO1xuICAgIFByaW50OiBib29sZWFuO1xuICAgIFJlZnJlc2g6IGJvb2xlYW47XG4gICAgUmVtb3ZlRnJvbUxpc3Q6IGJvb2xlYW47XG4gICAgVmlldzogYm9vbGVhbjtcbn1cbmV4cG9ydCBjbGFzcyBDdXN0b21Db21tYW5kIHtcbiAgICBEYXRhOiBhbnk7XG4gICAgRGlzYWJsZVdoZW5SZWFkb25seTogYm9vbGVhbjtcbiAgICBIaWRlRGlzYWJsZTogYm9vbGVhbjtcbiAgICBJY29uVXJsOiBzdHJpbmc7XG4gICAgSXNMYXJnZTogYm9vbGVhbjtcbiAgICBNeXR5cGU6IHN0cmluZztcbiAgICBPcmRlcjogbnVtYmVyO1xuICAgIFNob3dPbkNvbnRleHQ6IGJvb2xlYW47XG4gICAgU2hvd09uVG9vbGJhcjogYm9vbGVhbjtcbiAgICBUZXh0OiBzdHJpbmc7XG4gICAgVXNlQWx3YXlzOiBib29sZWFuO1xuICAgIFVzZUZvck11bHRpOiBib29sZWFuO1xuICAgIFVzZUZvclNpbmdsZTogYm9vbGVhbjtcbn1cbmV4cG9ydCBjbGFzcyBSZXBvcnRNb2RlbCBleHRlbmRzIEJhc2VSZXBvcnRNb2RlbCB7XG4gICAgRGF0YTogTW9Gb3JSZXBvcnRNb2RlbDtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgUmVwb3J0TGlzdE1vZGVsIGV4dGVuZHMgQmFzZVJlcG9ydE1vZGVsIHtcbiAgICBWaWV3OiBHcmlkVmlldztcbn1cbmV4cG9ydCBjbGFzcyBSZXBvcnRGb3JtTW9kZWwgZXh0ZW5kcyBCYXNlUmVwb3J0TW9kZWwge1xuICAgIFZpZXc6IEZvcm1WaWV3O1xufVxuZXhwb3J0IGludGVyZmFjZSBUcmVlVmlldyB7XG4gICAgQ29uZGl0aW9uYWxGb3JtYXRzOiBbXTtcbiAgICBQYXJlbnRJZERiTmFtZTogc3RyaW5nO1xuICAgIFNob3dTZWxlY3Rpb25DaGVja3M6IGJvb2xlYW47XG4gICAgVHJlZUF1dG9PcGVuTGV2ZWxzOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR3JpZFZpZXcge1xuICAgIEFsbG93R3JpZENvbHVtblNvcnQ6IGJvb2xlYW47XG4gICAgQXV0b0lubGluZUVkaXQ6IGJvb2xlYW47XG4gICAgQ29sdW1uUmVxdWVzdEVudW06IHN0cmluZztcbiAgICBDb2x1bW5zOiBBcnJheTxSZXBvcnRWaWV3Q29sdW1uPjtcbiAgICBDb25kaXRpb25hbEZvcm1hdHM6IFtdO1xuICAgIERpc2FibGVSb3dSZWxvYWQ6IGJvb2xlYW47XG4gICAgR3JpZFNldHRpbmc6IEdyaWRTZXR0aW5nO1xuICAgIEdyaWRfRnJlZUNvbHVtblNpemluZzogYm9vbGVhbjtcbiAgICBHcmlkX0dyaWRMaW5lczogc3RyaW5nO1xuICAgIEdyaWRfSGlkZUhlYWRlcjogYm9vbGVhbjtcbiAgICBHcmlkX1Nob3dSb3dOdW1iZXI6IGJvb2xlYW47XG4gICAgSGFzQ29uZGl0aW9uYWxGb3JtYXQ6IGJvb2xlYW47XG4gICAgSGFzU3VtbWFyeVJvdzogYm9vbGVhbjtcbiAgICBIaWRlSWNvbjogYm9vbGVhbjtcbiAgICBJc0NoZWNrTGlzdDogYm9vbGVhbjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ2FsZW5kYXJWaWV3IHtcbiAgICBDYWxlbmRhckZpZWxkczogQ2FsZW5kYXJGaWVsZHM7XG59XG5leHBvcnQgaW50ZXJmYWNlIEZvcm1WaWV3IHtcbiAgICBGb3JtUGFuZWxTZXR0aW5nOiBhbnk7XG59XG5leHBvcnQgdHlwZSBWaWV3VHlwZXMgPSBHcmlkVmlldyB8IENhbGVuZGFyVmlldyB8IFRyZWVWaWV3IHwgRm9ybVZpZXc7XG5cbmV4cG9ydCB0eXBlIFJlcG9ydE1vZGVsVHlwZXMgPSBSZXBvcnRMaXN0TW9kZWwgfCBSZXBvcnRDYWxlbmRhck1vZGVsIHwgUmVwb3J0Rm9ybU1vZGVsIHwgUmVwb3J0VHJlZU1vZGVsO1xuXG5leHBvcnQgY2xhc3MgUmVwb3J0Q2FsZW5kYXJNb2RlbCBleHRlbmRzIEJhc2VSZXBvcnRNb2RlbCB7XG4gICAgVmlldzogQ2FsZW5kYXJWaWV3O1xufVxuZXhwb3J0IGNsYXNzIFJlcG9ydFRyZWVNb2RlbCBleHRlbmRzIEJhc2VSZXBvcnRNb2RlbCB7XG4gICAgVmlldzogVHJlZVZpZXc7XG59XG5leHBvcnQgaW50ZXJmYWNlIENhbGVuZGFyRmllbGRzIHtcbiAgICBFbmREYXRlOiBzdHJpbmc7XG4gICAgTm90ZXM6IHN0cmluZztcbiAgICBTdGFydERhdGU6IHN0cmluZztcbiAgICBUaXRsZTogc3RyaW5nO1xuICAgIENvbG9yOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBSZXBvcnRWaWV3Q29sdW1uIHtcbiAgICBBbGlhczogc3RyaW5nO1xuICAgIENhcHRpb246IHN0cmluZztcbiAgICBGaWVsZERlZklkOiBzdHJpbmc7XG4gICAgRmllbGRUeXBlSWQ6IG51bWJlcjtcbiAgICBGaWVsZFR5cGU6IHN0cmluZztcbiAgICBIYXNTdW1tYXJ5OiBib29sZWFuO1xuICAgIEhpZGRlbjogYm9vbGVhbjtcbiAgICBJc0x0cjogYm9vbGVhbjtcbiAgICBJc1ByZXZpZXc6IGJvb2xlYW47XG4gICAgTWV0YUZpZWxkVHlwZUlkOiBzdHJpbmc7XG4gICAgTmFtZTogc3RyaW5nO1xuICAgIFdpZHRoOiBudW1iZXI7XG4gICAgVGFnPzogc3RyaW5nO1xuICAgIEljb246IHN0cmluZztcbiAgICBPbmx5SW1hZ2U/OiBib29sZWFuO1xuICAgIEV4dHJhPzogYW55O1xuICAgICRDb250ZW50V2lkdGg/OiBzdHJpbmc7XG4gICAgJFdpZHRoPzogc3RyaW5nO1xuICAgICRDb2x1bW5XaWR0aE51bT86IG51bWJlcjtcbiAgICAkQ29sdW1uV2lkdGg/OiBzdHJpbmc7XG4gICAgJEZpdENvbnRhaW5lcldpZHRoPzogc3RyaW5nO1xuICAgICRNZXJnZWRGaWVsZHNUb0NvbHVtbj86IHN0cmluZ1tdO1xuICAgICRDU1NDbGFzc05hbWU/OiBzdHJpbmc7XG4gICAgJEN1c3RvbUNvbXBvbmVudD86IEVqcmF5T2xnbztcbiAgICAkVGV4dFdpZHRoPzogbnVtYmVyO1xuICAgICRJc0ltYWdlT3JpY29uPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIEdyaWRTZXR0aW5nIHtcbiAgICBDb2xTZXR0aW5nTGlzdDogQXJyYXk8Q29sU2V0dGluZz47XG4gICAgU29ydFNldHRpbmdMaXN0OiBBcnJheTxTb3J0U2V0dGluZz47XG4gICAgQXV0b1NpemVDb2x1bW5zOiBib29sZWFuO1xufVxuZXhwb3J0IGNsYXNzIENvbFNldHRpbmcge1xuICAgIE5hbWU6IHN0cmluZztcbiAgICBXaWR0aDogbnVtYmVyO1xuICAgIElzSGlkZGVuOiBib29sZWFuO1xufVxuZXhwb3J0IGNsYXNzIFNvcnRTZXR0aW5nIHtcbiAgICBOYW1lOiBzdHJpbmc7XG4gICAgU29ydERpcmVjdGlvbjogc3RyaW5nO1xuICAgIElzR3JvdXBlZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIFJlcG9ydEZpZWxkIHtcbiAgICBwdWJsaWMga2V5OiBzdHJpbmc7XG4gICAgcHVibGljIHZhbHVlOiBzdHJpbmc7XG4gICAgcHVibGljIGNhcHRpb246IHN0cmluZztcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgY29sdW1uOiBSZXBvcnRWaWV3Q29sdW1uLCBwdWJsaWMgaXRlbTogYW55KSB7XG4gICAgICAgIGNvbnN0IG5hbWUgPSBjb2x1bW4uTmFtZTtcbiAgICAgICAgdGhpcy5jYXB0aW9uID0gY29sdW1uLkNhcHRpb247XG4gICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLml0ZW1bbmFtZV07XG4gICAgICAgIGlmIChOdW1iZXIoY29sdW1uLkZpZWxkVHlwZUlkKSA9PT0gRmllbGRJbmZvVHlwZUVudW0uRGF0ZUluZm8pIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLml0ZW1bbmFtZSArICckQ2FwdGlvbiddO1xuICAgICAgICB9XG4gICAgICAgIGlmIChOdW1iZXIoY29sdW1uLkZpZWxkVHlwZUlkKSA9PT0gRmllbGRJbmZvVHlwZUVudW0uSWNvbkluZm8pIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLml0ZW1bbmFtZV0uVXJsO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvZ2luUmVzdWx0IHtcbiAgICBkYXRhOiB7IHN0aDogc3RyaW5nIH07XG59XG5leHBvcnQgaW50ZXJmYWNlIENvbXBvbmVudFNldHRpbmdzRGF0YU1vZGVsIGV4dGVuZHMgTWV0YW9iamVjdERhdGFNb2RlbCB7XG4gICAgUGxhY2VIb2xkZXJzPzogUGxhY2VIb2xkZXJEYXRhTW9kZWxbXTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9uZW50RGF0YU1vZGVsIGV4dGVuZHMgTWV0YW9iamVjdERhdGFNb2RlbCB7XG4gICAgU2VsZWN0b3I6IHN0cmluZztcbiAgICBTZXR0aW5nczogQ29tcG9uZW50U2V0dGluZ3NEYXRhTW9kZWw7XG59XG5leHBvcnQgaW50ZXJmYWNlIFBsYWNlSG9sZGVyRGF0YU1vZGVsIGV4dGVuZHMgTWV0YW9iamVjdERhdGFNb2RlbCB7XG4gICAgTmFtZTogc3RyaW5nO1xuICAgIFRpdGxlOiBzdHJpbmc7XG4gICAgSXNQYWdlOiBib29sZWFuO1xuICAgIE9yZGVyTnVtYmVyOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW9kdWxlRGF0YU1vZGVsIGV4dGVuZHMgTWV0YW9iamVjdERhdGFNb2RlbCB7XG4gICAgVGl0bGU6IHN0cmluZztcbiAgICBQbGFjZUhvbGRlcjogUGxhY2VIb2xkZXJEYXRhTW9kZWw7XG4gICAgQ29tcG9uZW50OiBDb21wb25lbnREYXRhTW9kZWw7XG59XG5leHBvcnQgaW50ZXJmYWNlIFBhZ2VMaXN0UmVwb3J0TW9kZWwgZXh0ZW5kcyBNb0ZvclJlcG9ydE1vZGVsIHtcbiAgICBNb0RhdGFMaXN0OiBBcnJheTxQYWdlRGF0YU1vZGVsPjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgTW9kdWxlTGlzdFJlcG9ydE1vZGVsIGV4dGVuZHMgTW9Gb3JSZXBvcnRNb2RlbCB7XG4gICAgTW9EYXRhTGlzdDogQXJyYXk8TW9kdWxlRGF0YU1vZGVsPjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUGFnZURhdGFNb2RlbCBleHRlbmRzIE1ldGFvYmplY3REYXRhTW9kZWwge1xuICAgIENvbXBvbmVudDogQ29tcG9uZW50RGF0YU1vZGVsO1xuICAgIE1vZHVsZUxpc3Q6IE1vZHVsZUxpc3RSZXBvcnRNb2RlbDtcbiAgICBDaGlsZFBhZ2VMaXN0OiBQYWdlTGlzdFJlcG9ydE1vZGVsO1xuICAgIFRpdGxlOiBzdHJpbmc7XG4gICAgUm91dGU6IHN0cmluZztcbiAgICBJc0RlZmF1bHRSb3V0ZTogc3RyaW5nO1xuICAgIElzTG9naW5Sb3V0ZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBvcnRhbERhdGFNb2RlbCBleHRlbmRzIFBhZ2VEYXRhTW9kZWwge1xuICAgIElzQWN0aXZlOiBib29sZWFuO1xuICAgIElzUHdhOiBib29sZWFuO1xuICAgIFBvcnRhbFNldHRpbmdzOiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xufVxuZXhwb3J0IGludGVyZmFjZSBHcm91cFZpc2liaWxpdHkge1xuICAgIGVuYWJsZTogYm9vbGVhbjtcbiAgICB2aXNpYmxlOiBib29sZWFuO1xuICAgIHJlYWRvbmx5OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElIZWFkZXJMYXlvdXQge1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICBUaXRsZTogc3RyaW5nO1xuICAgIFN1YnRpdGxlOiBzdHJpbmc7XG4gICAgQXZhdGFyOiBhbnk7XG4gICAgRmFjZXRMaXN0OiB7IE1vRGF0YUxpc3Q6IE1ldGFvYmplY3REYXRhTW9kZWxbXSB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1lbnVJdGVtIHtcbiAgICBpY29uOiBzdHJpbmc7XG4gICAgdGV4dDogc3RyaW5nO1xuICAgIGl0ZW1JZDogc3RyaW5nO1xuICAgIERhdGE6IGFueTtcbiAgICBDb21tYW5kOiBhbnk7XG4gICAgaGFuZGxlcjogKCkgPT4gdm9pZDtcbiAgICBJc0J1aWx0aW4/OiBib29sZWFuO1xuICAgIG1lbnU/OiB7IGl0ZW1zOiBNZW51SXRlbVtdIH07XG59XG5leHBvcnQgaW50ZXJmYWNlIFBhZ2luZ1NldHRpbmcge1xuICAgIEVuZEluZGV4OiBudW1iZXI7XG4gICAgSGFzUGFnaW5nOiBib29sZWFuO1xuICAgIFBhZ2U6IG51bWJlcjtcbiAgICBQYWdlU2l6ZTogbnVtYmVyO1xuICAgIFJvd0NvdW50OiBudW1iZXI7XG4gICAgU3RhcnRJbmRleDogbnVtYmVyO1xuICAgIFRvdGFsUGFnZXM6IG51bWJlcjtcbiAgICBUb3RhbFJvd3M6IG51bWJlcjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uSW5mb1R5cGUge1xuICAgIE5hbWU6IHN0cmluZztcbiAgICBIaWRkZW46IGJvb2xlYW47XG4gICAgQ2FwdGlvbjogc3RyaW5nO1xuICAgIElzTWFuZGF0b3J5PzogYm9vbGVhbjtcbiAgICBXaWR0aDogbnVtYmVyO1xufVxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hQYW5lbFNldHRpbmdzIGV4dGVuZHMgTWV0YW9iamVjdERhdGFNb2RlbCB7XG4gICAgVGl0bGU6IHN0cmluZztcbiAgICBSZXBvcnRJZDogc3RyaW5nO1xuICAgIElzRGVmYXVsdDogYm9vbGVhbjtcbiAgICBJc1B1YmxpYzogYm9vbGVhbjtcbiAgICBBcHBseUF1dG9tYXRpY2FsbHk6IGJvb2xlYW47XG4gICAgU2VhcmNoTW8/OiBzdHJpbmc7XG4gICAgRmllbGRzU2V0dGluZz86IHN0cmluZztcbn1cbmV4cG9ydCBkZWNsYXJlIHR5cGUgRGV2aWNlU2l6ZSA9ICdkZXNrdG9wJyB8ICdtb2JpbGUnIHwgJ3RhYmxldCc7XG5leHBvcnQgY29uc3QgRGF0ZVJhbmdlcyA9IFtcbiAgICAnRGF0ZVJfTm9uZScsXG4gICAgJ0RhdGVSX1NwZWNpZmljUmFuZ2UnLFxuICAgICdEYXRlUl9Ub2RheScsXG4gICAgJ0RhdGVSX1RoaXNXZWVrJyxcbiAgICAnRGF0ZVJfVGhpc01vbnRoJyxcbiAgICAnRGF0ZVJfVGhpc1llYXInLFxuICAgICdEYXRlUl9EYXlzQmVmb3JlJyxcbiAgICAnRGF0ZVJfUHJldldlZWsnLFxuICAgICdEYXRlUl9QcmV2TW9udGgnLFxuICAgICdEYXRlUl9QcmV2WWVhcicsXG4gICAgJ0RhdGVSX0RheXNBZnRlcicsXG4gICAgJ0RhdGVSX05leHRXZWVrJyxcbiAgICAnRGF0ZVJfTmV4dE1vbnRoJyxcbiAgICAnRGF0ZVJfTmV4dFllYXInXG5dO1xuXG5leHBvcnQgaW50ZXJmYWNlIFVpUmVwb3J0Vmlld0Jhc2Uge1xuICAgIFVpQ29tcG9uZW50OiB7XG4gICAgICAgIENvbXBvbmVudDogYm9vbGVhbjtcbiAgICAgICAgTW9kdWxlOiBzdHJpbmc7XG4gICAgICAgIE1vZHVsZUZpbGVOYW1lOiBzdHJpbmc7XG4gICAgICAgIE5hbWU6IHN0cmluZztcbiAgICAgICAgU2VsZWN0b3I6IHN0cmluZztcbiAgICAgICAgU2V0dGluZ3M6IFVpUmVwb3J0Vmlld0Jhc2VTZXR0aW5nO1xuICAgIH07XG59XG5leHBvcnQgaW50ZXJmYWNlIFVpUmVwb3J0Vmlld0Jhc2VTZXR0aW5nIHtcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgVHlwZTogc3RyaW5nO1xuICAgIEljb246IHN0cmluZztcbiAgICBJc0RlZmF1bHQ6IGJvb2xlYW47XG4gICAgSGlkZGVuOiBib29sZWFuO1xuICAgIEVuYWJsZVNlYXJjaDogYm9vbGVhbjtcbiAgICBEaXNhYmxlUmVzcG9uc2l2ZT86IGJvb2xlYW47XG4gICAgRGlzYWJsZU92ZXJmbG93Q29udGV4dE1lbnU/OiBib29sZWFuO1xuICAgIEhvcml6b250YWxHcm91cEJ5OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExheW91dFNldHRpbmcge1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICBUaXRsZT86IHN0cmluZztcbiAgICB4dHlwZTogc3RyaW5nO1xuICAgIFRleHRWaXNpYmxlPzogYm9vbGVhbjtcbiAgICBpdGVtczogTGF5b3V0U2V0dGluZ1tdO1xuICAgIElzUm9vdD86IGJvb2xlYW47XG4gICAgU2VsZWN0ZWRUYWJQYWdlTmFtZT86IHN0cmluZztcbn1cbmV4cG9ydCBkZWNsYXJlIHR5cGUgQWJicmV2YXRpb25EZXZpY2VTaXplID0gJ3MnIHwgJ20nIHwgJ2wnIHwgJ3hsJztcbmV4cG9ydCBpbnRlcmZhY2UgVHJlZU5vZGVPYmoge1xuICAgIGlzRXhwYW5kOiBib29sZWFuO1xuICAgIHZpc2liaWxpdHk6IGJvb2xlYW47XG4gICAgZXhwYW5kOiAoKSA9PiB2b2lkO1xuICAgIGNvbGxhcHNlOiAoKSA9PiB2b2lkO1xuICAgIERhdGE6IE1ldGFvYmplY3REYXRhTW9kZWw7XG4gICAgY2hpbGRyZW46IFRyZWVOb2RlT2JqW107XG4gICAgaWNvbjogc3RyaW5nO1xuICAgIGtleTogc3RyaW5nO1xuICAgIGxlYWY6IGJvb2xlYW47XG4gICAgdGV4dDogc3RyaW5nO1xuICAgIGxldmVsOiBudW1iZXI7XG4gICAgbG9hZGluZz86IGJvb2xlYW47XG4gICAgaGFzT25lRGVwdGhMZXZlbD86IGJvb2xlYW47XG4gICAgcGFyZW50Tm9kZTogVHJlZU5vZGVPYmogfCBudWxsO1xuICAgIGZpcnN0Q2hpbGQ6IFRyZWVOb2RlT2JqIHwgbnVsbDtcbiAgICBsYXN0Q2hpbGQ6IFRyZWVOb2RlT2JqIHwgbnVsbDtcbiAgICBwcmV2aW91c1NpYmxpbmc6IFRyZWVOb2RlT2JqIHwgbnVsbDtcbiAgICBuZXh0U2libGluZzogVHJlZU5vZGVPYmogfCBudWxsO1xuICAgIGF0dHJpYnV0ZXM6IHsgRGF0YTogTWV0YW9iamVjdERhdGFNb2RlbCB8IG51bGwgfTtcbiAgICBoYXNDaGlsZE5vZGVzOiAoKSA9PiBib29sZWFuO1xuICAgIG5vRHJvcDogYm9vbGVhbjtcbiAgICAkQ2hpbGRyZW4/OiBUcmVlTm9kZU9ialtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbHVtblJlc2l6ZWRBcmdzIHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgd2lkdGg6IG51bWJlcjtcbiAgICB0aERvbTogSFRNTFRhYmxlQ2VsbEVsZW1lbnQ7XG59XG5leHBvcnQgdHlwZSBjb2x1bW5zUmVzaXplZEV2ZW50QXJncyA9IHsgY29sdW1uczogQXJyYXk8UmVwb3J0Vmlld0NvbHVtbj47IHJlc2l6ZWQ6IEFycmF5PENvbHVtblJlc2l6ZWRBcmdzPiB9O1xuZXhwb3J0IHR5cGUgUmVsYXRpb25JdGVtVHlwZSA9IHtcbiAgICBJZDogc3RyaW5nO1xuICAgIFNvdXJjZVR5cGVEZWZJZDogc3RyaW5nO1xuICAgIE9iamVjdEluUmVsYXRpb25OYW1lOiBzdHJpbmc7XG4gICAgR3JvdXBDYXB0aW9uOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIEVqcmF5T2xnbyBleHRlbmRzIE1ldGFvYmplY3REYXRhTW9kZWwge1xuICAgIE1vZHVsZTogc3RyaW5nO1xuICAgIE1vZHVsZUZpbGVOYW1lOiBzdHJpbmc7XG4gICAgTmFtZTogc3RyaW5nO1xuICAgIFNlbGVjdG9yOiBzdHJpbmc7XG4gICAgUGFyYW1ldGVycz86IE1ldGFvYmplY3REYXRhTW9kZWw7XG4gICAgU2V0dGluZ3M/OiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElVcGxvYWRpbmdTdGF0ZSB7XG4gICAga2V5OiBzdHJpbmc7XG4gICAgdXBsb2FkaW5nOiBib29sZWFuO1xuICAgIHN0YXRlOiAnVXBsb2FkaW5nJyB8ICdFcnJvcicgfCAnQ29tcGxldGUnIHwgJ1N0YXJ0JztcbiAgICBwcm9ncmVzczogYW55O1xufVxuZXhwb3J0IHR5cGUgR3JvdXBCeUl0ZW0gPSB7IFtrZXk6IHN0cmluZ106IGFueTsgaWQ6IHN0cmluZzsga2V5OiBzdHJpbmc7IHZhbHVlOiBhbnlbXSB9O1xuZXhwb3J0IHR5cGUgTm90aWZ5T3B0aW9ucyA9IHtcbiAgICBTb3VuZDogYm9vbGVhbjsgLy8gU291bmQgb2Ygbm90aWZpY2F0aW9uLiBTZXQgdGhpcyBmYWxzZSB0byBkaXNhYmxlIHNvdW5kLlxuICAgIEltYWdlOiBzdHJpbmcgfCBudWxsOyAvLyBJbWFnZSBzb3VyY2Ugc3RyaW5nXG4gICAgVGl0bGU6IHN0cmluZyB8IG51bGw7IC8vIFRpdGxlIG9mIG5vdGlmaWNhdGlvbi4gSWYgeW91IGRvIG5vdCBpbmNsdWRlIHRoZSB0aXRsZSBpbiBvcHRpb25zIGl0IHdpbGwgYXV0b21hdGljYWxseSB0YWtlcyBpdHMgdmFsdWVcbiAgICBJY29uOiBib29sZWFuOyAvLyBJY29uIG9mIG5vdGlmaWNhdGlvbi4gTGVhdmUgYXMgaXMgZm9yIGRlZmF1bHQgaWNvbiBvciBzZXQgY3VzdG9tIHN0cmluZ1xuICAgIERlbGF5OiBudW1iZXI7IC8vIEhpZGUgbm90aWZpY2F0aW9uIGFmdGVyIHRoaXMgdGltZSAoaW4gbWlsaXNlY29uZHMpXG4gICAgQ2xvc2FibGU6IGJvb2xlYW47IC8vIE1ha2Ugbm90aWZpY2F0aW9ucyBjbG9zYWJsZVxuICAgIERlbGF5SW5kaWNhdG9yOiBib29sZWFuOyAvLyBTaG93IHRpbWVyIGluZGljYXRvclxuICAgIENsb3NlT25DbGljazogYm9vbGVhbjsgLy8gQ2xvc2Ugbm90aWZpY2F0aW9ucyBieSBjbGlja2luZyBvbiB0aGVtXG4gICAgSXNSdGw6IGJvb2xlYW47XG4gICAgUG9zaXRpb246IHN0cmluZyB8IG9iamVjdDsgLy8gQXZhaWxhYmxlIG9wdGlvbnM6IFwidG9wIGxlZnRcIiwgXCJ0b3AgcmlnaHRcIiwgXCJib3R0b20gbGVmdFwiLCBcImJvdHRvbSByaWdodFwiLCBcImNlbnRlciB0b3BcIiwgXCJjZW50ZXIgYm90dG9tXCJcbiAgICBTb3VuZFBhdGg6IHN0cmluZzsgLy8gVGhlIGZvbGRlciBwYXRoIHdoZXJlIHNvdW5kcyBhcmUgbG9jYXRlZFxuICAgIFNpemU6IHN0cmluZzsgLy8gbm9ybWFsLCBtaW5pLCBsYXJnZVxuICAgIENvbnRpbnVlRGVsYXlPbkluYWN0aXZlVGFiOiBib29sZWFuOyAvLyBDb250aW51ZSBkZWxheSB3aGVuIGJyb3dzZXIgdGFiIGlzIGluYWN0aXZlXG4gICAgV2lkdGg6IG51bWJlcjsgLy8gV2lkdGggb2Ygbm90aWZpY2F0aW9uIGJveFxuICAgIE1lc3NhZ2VIZWlnaHQ6IG51bWJlcjsgLy8gTm90aWZpY2F0aW9uIG1lc3NhZ2UgbWF4aW11bSBoZWlnaHQuXG4gICAgTm90aWZpY2F0aW9uSXRlbT86IE5vdGlmaWNhdGlvbkl0ZW07XG59O1xuZXhwb3J0IHR5cGUgU2hhcmVCdXR0b25zQ2hvaWNlRGVmID0ge1xuICAgIGZvcm1QYW5lbEN0cmxyOiBhbnk7XG4gICAgbW86IE1ldGFvYmplY3REYXRhTW9kZWw7XG4gICAgY2hvaWNlTGlzdDogQ2hvaWNlRGVmW107XG4gICAgYWRkOiBib29sZWFuO1xufTtcbmV4cG9ydCB0eXBlIENob2ljZURlZiA9IHtcbiAgICBBY3Rpdml0eURlZklkOiBzdHJpbmc7XG4gICAgQWN0aXZpdHlSdW5JZDogc3RyaW5nO1xuICAgIENob2ljZURlZklkOiBzdHJpbmc7XG4gICAgQ2hvaWNlTmFtZT86IHN0cmluZztcbiAgICBUaXRsZTogc3RyaW5nO1xuICAgIEljb24/OiBzdHJpbmc7XG4gICAgSGFzQmFyPzogYm9vbGVhbjtcbn07XG5leHBvcnQgdHlwZSBXb3JrZmxvd0V4ZWN1dGVDaG9pY2VTdGF0dXMgPSB7XG4gICAgbG9hZGluZzogYm9vbGVhbjtcbiAgICByZXN1bHQ6IGFueTtcbiAgICBlcnJvcjogYW55O1xuICAgIGNob2ljZT86IENob2ljZURlZjtcbn07XG5leHBvcnQgdHlwZSBOb3RpZmljYXRpb25QYXlsb2FkID0ge1xuICAgIG1zZzogc3RyaW5nO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIGltYWdlOiBzdHJpbmc7XG4gICAgbW87XG4gICAgdWlPcHRpb25zOiBOb3RpZnlPcHRpb25zO1xuICAgIG90aGVyT3B0aW9uczogUmVjb3JkPHN0cmluZywgYW55Pjtcbn07XG5leHBvcnQgdHlwZSBOb3RpZmljYXRpb25BY3Rpb24gPSB7XG4gICAgVGl0bGU6IHN0cmluZztcbiAgICBJZDogc3RyaW5nO1xuICAgIEljb246IHN0cmluZztcbiAgICBTdGF0dXM6IHN0cmluZyB8IGFueTtcbn07XG5leHBvcnQgdHlwZSBOb3RpZmljYXRpb25JdGVtID0gTWV0YW9iamVjdERhdGFNb2RlbCAmIHtcbiAgICBUaXRsZTogc3RyaW5nO1xuICAgIFVucmVhZDogYm9vbGVhbjtcbiAgICBDb250ZW50OiBzdHJpbmc7XG4gICAgJFNhZmVDb250ZW50PzogU2FmZUh0bWw7XG4gICAgUHJpb3JpdHk6IG51bWJlcjtcbiAgICBTdWJqZWN0OiBzdHJpbmc7XG4gICAgVGFnOiBzdHJpbmc7XG4gICAgSWNvbjogc3RyaW5nO1xuICAgIEltYWdlOiBzdHJpbmc7XG4gICAgQ3JlYXRpb25EYXRlOiBEYXRlO1xuICAgIENyZWF0aW9uRGF0ZSRDYXB0aW9uOiBzdHJpbmc7XG4gICAgVWlBY3Rpb25zPzogTm90aWZpY2F0aW9uQWN0aW9uW107XG4gICAgJENob2ljZURlZlN0YXR1cz86IFdvcmtmbG93RXhlY3V0ZUNob2ljZVN0YXR1cztcbn07XG5cbmV4cG9ydCB0eXBlIEV4Tm90aWZpY2F0aW9uUGF5bG9hZCA9IHtcbiAgICBsYW5nOiBzdHJpbmc7XG4gICAgaXNSdGw6IGJvb2xlYW47XG4gICAgbm90aWZpY2F0aW9uSXRlbTogTm90aWZpY2F0aW9uSXRlbTtcbn07XG5leHBvcnQgdHlwZSBGb3JtVmlzaWJpbGl0eVN0YXR1cyA9ICdQZW5kaW5nJyB8ICdWaXNpYmxlJztcbmV4cG9ydCB0eXBlIENhcnRhYmxlVGVtcGxhdGVLZXkgPSB7IFR5cGVEZWZJZDogc3RyaW5nOyBTZXR0aW5nc0lkOiBzdHJpbmcgfTtcbmV4cG9ydCBlbnVtIFNvcnREaXJlY3Rpb24ge1xuICAgIE5PTkUgPSAnbm9uZScsXG4gICAgQVNDID0gJ2FzYycsXG4gICAgREVTQyA9ICdkZXNjJ1xufVxuZXhwb3J0IGludGVyZmFjZSBDb2xsZWN0aW9uU29ydCB7XG4gICAgZmllbGQ6IHN0cmluZyB8IG51bGw7XG4gICAgZGlyZWN0aW9uOiBTb3J0RGlyZWN0aW9uO1xuICAgIGlzTnVtYmVyPzogYm9vbGVhbjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoSW5wdXQge1xuICAgIHRleHQ6IHN0cmluZztcbiAgICBjYXRlZ29yeTogc3RyaW5nIHwgbnVsbDtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ29sbGVjdGlvbkdyb3VwIHtcbiAgICBmaWVsZDogc3RyaW5nO1xuICAgIGRpcmVjdGlvbjogU29ydERpcmVjdGlvbjtcbiAgICBzaG93QXNDb2x1bW46IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29sbGVjdGlvblBhZ2Uge1xuICAgIHBhZ2VTaXplOiBudW1iZXI7XG4gICAgY3VycmVudFBhZ2U6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2xsZWN0aW9uU3RhdGUge1xuICAgIHNvcnRCeTogQ29sbGVjdGlvblNvcnRbXTtcbiAgICBncm91cEJ5OiBDb2xsZWN0aW9uR3JvdXBbXTtcbiAgICBwYWdlOiBDb2xsZWN0aW9uUGFnZTtcbiAgICBzZWFyY2hJbnB1dDogU2VhcmNoSW5wdXQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVTdGF0ZSBleHRlbmRzIENvbGxlY3Rpb25TdGF0ZSB7XG4gICAgY29sdW1uczogc3RyaW5nW107XG4gICAgY29sdW1uS2V5czogc3RyaW5nW107XG4gICAgZnJlZXplVG9Db2x1bW46IHN0cmluZyB8IG51bGw7XG59XG5leHBvcnQgZW51bSBTZWxlY3Rpb25Nb2RlIHtcbiAgICBTSU5HTEUgPSAnc2luZ2xlJyxcbiAgICBNVUxUSVBMRSA9ICdtdWx0aXBsZScsXG4gICAgTk9ORSA9ICdub25lJ1xufVxuZXhwb3J0IGludGVyZmFjZSBUeXBlVWx2TWFpbkN0cmxyIHtcbiAgICBBZGFwdGVyOiBhbnk7XG4gICAgU2V0dGluZzogYW55O1xuICAgIFN5c3RlbTogYW55O1xuICAgIFVsdlBhcmFtczogYW55O1xuICAgIEZlYXR1cmVzOiBhbnk7XG4gICAgVWlPdmVycmlkZTogYW55O1xuICAgIFNlYXJjaFBhbmVsQ3RybHI6IGFueTtcbiAgICBTZWxlY3Rpb25BZGFwdGVyOiBhbnk7XG4gICAgRGF0YUN0cmxyOiBUeXBlVWx2RGF0YUN0cmxyO1xuICAgIENvbW1hbmRCYXJDdHJscjogYW55O1xuICAgIFZpZXdlckFkYXB0ZXI6IGFueTtcbiAgICBQYXJlbnRNbzogYW55O1xuICAgIEZpZWxkQ3RybHI6IGFueTtcbiAgICBpc01hbmRhdG9yeTogYm9vbGVhbjsgLy8gcG9ydGFsIHVzZSBpdC4gY29tcG9uZW50IG1hZGFyZWtcbiAgICAvLy8gUmVsYXRlZCBmaWVsZCBvZiBVbHZcbiAgICAvLyBQYXJlbnRGaWVsZEluZm9DdHJscjogbnVsbCxcbiAgICBJc1ByZXZpZXdTb3VyY2VGaWVsZDogYm9vbGVhbjtcbiAgICAvLy8gSW5kaWNhdGUgd2hldGhlciB0aGlzIFVsdiBpcyB1c2VkIGFzIHJlbGF0aW9uIGZpZWxkIHRoYXQgaXMgUHJldmlld1NvdXJjZSBmb3IgYSBzdWJmb3JtXG4gICAgU2hvd09rQ2FuY2VsQnV0dG9uczogYm9vbGVhbjtcbiAgICBfaXNFbmFibGU6IGJvb2xlYW47XG4gICAgX2lzUmVhZE9ubHk6IGJvb2xlYW47XG4gICAgX2lzVmlzaWJsZTogYm9vbGVhbjtcbiAgICBGb290dGVyQnV0dG9uczogYm9vbGVhbjtcbiAgICBSZWZyZXNoUm93c0J5TW9zTm9TZWxlY3Rpb25DaGFuZ2UoXG4gICAgICAgIGVkaWRlZE1vczogTWV0YW9iamVjdERhdGFNb2RlbFtdLFxuICAgICAgICBhZGRlZE1vczogTWV0YW9iamVjdERhdGFNb2RlbFtdLFxuICAgICAgICBkZWxldGVkTW9zOiBNZXRhb2JqZWN0RGF0YU1vZGVsW11cbiAgICApOiB2b2lkO1xuICAgIFJlZnJlc2hSb3dzQnlNb3MoXG4gICAgICAgIGVkaWRlZE1vczogTWV0YW9iamVjdERhdGFNb2RlbFtdLFxuICAgICAgICBhZGRlZE1vczogTWV0YW9iamVjdERhdGFNb2RlbFtdLFxuICAgICAgICBkZWxldGVkTW9zOiBNZXRhb2JqZWN0RGF0YU1vZGVsW11cbiAgICApOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVVbHZEYXRhQ3RybHIge1xuICAgIEdldEVkaXRGb3JtUGFyYW1zKG1vLCBpc1JlYWRPbmx5LCBpc05ldywgaW5oZXJpdGFuY2VDaGlsZFR5cGVEZWYsIGRvUmV0dXJuKTogUmVjb3JkPHN0cmluZywgYW55Pjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRm9ybUNvbXBvbmVudFBhcmFtcyB7XG4gICAgZm9ybVNldHRpbmc/OiBGb3JtU2V0dGluZztcbiAgICBtb0lkOiBzdHJpbmc7XG4gICAgdHlwZURlZklkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgcmVwb3J0SWQ/OiBzdHJpbmc7XG4gICAgdmlld0lkPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIFZpZXdOYW1lPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGluRGlhbG9nPzogYm9vbGVhbjtcbiAgICBpc1NpbXBsZT86IGJvb2xlYW47XG4gICAgbG9hZEFjdGl2aXR5Vmlldz86IGJvb2xlYW47XG59XG5leHBvcnQgaW50ZXJmYWNlIEJydWxlQWN0aW9uTWVzc2FnZSB7XG4gICAgTWVzc2FnZVR5cGU6IG51bWJlcjtcbiAgICBFc2NhcGVDaGFyYWN0ZXJzOiBib29sZWFuO1xuICAgIE1lc3NhZ2VFeHByZXNzaW9uOiBzdHJpbmc7XG4gICAgTWVzc2FnZUV4cHJlc3Npb25IdG1sOiBTYWZlSHRtbDtcbn1cbmV4cG9ydCB0eXBlIENvbHVtblN1bW1hcnlUeXBlID0ge1xuICAgIG1vQXJyOiBNZXRhb2JqZWN0RGF0YU1vZGVsW107XG4gICAgY29sdW1uOiBSZXBvcnRWaWV3Q29sdW1uO1xuICAgIGdyb3VwTmFtZTogc3RyaW5nO1xuICAgIGdyb3VwTGV2ZWw6IG51bWJlcjtcbiAgICBzdW1tYXJ5Rm46ICh2YWwpID0+IHZvaWQ7XG59O1xuIl19
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLXdpdGgtZHluYW1pYy1jb21wb25lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etbm92aW4tcmF5LWNvcmUvc3JjL2xpYi9hYnN0cmFjdC1jbGFzc2VzL21vZHVsZS13aXRoLWR5bmFtaWMtY29tcG9uZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuZXhwb3J0IHR5cGUgTW9kdWxlV2l0aER5bmFtaWNDb21wb25lbnRzID0gVHlwZTxhbnk+ICYge1xyXG4gICAgZHluYW1pY0NvbXBvbmVudHNNYXA6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xyXG59O1xyXG4iXX0=
|
|
@@ -1,200 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
-
import { FieldBaseComponent } from './field-base';
|
|
3
|
-
import { BarsaApi } from './barsa-api';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class NumberBaseComponent extends FieldBaseComponent {
|
|
6
|
-
get decimalPrecision() {
|
|
7
|
-
const decimalPrecision = Number(this.Setting.DecimalPrecision);
|
|
8
|
-
if (isNaN(decimalPrecision)) {
|
|
9
|
-
return 0;
|
|
10
|
-
}
|
|
11
|
-
return decimalPrecision;
|
|
12
|
-
}
|
|
13
|
-
ngOnInit() {
|
|
14
|
-
super.ngOnInit();
|
|
15
|
-
this._updateBySetting();
|
|
16
|
-
}
|
|
17
|
-
ngOnDestroy() {
|
|
18
|
-
this._clearInterval();
|
|
19
|
-
super.ngOnDestroy();
|
|
20
|
-
}
|
|
21
|
-
onKeyDown(e) {
|
|
22
|
-
const isCharacter = this._isCharacter(e);
|
|
23
|
-
if (!isCharacter) {
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
const isValid = new RegExp('^[0-9,.,-]*$').test(e.currentTarget.value + e.key);
|
|
27
|
-
if (!isValid || e.key === '.') {
|
|
28
|
-
if (e.key === '.' && this.inputElement && this.decimalPrecision > 0) {
|
|
29
|
-
const cursorPosition = this.inputElement.value.indexOf('.');
|
|
30
|
-
this._setCursorPosition(cursorPosition + 1);
|
|
31
|
-
}
|
|
32
|
-
e.preventDefault();
|
|
33
|
-
e.stopPropagation();
|
|
34
|
-
}
|
|
35
|
-
else if (isValid && this.inputElement) {
|
|
36
|
-
// در صورتی که عدد قبل از منفی قرار گیرد
|
|
37
|
-
const cursorPosition = this.inputElement.value.indexOf('-');
|
|
38
|
-
if (cursorPosition > -1 && this.inputElement.selectionStart === 0 && this.inputElement.selectionEnd === 0) {
|
|
39
|
-
e.preventDefault();
|
|
40
|
-
e.stopPropagation();
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
if (e.key === '-' && this.inputElement) {
|
|
44
|
-
const cursorPosition = this.inputElement.value.indexOf('-');
|
|
45
|
-
if (cursorPosition < 0 && this.inputElement.selectionStart === 0) {
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
this._setCursorPosition(cursorPosition + 1);
|
|
49
|
-
e.preventDefault();
|
|
50
|
-
e.stopPropagation();
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
onValueChange(e) {
|
|
54
|
-
const text = e.currentTarget?.value || '';
|
|
55
|
-
this.reFormatValue(text, e);
|
|
56
|
-
}
|
|
57
|
-
_updateBySetting() {
|
|
58
|
-
if (this.inputElement) {
|
|
59
|
-
const formated = this._getFormated(this.value).toString();
|
|
60
|
-
this.inputElement.value = formated;
|
|
61
|
-
}
|
|
62
|
-
this.hasMask =
|
|
63
|
-
BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.ShowThousandSeperator', false) ||
|
|
64
|
-
BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.DecimalPrecision', 0) > 0;
|
|
65
|
-
}
|
|
66
|
-
_configChaned(options) {
|
|
67
|
-
// implemented by child components
|
|
68
|
-
this._updateBySetting();
|
|
69
|
-
this._cdr.detectChanges();
|
|
70
|
-
}
|
|
71
|
-
_setValue(value) {
|
|
72
|
-
super._setValue(value);
|
|
73
|
-
this.reFormatValue(this.value, { target: this.inputElement });
|
|
74
|
-
}
|
|
75
|
-
_clearInterval() {
|
|
76
|
-
if (this.tickRef) {
|
|
77
|
-
clearInterval(this.tickRef);
|
|
78
|
-
this.tickRef = null;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
_isCharacter(evt) {
|
|
82
|
-
if (typeof evt.which === 'undefined') {
|
|
83
|
-
return true;
|
|
84
|
-
}
|
|
85
|
-
else if (typeof evt.which === 'number' && evt.which > 0) {
|
|
86
|
-
return !evt.ctrlKey && !evt.metaKey && !evt.altKey && evt.which !== 8 && evt.key.length === 1;
|
|
87
|
-
}
|
|
88
|
-
return false;
|
|
89
|
-
}
|
|
90
|
-
_getFormated(val) {
|
|
91
|
-
return this._numeralPipe.transform(val, this.decimalPrecision, this.Setting.ShowThousandSeperator).toString();
|
|
92
|
-
}
|
|
93
|
-
_setCursorPosition(cursorPosition) {
|
|
94
|
-
if (this.inputElement) {
|
|
95
|
-
if (cursorPosition > this.inputElement.value.length && this.decimalPrecision) {
|
|
96
|
-
cursorPosition = this.inputElement.value.length;
|
|
97
|
-
}
|
|
98
|
-
this.inputElement.setSelectionRange(cursorPosition, cursorPosition);
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
reFormatValue(text, e) {
|
|
102
|
-
let newVal;
|
|
103
|
-
if (typeof text === 'number') {
|
|
104
|
-
if (text === this.value) {
|
|
105
|
-
this._syncInputElementValue(this.value, e);
|
|
106
|
-
return;
|
|
107
|
-
}
|
|
108
|
-
text = text.toString();
|
|
109
|
-
}
|
|
110
|
-
if (typeof text === 'undefined' && typeof this.value === 'undefined') {
|
|
111
|
-
return;
|
|
112
|
-
}
|
|
113
|
-
const isMinus = text?.startsWith('-');
|
|
114
|
-
text = isMinus ? text?.substring(1, text.length) : text;
|
|
115
|
-
if (text) {
|
|
116
|
-
let indexofDot = text.indexOf('.');
|
|
117
|
-
const selectionStart = this.inputElement?.selectionStart;
|
|
118
|
-
const decimalPersicion = this.decimalPrecision;
|
|
119
|
-
if (decimalPersicion) {
|
|
120
|
-
const t = text.length - (indexofDot + 1);
|
|
121
|
-
if (t > decimalPersicion) {
|
|
122
|
-
const diff = t - decimalPersicion;
|
|
123
|
-
if (selectionStart && selectionStart < text.length) {
|
|
124
|
-
// text = text.substring(0, text.length - diff);
|
|
125
|
-
text =
|
|
126
|
-
text.substring(0, selectionStart) +
|
|
127
|
-
text.substring(selectionStart + 1, selectionStart + 1 + text.length - diff);
|
|
128
|
-
}
|
|
129
|
-
else {
|
|
130
|
-
text = text.substring(0, text.length - 1);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
let formated = this._getFormated(text).toString();
|
|
135
|
-
newVal = this._numeralPipe.getValue(formated);
|
|
136
|
-
let indexOfDotFormated = formated.indexOf('.');
|
|
137
|
-
if (decimalPersicion === 0) {
|
|
138
|
-
indexofDot = text.length;
|
|
139
|
-
indexOfDotFormated = formated.length;
|
|
140
|
-
}
|
|
141
|
-
if (this.hasMask) {
|
|
142
|
-
let cursorPosition = this.inputElement?.selectionStart;
|
|
143
|
-
let diff = 0;
|
|
144
|
-
if (indexofDot < 0 && decimalPersicion > 0) {
|
|
145
|
-
formated = this._getFormated(text);
|
|
146
|
-
newVal = this._numeralPipe.getValue(formated);
|
|
147
|
-
}
|
|
148
|
-
else if (cursorPosition != null && cursorPosition <= indexofDot) {
|
|
149
|
-
diff = indexOfDotFormated - indexofDot;
|
|
150
|
-
cursorPosition += diff;
|
|
151
|
-
}
|
|
152
|
-
if (this.inputElement && this.inputElement.value !== formated) {
|
|
153
|
-
this.inputElement.value = this._getMinusValue(isMinus, formated);
|
|
154
|
-
}
|
|
155
|
-
if (e.target.value !== formated) {
|
|
156
|
-
e.target.value = this._getMinusValue(isMinus, formated);
|
|
157
|
-
}
|
|
158
|
-
this._setCursorPosition(cursorPosition);
|
|
159
|
-
}
|
|
160
|
-
else {
|
|
161
|
-
if (this.inputElement) {
|
|
162
|
-
this.inputElement.value = this._getMinusValue(isMinus, newVal);
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
else if (this.inputElement) {
|
|
167
|
-
this.inputElement.value = this._getMinusValue(isMinus, '');
|
|
168
|
-
}
|
|
169
|
-
if (newVal && +newVal === this.value) {
|
|
170
|
-
return;
|
|
171
|
-
}
|
|
172
|
-
this.value = this._getMinusValue(isMinus, newVal);
|
|
173
|
-
this.formmatedValue.emit(this.inputElement?.value);
|
|
174
|
-
this.valueChange.emit(this.value);
|
|
175
|
-
}
|
|
176
|
-
_getMinusValue(isMinus, newVal) {
|
|
177
|
-
let val2 = typeof newVal == 'undefined' ? '' : newVal;
|
|
178
|
-
val2 = isMinus ? `-${val2}` : val2;
|
|
179
|
-
return val2;
|
|
180
|
-
}
|
|
181
|
-
_syncInputElementValue(value, e) {
|
|
182
|
-
const elValue = this._numeralPipe.getValue(e.target.value);
|
|
183
|
-
if (value === +elValue) {
|
|
184
|
-
return;
|
|
185
|
-
}
|
|
186
|
-
const formated = this._getFormated(value);
|
|
187
|
-
e.target.value = formated;
|
|
188
|
-
}
|
|
189
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NumberBaseComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
190
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NumberBaseComponent, selector: "bnrc-number-base", usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
191
|
-
}
|
|
192
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NumberBaseComponent, decorators: [{
|
|
193
|
-
type: Component,
|
|
194
|
-
args: [{
|
|
195
|
-
selector: 'bnrc-number-base',
|
|
196
|
-
template: '',
|
|
197
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
|
198
|
-
}]
|
|
199
|
-
}] });
|
|
200
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL2Fic3RyYWN0LWNsYXNzZXMvbnVtYmVyLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFdEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2xELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBTXZDLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxrQkFBa0I7SUFJdkQsSUFBSSxnQkFBZ0I7UUFDaEIsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQy9ELElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztZQUMxQixPQUFPLENBQUMsQ0FBQztRQUNiLENBQUM7UUFDRCxPQUFPLGdCQUFnQixDQUFDO0lBQzVCLENBQUM7SUFDRCxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWpCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBQ0QsU0FBUyxDQUFDLENBQUM7UUFDUCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNmLE9BQU87UUFDWCxDQUFDO1FBQ0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMs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QUFDO1lBQ3JCLE9BQU87UUFDWCxDQUFDO1FBQ0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUM7SUFDOUIsQ0FBQzsrR0E5TFEsbUJBQW1CO21HQUFuQixtQkFBbUIsK0VBSGxCLEVBQUU7OzRGQUdILG1CQUFtQjtrQkFML0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixRQUFRLEVBQUUsRUFBRTtvQkFDWixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBGaWVsZEJhc2VDb21wb25lbnQgfSBmcm9tICcuL2ZpZWxkLWJhc2UnO1xuaW1wb3J0IHsgQmFyc2FBcGkgfSBmcm9tICcuL2JhcnNhLWFwaSc7XG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JucmMtbnVtYmVyLWJhc2UnLFxuICAgIHRlbXBsYXRlOiAnJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBOdW1iZXJCYXNlQ29tcG9uZW50IGV4dGVuZHMgRmllbGRCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIGhhc01hc2s6IGJvb2xlYW47XG4gICAgdGlja1JlZjogYW55O1xuICAgIHByb3RlY3RlZCBpbnB1dEVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsIHwgdW5kZWZpbmVkO1xuICAgIGdldCBkZWNpbWFsUHJlY2lzaW9uKCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGRlY2ltYWxQcmVjaXNpb24gPSBOdW1iZXIodGhpcy5TZXR0aW5nLkRlY2ltYWxQcmVjaXNpb24pO1xuICAgICAgICBpZiAoaXNOYU4oZGVjaW1hbFByZWNpc2lvbikpIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkZWNpbWFsUHJlY2lzaW9uO1xuICAgIH1cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgICAgICB0aGlzLl91cGRhdGVCeVNldHRpbmcoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2xlYXJJbnRlcnZhbCgpO1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cbiAgICBvbktleURvd24oZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBpc0NoYXJhY3RlciA9IHRoaXMuX2lzQ2hhcmFjdGVyKGUpO1xuICAgICAgICBpZiAoIWlzQ2hhcmFjdGVyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaXNWYWxpZCA9IG5ldyBSZWdFeHAoJ15bMC05LC4sLV0qJCcpLnRlc3QoZS5jdXJyZW50VGFyZ2V0LnZhbHVlICsgZS5rZXkpO1xuICAgICAgICBpZiAoIWlzVmFsaWQgfHwgZS5rZXkgPT09ICcuJykge1xuICAgICAgICAgICAgaWYgKGUua2V5ID09PSAnLicgJiYgdGhpcy5pbnB1dEVsZW1lbnQgJiYgdGhpcy5kZWNpbWFsUHJlY2lzaW9uID4gMCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGN1cnNvclBvc2l0aW9uID0gdGhpcy5pbnB1dEVsZW1lbnQudmFsdWUuaW5kZXhPZignLicpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3NldEN1cnNvclBvc2l0aW9uKGN1cnNvclBvc2l0aW9uICsgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9IGVsc2UgaWYgKGlzVmFsaWQgJiYgdGhpcy5pbnB1dEVsZW1lbnQpIHtcbiAgICAgICAgICAgIC8vINiv2LEg2LXZiNix2KrbjCDaqdmHINi52K/YryDZgtio2YQg2KfYsiDZhdmG2YHbjCDZgtix2KfYsSDar9uM2LHYr1xuICAgICAgICAgICAgY29uc3QgY3Vyc29yUG9zaXRpb24gPSB0aGlzLmlucHV0RWxlbWVudC52YWx1ZS5pbmRleE9mKCctJyk7XG4gICAgICAgICAgICBpZiAoY3Vyc29yUG9zaXRpb24gPiAtMSAmJiB0aGlzLmlucHV0RWxlbWVudC5zZWxlY3Rpb25TdGFydCA9PT0gMCAmJiB0aGlzLmlucHV0RWxlbWVudC5zZWxlY3Rpb25FbmQgPT09IDApIHtcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoZS5rZXkgPT09ICctJyAmJiB0aGlzLmlucHV0RWxlbWVudCkge1xuICAgICAgICAgICAgY29uc3QgY3Vyc29yUG9zaXRpb24gPSB0aGlzLmlucHV0RWxlbWVudC52YWx1ZS5pbmRleE9mKCctJyk7XG4gICAgICAgICAgICBpZiAoY3Vyc29yUG9zaXRpb24gPCAwICYmIHRoaXMuaW5wdXRFbGVtZW50LnNlbGVjdGlvblN0YXJ0ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fc2V0Q3Vyc29yUG9zaXRpb24oY3Vyc29yUG9zaXRpb24gKyAxKTtcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgb25WYWx1ZUNoYW5nZShlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRleHQ6IHN0cmluZyA9IGUuY3VycmVudFRhcmdldD8udmFsdWUgfHwgJyc7XG4gICAgICAgIHRoaXMucmVGb3JtYXRWYWx1ZSh0ZXh0LCBlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX3VwZGF0ZUJ5U2V0dGluZygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaW5wdXRFbGVtZW50KSB7XG4gICAgICAgICAgICBjb25zdCBmb3JtYXRlZCA9IHRoaXMuX2dldEZvcm1hdGVkKHRoaXMudmFsdWUpLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICB0aGlzLmlucHV0RWxlbWVudC52YWx1ZSA9IGZvcm1hdGVkO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaGFzTWFzayA9XG4gICAgICAgICAgICBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZSh0aGlzLmNvbnRleHQsICdTZXR0aW5nLlNob3dUaG91c2FuZFNlcGVyYXRvcicsIGZhbHNlKSB8fFxuICAgICAgICAgICAgQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUodGhpcy5jb250ZXh0LCAnU2V0dGluZy5EZWNpbWFsUHJlY2lzaW9uJywgMCkgPiAwO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX2NvbmZpZ0NoYW5lZChvcHRpb25zKTogdm9pZCB7XG4gICAgICAgIC8vIGltcGxlbWVudGVkIGJ5IGNoaWxkIGNvbXBvbmVudHNcbiAgICAgICAgdGhpcy5fdXBkYXRlQnlTZXR0aW5nKCk7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfc2V0VmFsdWUodmFsdWUpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuX3NldFZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5yZUZvcm1hdFZhbHVlKHRoaXMudmFsdWUsIHsgdGFyZ2V0OiB0aGlzLmlucHV0RWxlbWVudCB9KTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9jbGVhckludGVydmFsKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy50aWNrUmVmKSB7XG4gICAgICAgICAgICBjbGVhckludGVydmFsKHRoaXMudGlja1JlZik7XG4gICAgICAgICAgICB0aGlzLnRpY2tSZWYgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuICAgIHByb3RlY3RlZCBfaXNDaGFyYWN0ZXIoZXZ0KTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0eXBlb2YgZXZ0LndoaWNoID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGV2dC53aGljaCA9PT0gJ251bWJlcicgJiYgZXZ0LndoaWNoID4gMCkge1xuICAgICAgICAgICAgcmV0dXJuICFldnQuY3RybEtleSAmJiAhZXZ0Lm1ldGFLZXkgJiYgIWV2dC5hbHRLZXkgJiYgZXZ0LndoaWNoICE9PSA4ICYmIGV2dC5rZXkubGVuZ3RoID09PSAxO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX2dldEZvcm1hdGVkKHZhbCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9udW1lcmFsUGlwZS50cmFuc2Zvcm0odmFsLCB0aGlzLmRlY2ltYWxQcmVjaXNpb24sIHRoaXMuU2V0dGluZy5TaG93VGhvdXNhbmRTZXBlcmF0b3IpLnRvU3RyaW5nKCk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfc2V0Q3Vyc29yUG9zaXRpb24oY3Vyc29yUG9zaXRpb24pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaW5wdXRFbGVtZW50KSB7XG4gICAgICAgICAgICBpZiAoY3Vyc29yUG9zaXRpb24gPiB0aGlzLmlucHV0RWxlbWVudC52YWx1ZS5sZW5ndGggJiYgdGhpcy5kZWNpbWFsUHJlY2lzaW9uKSB7XG4gICAgICAgICAgICAgICAgY3Vyc29yUG9zaXRpb24gPSB0aGlzLmlucHV0RWxlbWVudC52YWx1ZS5sZW5ndGg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuaW5wdXRFbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKGN1cnNvclBvc2l0aW9uLCBjdXJzb3JQb3NpdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHJpdmF0ZSByZUZvcm1hdFZhbHVlKHRleHQ6IHN0cmluZyB8IG51bWJlciwgZTogYW55KTogdm9pZCB7XG4gICAgICAgIGxldCBuZXdWYWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKHR5cGVvZiB0ZXh0ID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgaWYgKHRleHQgPT09IHRoaXMudmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zeW5jSW5wdXRFbGVtZW50VmFsdWUodGhpcy52YWx1ZSwgZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGV4dCA9IHRleHQudG9TdHJpbmcoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHRleHQgPT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiB0aGlzLnZhbHVlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGlzTWludXMgPSB0ZXh0Py5zdGFydHNXaXRoKCctJyk7XG4gICAgICAgIHRleHQgPSBpc01pbnVzID8gdGV4dD8uc3Vic3RyaW5nKDEsIHRleHQubGVuZ3RoKSA6IHRleHQ7XG5cbiAgICAgICAgaWYgKHRleHQpIHtcbiAgICAgICAgICAgIGxldCBpbmRleG9mRG90ID0gdGV4dC5pbmRleE9mKCcuJyk7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3Rpb25TdGFydCA9IHRoaXMuaW5wdXRFbGVtZW50Py5zZWxlY3Rpb25TdGFydDtcblxuICAgICAgICAgICAgY29uc3QgZGVjaW1hbFBlcnNpY2lvbiA9IHRoaXMuZGVjaW1hbFByZWNpc2lvbjtcbiAgICAgICAgICAgIGlmIChkZWNpbWFsUGVyc2ljaW9uKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdCA9IHRleHQubGVuZ3RoIC0gKGluZGV4b2ZEb3QgKyAxKTtcbiAgICAgICAgICAgICAgICBpZiAodCA+IGRlY2ltYWxQZXJzaWNpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGlmZiA9IHQgLSBkZWNpbWFsUGVyc2ljaW9uO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2VsZWN0aW9uU3RhcnQgJiYgc2VsZWN0aW9uU3RhcnQgPCB0ZXh0Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGV4dCA9IHRleHQuc3Vic3RyaW5nKDAsIHRleHQubGVuZ3RoIC0gZGlmZik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LnN1YnN0cmluZygwLCBzZWxlY3Rpb25TdGFydCkgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQuc3Vic3RyaW5nKHNlbGVjdGlvblN0YXJ0ICsgMSwgc2VsZWN0aW9uU3RhcnQgKyAxICsgdGV4dC5sZW5ndGggLSBkaWZmKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQgPSB0ZXh0LnN1YnN0cmluZygwLCB0ZXh0Lmxlbmd0aCAtIDEpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IGZvcm1hdGVkOiBzdHJpbmcgPSB0aGlzLl9nZXRGb3JtYXRlZCh0ZXh0KS50b1N0cmluZygpO1xuICAgICAgICAgICAgbmV3VmFsID0gdGhpcy5fbnVtZXJhbFBpcGUuZ2V0VmFsdWUoZm9ybWF0ZWQpO1xuXG4gICAgICAgICAgICBsZXQgaW5kZXhPZkRvdEZvcm1hdGVkID0gZm9ybWF0ZWQuaW5kZXhPZignLicpO1xuXG4gICAgICAgICAgICBpZiAoZGVjaW1hbFBlcnNpY2lvbiA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGluZGV4b2ZEb3QgPSB0ZXh0Lmxlbmd0aDtcbiAgICAgICAgICAgICAgICBpbmRleE9mRG90Rm9ybWF0ZWQgPSBmb3JtYXRlZC5sZW5ndGg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5oYXNNYXNrKSB7XG4gICAgICAgICAgICAgICAgbGV0IGN1cnNvclBvc2l0aW9uID0gdGhpcy5pbnB1dEVsZW1lbnQ/LnNlbGVjdGlvblN0YXJ0O1xuICAgICAgICAgICAgICAgIGxldCBkaWZmID0gMDtcbiAgICAgICAgICAgICAgICBpZiAoaW5kZXhvZkRvdCA8IDAgJiYgZGVjaW1hbFBlcnNpY2lvbiA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgZm9ybWF0ZWQgPSB0aGlzLl9nZXRGb3JtYXRlZCh0ZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgbmV3VmFsID0gdGhpcy5fbnVtZXJhbFBpcGUuZ2V0VmFsdWUoZm9ybWF0ZWQpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY3Vyc29yUG9zaXRpb24gIT0gbnVsbCAmJiBjdXJzb3JQb3NpdGlvbiA8PSBpbmRleG9mRG90KSB7XG4gICAgICAgICAgICAgICAgICAgIGRpZmYgPSBpbmRleE9mRG90Rm9ybWF0ZWQgLSBpbmRleG9mRG90O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3JQb3NpdGlvbiArPSBkaWZmO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pbnB1dEVsZW1lbnQgJiYgdGhpcy5pbnB1dEVsZW1lbnQudmFsdWUgIT09IGZvcm1hdGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRFbGVtZW50LnZhbHVlID0gdGhpcy5fZ2V0TWludXNWYWx1ZShpc01pbnVzLCBmb3JtYXRlZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChlLnRhcmdldC52YWx1ZSAhPT0gZm9ybWF0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgZS50YXJnZXQudmFsdWUgPSB0aGlzLl9nZXRNaW51c1ZhbHVlKGlzTWludXMsIGZvcm1hdGVkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5fc2V0Q3Vyc29yUG9zaXRpb24oY3Vyc29yUG9zaXRpb24pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pbnB1dEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQudmFsdWUgPSB0aGlzLl9nZXRNaW51c1ZhbHVlKGlzTWludXMsIG5ld1ZhbCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaW5wdXRFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLmlucHV0RWxlbWVudC52YWx1ZSA9IHRoaXMuX2dldE1pbnVzVmFsdWUoaXNNaW51cywgJycpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChuZXdWYWwgJiYgK25ld1ZhbCA9PT0gdGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuX2dldE1pbnVzVmFsdWUoaXNNaW51cywgbmV3VmFsKTtcbiAgICAgICAgdGhpcy5mb3JtbWF0ZWRWYWx1ZS5lbWl0KHRoaXMuaW5wdXRFbGVtZW50Py52YWx1ZSk7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9nZXRNaW51c1ZhbHVlKGlzTWludXM6IGJvb2xlYW4sIG5ld1ZhbDogc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IHZhbDIgPSB0eXBlb2YgbmV3VmFsID09ICd1bmRlZmluZWQnID8gJycgOiBuZXdWYWw7XG4gICAgICAgIHZhbDIgPSBpc01pbnVzID8gYC0ke3ZhbDJ9YCA6IHZhbDI7XG4gICAgICAgIHJldHVybiB2YWwyO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3N5bmNJbnB1dEVsZW1lbnRWYWx1ZSh2YWx1ZTogbnVtYmVyLCBlOiB7IHRhcmdldDogYW55IH0pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZWxWYWx1ZSA9IHRoaXMuX251bWVyYWxQaXBlLmdldFZhbHVlKGUudGFyZ2V0LnZhbHVlKTtcbiAgICAgICAgaWYgKHZhbHVlID09PSArZWxWYWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZvcm1hdGVkID0gdGhpcy5fZ2V0Rm9ybWF0ZWQodmFsdWUpO1xuICAgICAgICBlLnRhcmdldC52YWx1ZSA9IGZvcm1hdGVkO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
import { Component, ChangeDetectionStrategy } from '@angular/core';
|
|
2
|
-
import { from } from 'rxjs';
|
|
3
|
-
import { takeUntil, map, filter, tap, concatMap } from 'rxjs/operators';
|
|
4
|
-
import { BarsaApi } from './barsa-api';
|
|
5
|
-
import { ContainerComponent } from '../container.component';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
export class PageBaseComponent extends ContainerComponent {
|
|
8
|
-
constructor() {
|
|
9
|
-
super(...arguments);
|
|
10
|
-
this.hasRoute = true;
|
|
11
|
-
this.fullscreen = true;
|
|
12
|
-
}
|
|
13
|
-
ngAfterViewInit() {
|
|
14
|
-
super.ngAfterViewInit();
|
|
15
|
-
this.addModulesToDom();
|
|
16
|
-
}
|
|
17
|
-
addModulesToDom() {
|
|
18
|
-
this.getData$()
|
|
19
|
-
.pipe(filter((c) => c != null))
|
|
20
|
-
.subscribe((pageData) => {
|
|
21
|
-
this.renderPlaceHolders(pageData);
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
getData$() {
|
|
25
|
-
if (this.isRoot) {
|
|
26
|
-
return this._portalService.portalData$;
|
|
27
|
-
}
|
|
28
|
-
return this._activatedRoute.data.pipe(map((data) => data.pageData), takeUntil(this._onDestroy$));
|
|
29
|
-
}
|
|
30
|
-
renderPlaceHolders(pageData) {
|
|
31
|
-
this.pageData = pageData;
|
|
32
|
-
const modules = this.getModules(pageData);
|
|
33
|
-
this.addModulesToPage(modules);
|
|
34
|
-
}
|
|
35
|
-
preparePlaceholder(placeHolderElement, placeHolderName, pageData) {
|
|
36
|
-
// remove old attached component . when we use rxjs for update data
|
|
37
|
-
const hasChild = placeHolderElement.hasChildNodes();
|
|
38
|
-
if (hasChild) {
|
|
39
|
-
placeHolderElement.removeChild(placeHolderElement.childNodes[0]);
|
|
40
|
-
}
|
|
41
|
-
const placeHolders = this.getPlaceHolders(pageData);
|
|
42
|
-
const placeHolder = placeHolders.find((c) => c.Name === placeHolderName);
|
|
43
|
-
if (placeHolder != null) {
|
|
44
|
-
const modules = this.getModules(pageData);
|
|
45
|
-
const module = modules.find((c) => c.PlaceHolder.Id === placeHolder.Id);
|
|
46
|
-
if (module) {
|
|
47
|
-
const controlUi = this.getModuleControlUi(module.Component);
|
|
48
|
-
placeHolderElement.appendChild(controlUi);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
console.error('placeholder not found ' + placeHolderName);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
getModuleControlUi(component) {
|
|
56
|
-
const controlUi = document.createElement(component.Selector);
|
|
57
|
-
controlUi.settings = component.Settings;
|
|
58
|
-
controlUi.activatedRoute = this._activatedRoute;
|
|
59
|
-
return controlUi;
|
|
60
|
-
}
|
|
61
|
-
addModulesToPage(modules) {
|
|
62
|
-
modules = modules.sort((a, b) => (Number(a.OrderNumber) > Number(b.OrderNumber) ? 1 : -1));
|
|
63
|
-
from(modules)
|
|
64
|
-
.pipe(takeUntil(this._onDestroy$), concatMap((module) => this.getComponentFactory(module.Component).pipe(tap((controlUi) => {
|
|
65
|
-
controlUi.instance.settings = module.Component.Settings;
|
|
66
|
-
controlUi.instance.activatedRoute = this._activatedRoute;
|
|
67
|
-
if (this.containerRef) {
|
|
68
|
-
this.containerRef.insert(controlUi.hostView);
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
this._vcr.insert(controlUi.hostView);
|
|
72
|
-
}
|
|
73
|
-
}))))
|
|
74
|
-
.subscribe(() => this._cdr.detectChanges());
|
|
75
|
-
}
|
|
76
|
-
getComponentFactory(uiComponent) {
|
|
77
|
-
return this._portalService.getComponent(uiComponent.Module, uiComponent.ModuleFileName, uiComponent.Name, uiComponent.Selector, this._injector);
|
|
78
|
-
}
|
|
79
|
-
getPlaceHolders(pageData) {
|
|
80
|
-
const placeholders = BarsaApi.Common.Util.TryGetValue(pageData, 'Component.Settings.PlaceHolders.MoDataList', []);
|
|
81
|
-
return placeholders;
|
|
82
|
-
}
|
|
83
|
-
getModules(pageData) {
|
|
84
|
-
return BarsaApi.Common.Util.TryGetValue(pageData, 'ModuleList.MoDataList', []);
|
|
85
|
-
}
|
|
86
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PageBaseComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
87
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PageBaseComponent, selector: "bnrc-page-base", usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
88
|
-
}
|
|
89
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PageBaseComponent, decorators: [{
|
|
90
|
-
type: Component,
|
|
91
|
-
args: [{
|
|
92
|
-
selector: 'bnrc-page-base',
|
|
93
|
-
template: '',
|
|
94
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
|
95
|
-
}]
|
|
96
|
-
}] });
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etbm92aW4tcmF5LWNvcmUvc3JjL2xpYi9hYnN0cmFjdC1jbGFzc2VzL3BhZ2UtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQStCLFNBQVMsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRyxPQUFPLEVBQUUsSUFBSSxFQUE0QixNQUFNLE1BQU0sQ0FBQztBQUN0RCxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFdkMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBTzVELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxrQkFBa0I7SUFMekQ7O1FBVUksYUFBUSxHQUFHLElBQUksQ0FBQztRQUNoQixlQUFVLEdBQUcsSUFBSSxDQUFDO0tBeUdyQjtJQXRHRyxlQUFlO1FBQ1gsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBQ1MsZUFBZTtRQUNyQixJQUFJLENBQUMsUUFBUSxFQUFFO2FBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDO2FBQzlCLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFDUyxRQUFRO1FBQ2QsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDZCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDO1FBQzNDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDakMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQzVCLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQzlCLENBQUM7SUFDTixDQUFDO0lBRVMsa0JBQWtCLENBQUMsUUFBOEI7UUFDdkQsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUNTLGtCQUFrQixDQUN4QixrQkFBa0QsRUFDbEQsZUFBdUIsRUFDdkIsUUFBOEI7UUFFOUIsbUVBQW1FO1FBQ25FLE1BQU0sUUFBUSxHQUFHLGtCQUFrQixDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3BELElBQUksUUFBUSxFQUFFLENBQUM7WUFDWCxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckUsQ0FBQztRQUNELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDcEQsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxlQUFlLENBQUMsQ0FBQztRQUN6RSxJQUFJLFdBQVcsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUN0QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzFDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBRSxLQUFLLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN4RSxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNULE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQzVELGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM5QyxDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLENBQUMsS0FBSyxDQUFDLHdCQUF3QixHQUFHLGVBQWUsQ0FBQyxDQUFDO1FBQzlELENBQUM7SUFDTCxDQUFDO0lBQ1Msa0JBQWtCLENBQUMsU0FBUztRQUNsQyxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQVEsQ0FBQztRQUNwRSxTQUFTLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUM7UUFDeEMsU0FBUyxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQ2hELE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFDUyxnQkFBZ0IsQ0FBQyxPQUFtQjtRQUMxQyxPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzRixJQUFJLENBQUMsT0FBTyxDQUFDO2FBQ1IsSUFBSSxDQUNELFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQzNCLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQ2pCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUMzQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNkLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDO1lBQ3hELFNBQVMsQ0FBQyxRQUFRLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7WUFDekQsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNqRCxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3pDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FDTCxDQUNKLENBQ0o7YUFDQSxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFDUyxtQkFBbUIsQ0FBQyxXQUs3QjtRQUNHLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQ25DLFdBQVcsQ0FBQyxNQUFNLEVBQ2xCLFdBQVcsQ0FBQyxjQUFjLEVBQzFCLFdBQVcsQ0FBQyxJQUFJLEVBQ2hCLFdBQVcsQ0FBQyxRQUFRLEVBQ3BCLElBQUksQ0FBQyxTQUFTLENBQ2pCLENBQUM7SUFDTixDQUFDO0lBRVMsZUFBZSxDQUFDLFFBQVE7UUFDOUIsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUNqRCxRQUFRLEVBQ1IsNENBQTRDLEVBQzVDLEVBQUUsQ0FDTCxDQUFDO1FBQ0YsT0FBTyxZQUFZLENBQUM7SUFDeEIsQ0FBQztJQUNTLFVBQVUsQ0FBQyxRQUFRO1FBQ3pCLE9BQU8sUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSx1QkFBdUIsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNuRixDQUFDOytHQTlHUSxpQkFBaUI7bUdBQWpCLGlCQUFpQiw2RUFIaEIsRUFBRTs7NEZBR0gsaUJBQWlCO2tCQUw3QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFFBQVEsRUFBRSxFQUFFO29CQUNaLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNsRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudFJlZiwgQ29tcG9uZW50LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVVudGlsLCBtYXAsIGZpbHRlciwgdGFwLCBjb25jYXRNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBCYXJzYUFwaSB9IGZyb20gJy4vYmFyc2EtYXBpJztcclxuaW1wb3J0IHsgTW9kdWxlRGF0YU1vZGVsLCBQYWdlRGF0YU1vZGVsLCBQbGFjZUhvbGRlckRhdGFNb2RlbCwgUG9ydGFsRGF0YU1vZGVsIH0gZnJvbSAnLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi9jb250YWluZXIuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdibnJjLXBhZ2UtYmFzZScsXHJcbiAgICB0ZW1wbGF0ZTogJycsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGFnZUJhc2VDb21wb25lbnQgZXh0ZW5kcyBDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuICAgIHBvcnRhbERhdGEkOiBPYnNlcnZhYmxlPFBvcnRhbERhdGFNb2RlbD47XHJcbiAgICBwb3J0YWxTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICAgIGlzUm9vdDogYm9vbGVhbjtcclxuICAgIGhhc1JvdXRlck91dGxldDogUGxhY2VIb2xkZXJEYXRhTW9kZWw7XHJcbiAgICBoYXNSb3V0ZSA9IHRydWU7XHJcbiAgICBmdWxsc2NyZWVuID0gdHJ1ZTtcclxuICAgIHBhZ2VEYXRhOiBQYWdlRGF0YU1vZGVsIHwgbnVsbDtcclxuXHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XHJcbiAgICAgICAgdGhpcy5hZGRNb2R1bGVzVG9Eb20oKTtcclxuICAgIH1cclxuICAgIHByb3RlY3RlZCBhZGRNb2R1bGVzVG9Eb20oKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5nZXREYXRhJCgpXHJcbiAgICAgICAgICAgIC5waXBlKGZpbHRlcigoYykgPT4gYyAhPSBudWxsKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgocGFnZURhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyUGxhY2VIb2xkZXJzKHBhZ2VEYXRhKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBwcm90ZWN0ZWQgZ2V0RGF0YSQoKTogT2JzZXJ2YWJsZTxQb3J0YWxEYXRhTW9kZWwgfCBudWxsPiB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNSb290KSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9wb3J0YWxTZXJ2aWNlLnBvcnRhbERhdGEkO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5fYWN0aXZhdGVkUm91dGUuZGF0YS5waXBlKFxyXG4gICAgICAgICAgICBtYXAoKGRhdGEpID0+IGRhdGEucGFnZURhdGEpLFxyXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCByZW5kZXJQbGFjZUhvbGRlcnMocGFnZURhdGE6IFBhZ2VEYXRhTW9kZWwgfCBudWxsKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5wYWdlRGF0YSA9IHBhZ2VEYXRhO1xyXG4gICAgICAgIGNvbnN0IG1vZHVsZXMgPSB0aGlzLmdldE1vZHVsZXMocGFnZURhdGEpO1xyXG4gICAgICAgIHRoaXMuYWRkTW9kdWxlc1RvUGFnZShtb2R1bGVzKTtcclxuICAgIH1cclxuICAgIHByb3RlY3RlZCBwcmVwYXJlUGxhY2Vob2xkZXIoXHJcbiAgICAgICAgcGxhY2VIb2xkZXJFbGVtZW50OiBIVE1MRWxlbWVudCB8IERvY3VtZW50RnJhZ21lbnQsXHJcbiAgICAgICAgcGxhY2VIb2xkZXJOYW1lOiBzdHJpbmcsXHJcbiAgICAgICAgcGFnZURhdGE6IFBhZ2VEYXRhTW9kZWwgfCBudWxsXHJcbiAgICApOiB2b2lkIHtcclxuICAgICAgICAvLyByZW1vdmUgb2xkIGF0dGFjaGVkIGNvbXBvbmVudCAuIHdoZW4gd2UgdXNlIHJ4anMgZm9yIHVwZGF0ZSBkYXRhXHJcbiAgICAgICAgY29uc3QgaGFzQ2hpbGQgPSBwbGFjZUhvbGRlckVsZW1lbnQuaGFzQ2hpbGROb2RlcygpO1xyXG4gICAgICAgIGlmIChoYXNDaGlsZCkge1xyXG4gICAgICAgICAgICBwbGFjZUhvbGRlckVsZW1lbnQucmVtb3ZlQ2hpbGQocGxhY2VIb2xkZXJFbGVtZW50LmNoaWxkTm9kZXNbMF0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBwbGFjZUhvbGRlcnMgPSB0aGlzLmdldFBsYWNlSG9sZGVycyhwYWdlRGF0YSk7XHJcbiAgICAgICAgY29uc3QgcGxhY2VIb2xkZXIgPSBwbGFjZUhvbGRlcnMuZmluZCgoYykgPT4gYy5OYW1lID09PSBwbGFjZUhvbGRlck5hbWUpO1xyXG4gICAgICAgIGlmIChwbGFjZUhvbGRlciAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1vZHVsZXMgPSB0aGlzLmdldE1vZHVsZXMocGFnZURhdGEpO1xyXG4gICAgICAgICAgICBjb25zdCBtb2R1bGUgPSBtb2R1bGVzLmZpbmQoKGMpID0+IGMuUGxhY2VIb2xkZXIuSWQgPT09IHBsYWNlSG9sZGVyLklkKTtcclxuICAgICAgICAgICAgaWYgKG1vZHVsZSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY29udHJvbFVpID0gdGhpcy5nZXRNb2R1bGVDb250cm9sVWkobW9kdWxlLkNvbXBvbmVudCk7XHJcbiAgICAgICAgICAgICAgICBwbGFjZUhvbGRlckVsZW1lbnQuYXBwZW5kQ2hpbGQoY29udHJvbFVpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ3BsYWNlaG9sZGVyIG5vdCBmb3VuZCAnICsgcGxhY2VIb2xkZXJOYW1lKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBwcm90ZWN0ZWQgZ2V0TW9kdWxlQ29udHJvbFVpKGNvbXBvbmVudCk6IGFueSB7XHJcbiAgICAgICAgY29uc3QgY29udHJvbFVpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChjb21wb25lbnQuU2VsZWN0b3IpIGFzIGFueTtcclxuICAgICAgICBjb250cm9sVWkuc2V0dGluZ3MgPSBjb21wb25lbnQuU2V0dGluZ3M7XHJcbiAgICAgICAgY29udHJvbFVpLmFjdGl2YXRlZFJvdXRlID0gdGhpcy5fYWN0aXZhdGVkUm91dGU7XHJcbiAgICAgICAgcmV0dXJuIGNvbnRyb2xVaTtcclxuICAgIH1cclxuICAgIHByb3RlY3RlZCBhZGRNb2R1bGVzVG9QYWdlKG1vZHVsZXM6IEFycmF5PGFueT4pOiB2b2lkIHtcclxuICAgICAgICBtb2R1bGVzID0gbW9kdWxlcy5zb3J0KChhLCBiKSA9PiAoTnVtYmVyKGEuT3JkZXJOdW1iZXIpID4gTnVtYmVyKGIuT3JkZXJOdW1iZXIpID8gMSA6IC0xKSk7XHJcbiAgICAgICAgZnJvbShtb2R1bGVzKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSxcclxuICAgICAgICAgICAgICAgIGNvbmNhdE1hcCgobW9kdWxlKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0Q29tcG9uZW50RmFjdG9yeShtb2R1bGUuQ29tcG9uZW50KS5waXBlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0YXAoKGNvbnRyb2xVaSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbFVpLmluc3RhbmNlLnNldHRpbmdzID0gbW9kdWxlLkNvbXBvbmVudC5TZXR0aW5ncztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xVaS5pbnN0YW5jZS5hY3RpdmF0ZWRSb3V0ZSA9IHRoaXMuX2FjdGl2YXRlZFJvdXRlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuY29udGFpbmVyUmVmKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250YWluZXJSZWYuaW5zZXJ0KGNvbnRyb2xVaS5ob3N0Vmlldyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3Zjci5pbnNlcnQoY29udHJvbFVpLmhvc3RWaWV3KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpKTtcclxuICAgIH1cclxuICAgIHByb3RlY3RlZCBnZXRDb21wb25lbnRGYWN0b3J5KHVpQ29tcG9uZW50OiB7XHJcbiAgICAgICAgU2VsZWN0b3I6IHN0cmluZztcclxuICAgICAgICBOYW1lOiBzdHJpbmc7XHJcbiAgICAgICAgTW9kdWxlOiBzdHJpbmc7XHJcbiAgICAgICAgTW9kdWxlRmlsZU5hbWU6IHN0cmluZztcclxuICAgIH0pOiBPYnNlcnZhYmxlPENvbXBvbmVudFJlZjxhbnk+PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BvcnRhbFNlcnZpY2UuZ2V0Q29tcG9uZW50KFxyXG4gICAgICAgICAgICB1aUNvbXBvbmVudC5Nb2R1bGUsXHJcbiAgICAgICAgICAgIHVpQ29tcG9uZW50Lk1vZHVsZUZpbGVOYW1lLFxyXG4gICAgICAgICAgICB1aUNvbXBvbmVudC5OYW1lLFxyXG4gICAgICAgICAgICB1aUNvbXBvbmVudC5TZWxlY3RvcixcclxuICAgICAgICAgICAgdGhpcy5faW5qZWN0b3JcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBnZXRQbGFjZUhvbGRlcnMocGFnZURhdGEpOiBBcnJheTxQbGFjZUhvbGRlckRhdGFNb2RlbD4ge1xyXG4gICAgICAgIGNvbnN0IHBsYWNlaG9sZGVycyA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKFxyXG4gICAgICAgICAgICBwYWdlRGF0YSxcclxuICAgICAgICAgICAgJ0NvbXBvbmVudC5TZXR0aW5ncy5QbGFjZUhvbGRlcnMuTW9EYXRhTGlzdCcsXHJcbiAgICAgICAgICAgIFtdXHJcbiAgICAgICAgKTtcclxuICAgICAgICByZXR1cm4gcGxhY2Vob2xkZXJzO1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIGdldE1vZHVsZXMocGFnZURhdGEpOiBBcnJheTxNb2R1bGVEYXRhTW9kZWw+IHtcclxuICAgICAgICByZXR1cm4gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUocGFnZURhdGEsICdNb2R1bGVMaXN0Lk1vRGF0YUxpc3QnLCBbXSk7XHJcbiAgICB9XHJcbn1cclxuIl19
|