barsa-novin-ray-core 2.2.73 → 2.2.75

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.
Files changed (233) hide show
  1. package/fesm2022/barsa-novin-ray-core.mjs +630 -651
  2. package/fesm2022/barsa-novin-ray-core.mjs.map +1 -1
  3. package/lib/abstract-classes/field-base.d.ts +1 -1
  4. package/lib/abstract-classes/number-base.d.ts +1 -1
  5. package/lib/date-services/date-hijri.service.d.ts +1 -1
  6. package/lib/date-services/date.service.d.ts +1 -1
  7. package/lib/directives/base.directive.d.ts +1 -1
  8. package/lib/dynamic-component/base-view-item-props.d.ts +4 -4
  9. package/lib/resolvers/login-settings.resolver.d.ts +1 -1
  10. package/lib/resolvers/tile-group-breadcrumb.resolver.d.ts +1 -1
  11. package/lib/services/notification.service.d.ts +2 -2
  12. package/lib/services/portal.service.d.ts +1 -1
  13. package/package.json +3 -5
  14. package/esm2022/barsa-novin-ray-core.mjs +0 -5
  15. package/esm2022/lib/abstract-classes/application-base.mjs +0 -25
  16. package/esm2022/lib/abstract-classes/barsa-api.mjs +0 -43
  17. package/esm2022/lib/abstract-classes/base-column-props.mjs +0 -89
  18. package/esm2022/lib/abstract-classes/base.component.mjs +0 -60
  19. package/esm2022/lib/abstract-classes/field-base.mjs +0 -244
  20. package/esm2022/lib/abstract-classes/files-validation-helper.mjs +0 -75
  21. package/esm2022/lib/abstract-classes/form-base.mjs +0 -164
  22. package/esm2022/lib/abstract-classes/form-field-report-page.component.mjs +0 -54
  23. package/esm2022/lib/abstract-classes/form-page-base.mjs +0 -132
  24. package/esm2022/lib/abstract-classes/form-page.component.mjs +0 -53
  25. package/esm2022/lib/abstract-classes/form-props.base.mjs +0 -100
  26. package/esm2022/lib/abstract-classes/form-toolbar-base.mjs +0 -57
  27. package/esm2022/lib/abstract-classes/index.mjs +0 -25
  28. package/esm2022/lib/abstract-classes/layout-item-base.mjs +0 -49
  29. package/esm2022/lib/abstract-classes/layout-panel-base.mjs +0 -68
  30. package/esm2022/lib/abstract-classes/linear-list-helper.mjs +0 -135
  31. package/esm2022/lib/abstract-classes/models.mjs +0 -184
  32. package/esm2022/lib/abstract-classes/module-with-dynamic-components.mjs +0 -2
  33. package/esm2022/lib/abstract-classes/number-base.mjs +0 -201
  34. package/esm2022/lib/abstract-classes/page-base.mjs +0 -98
  35. package/esm2022/lib/abstract-classes/page-with-form-handler-base.mjs +0 -41
  36. package/esm2022/lib/abstract-classes/report-base.mjs +0 -266
  37. package/esm2022/lib/abstract-classes/report-item-base.mjs +0 -54
  38. package/esm2022/lib/abstract-classes/report-view-base.component.mjs +0 -450
  39. package/esm2022/lib/abstract-classes/system-base.mjs +0 -25
  40. package/esm2022/lib/abstract-classes/tile-props.mjs +0 -49
  41. package/esm2022/lib/auth-guard.mjs +0 -48
  42. package/esm2022/lib/barsa-novin-ray-core-routing.module.mjs +0 -311
  43. package/esm2022/lib/barsa-novin-ray-core.module.mjs +0 -522
  44. package/esm2022/lib/base-ulv-setting.component.mjs +0 -46
  45. package/esm2022/lib/base.module.mjs +0 -28
  46. package/esm2022/lib/button-loading/button-loading.component.mjs +0 -20
  47. package/esm2022/lib/constants.mjs +0 -963
  48. package/esm2022/lib/container.component.mjs +0 -100
  49. package/esm2022/lib/controllers/base-controller.mjs +0 -9
  50. package/esm2022/lib/controllers/base-view.mjs +0 -24
  51. package/esm2022/lib/controllers/index.mjs +0 -4
  52. package/esm2022/lib/controllers/models.mjs +0 -2
  53. package/esm2022/lib/custom-route-reuse-strategy.mjs +0 -32
  54. package/esm2022/lib/date-services/date-hijri.service.mjs +0 -146
  55. package/esm2022/lib/date-services/date-info.mjs +0 -2
  56. package/esm2022/lib/date-services/date-miladi.service.mjs +0 -124
  57. package/esm2022/lib/date-services/date-shamsi.service.mjs +0 -148
  58. package/esm2022/lib/date-services/date.service.mjs +0 -149
  59. package/esm2022/lib/date-services/index.mjs +0 -6
  60. package/esm2022/lib/device.mjs +0 -663
  61. package/esm2022/lib/directives/absolute-div-body.directive.mjs +0 -46
  62. package/esm2022/lib/directives/anchor-scroll.directive.mjs +0 -25
  63. package/esm2022/lib/directives/attr-rtl.directive.mjs +0 -36
  64. package/esm2022/lib/directives/base.directive.mjs +0 -55
  65. package/esm2022/lib/directives/body-click.directive.mjs +0 -36
  66. package/esm2022/lib/directives/column-resizer.directive.mjs +0 -40
  67. package/esm2022/lib/directives/copy.directive.mjs +0 -60
  68. package/esm2022/lib/directives/count-down.directive.mjs +0 -109
  69. package/esm2022/lib/directives/dynamic-command.directive.mjs +0 -43
  70. package/esm2022/lib/directives/dynamic-style.directive.mjs +0 -66
  71. package/esm2022/lib/directives/ellapsis-text.directive.mjs +0 -70
  72. package/esm2022/lib/directives/ellipsify.directive.mjs +0 -73
  73. package/esm2022/lib/directives/field-binding.directive.mjs +0 -18
  74. package/esm2022/lib/directives/fill-empty-space.mjs +0 -89
  75. package/esm2022/lib/directives/form-close.directive.mjs +0 -33
  76. package/esm2022/lib/directives/img-lazy.directive.mjs +0 -82
  77. package/esm2022/lib/directives/index.mjs +0 -42
  78. package/esm2022/lib/directives/intersection-observer.directive.mjs +0 -52
  79. package/esm2022/lib/directives/items-renderer.directive.mjs +0 -60
  80. package/esm2022/lib/directives/label-mandatory.directive.mjs +0 -49
  81. package/esm2022/lib/directives/load-external-files.directive.mjs +0 -38
  82. package/esm2022/lib/directives/mobile.directive.mjs +0 -30
  83. package/esm2022/lib/directives/nowraptext.directive.mjs +0 -27
  84. package/esm2022/lib/directives/numbers-only-input.directive.mjs +0 -27
  85. package/esm2022/lib/directives/placeHolder.directive.mjs +0 -16
  86. package/esm2022/lib/directives/prevent-default.directive.mjs +0 -21
  87. package/esm2022/lib/directives/print-files.directive.mjs +0 -39
  88. package/esm2022/lib/directives/render-ulv-paging.directive.mjs +0 -81
  89. package/esm2022/lib/directives/render-ulv-viewer.directive.mjs +0 -76
  90. package/esm2022/lib/directives/render-ulv.directive.mjs +0 -52
  91. package/esm2022/lib/directives/route-form-change.directive.mjs +0 -38
  92. package/esm2022/lib/directives/save-image.directive.mjs +0 -28
  93. package/esm2022/lib/directives/splide-slider.directive.mjs +0 -113
  94. package/esm2022/lib/directives/stop-propagation.directive.mjs +0 -21
  95. package/esm2022/lib/directives/table-resizer.directive.mjs +0 -236
  96. package/esm2022/lib/directives/ulv-command.directive.mjs +0 -43
  97. package/esm2022/lib/directives/until-inview.directive.mjs +0 -53
  98. package/esm2022/lib/directives/webotp.directive.mjs +0 -49
  99. package/esm2022/lib/directives/workflow-choice-command.directive.mjs +0 -61
  100. package/esm2022/lib/dynamic-component/base-dynamic.component.mjs +0 -97
  101. package/esm2022/lib/dynamic-component/base-form-toolbaritem-props.mjs +0 -53
  102. package/esm2022/lib/dynamic-component/base-item-content-props.mjs +0 -83
  103. package/esm2022/lib/dynamic-component/base-view-content-props.mjs +0 -27
  104. package/esm2022/lib/dynamic-component/base-view-item-props.mjs +0 -552
  105. package/esm2022/lib/dynamic-component/base-view-props.mjs +0 -163
  106. package/esm2022/lib/dynamic-component/dynamic-form-toolbar-item.component.mjs +0 -38
  107. package/esm2022/lib/dynamic-component/dynamic-form.component.mjs +0 -69
  108. package/esm2022/lib/dynamic-component/dynamic-item.component.mjs +0 -78
  109. package/esm2022/lib/dynamic-component/dynamic-layout.component.mjs +0 -64
  110. package/esm2022/lib/dynamic-component/index.mjs +0 -11
  111. package/esm2022/lib/empty-page/empty-page.component.mjs +0 -49
  112. package/esm2022/lib/empty-page-with-router-and-router-outlet/empty-page-with-router-and-router-outlet.component.mjs +0 -16
  113. package/esm2022/lib/field-ui/field-ui.component.mjs +0 -149
  114. package/esm2022/lib/form/form.component.mjs +0 -212
  115. package/esm2022/lib/form-new/form-new.component.mjs +0 -31
  116. package/esm2022/lib/form-page-routing/barsa-sap-ui-form-page-routing.module.mjs +0 -54
  117. package/esm2022/lib/form-page-routing/barsa-sap-ui-form-page.module.mjs +0 -29
  118. package/esm2022/lib/form-page-routing/constants.mjs +0 -9
  119. package/esm2022/lib/form-page-routing/index.mjs +0 -3
  120. package/esm2022/lib/from-intersection-observer.mjs +0 -53
  121. package/esm2022/lib/global-error-handler.mjs +0 -26
  122. package/esm2022/lib/injdection-tokens.mjs +0 -8
  123. package/esm2022/lib/modal-root.component.mjs +0 -34
  124. package/esm2022/lib/not-found/not-found.component.mjs +0 -16
  125. package/esm2022/lib/not-internet/not-internet.component.mjs +0 -21
  126. package/esm2022/lib/pipes/barsa-icon-dict.pipe.mjs +0 -20
  127. package/esm2022/lib/pipes/bbb-translate.pipe.mjs +0 -36
  128. package/esm2022/lib/pipes/can-upload.pipe.mjs +0 -27
  129. package/esm2022/lib/pipes/card-media-size.pipe.mjs +0 -21
  130. package/esm2022/lib/pipes/column-custom-component.pipe.mjs +0 -41
  131. package/esm2022/lib/pipes/column-customui.pipe.mjs +0 -33
  132. package/esm2022/lib/pipes/column-icon.pipe.mjs +0 -23
  133. package/esm2022/lib/pipes/column-value.pipe.mjs +0 -35
  134. package/esm2022/lib/pipes/column-valueof-parameters.pipe.mjs +0 -34
  135. package/esm2022/lib/pipes/combo-row-img.pipe.mjs +0 -17
  136. package/esm2022/lib/pipes/context-menu.pipe.mjs +0 -41
  137. package/esm2022/lib/pipes/control-ui.pipe.mjs +0 -32
  138. package/esm2022/lib/pipes/convert-to-style.pipe.mjs +0 -33
  139. package/esm2022/lib/pipes/date-time-to-caption.pipe.mjs +0 -35
  140. package/esm2022/lib/pipes/fileinfo-count.pipe.mjs +0 -21
  141. package/esm2022/lib/pipes/filter-columns-by-details.pipe.mjs +0 -23
  142. package/esm2022/lib/pipes/filter-inline-action-list.pipe.mjs +0 -19
  143. package/esm2022/lib/pipes/filter-string.pipe.mjs +0 -45
  144. package/esm2022/lib/pipes/filter-tab.pipe.mjs +0 -20
  145. package/esm2022/lib/pipes/filter-toolbar-control.pipe.mjs +0 -17
  146. package/esm2022/lib/pipes/filter-workflow-mobile.pipe.mjs +0 -25
  147. package/esm2022/lib/pipes/filter.pipe.mjs +0 -34
  148. package/esm2022/lib/pipes/find-column-by-db-name.pipe.mjs +0 -28
  149. package/esm2022/lib/pipes/find-preview-column.pipe.mjs +0 -20
  150. package/esm2022/lib/pipes/fiori-icon.pipe.mjs +0 -43
  151. package/esm2022/lib/pipes/groupby.pipe.mjs +0 -64
  152. package/esm2022/lib/pipes/header-facet-value.pipe.mjs +0 -23
  153. package/esm2022/lib/pipes/hide-accept-cancel-buttons.pipe.mjs +0 -24
  154. package/esm2022/lib/pipes/hide-columns-inmobile.pipe.mjs +0 -23
  155. package/esm2022/lib/pipes/index.mjs +0 -55
  156. package/esm2022/lib/pipes/isimage.pipe.mjs +0 -20
  157. package/esm2022/lib/pipes/list-count.pipe.mjs +0 -18
  158. package/esm2022/lib/pipes/merge-fields-to-columns.pipe.mjs +0 -43
  159. package/esm2022/lib/pipes/mo-info-ulv-data.pipe.mjs +0 -59
  160. package/esm2022/lib/pipes/mo-info-ulv-paging.pipe.mjs +0 -17
  161. package/esm2022/lib/pipes/mo-report-value-concat.pipe.mjs +0 -36
  162. package/esm2022/lib/pipes/mo-report-value.pipe.mjs +0 -18
  163. package/esm2022/lib/pipes/mo-value.pipe.mjs +0 -19
  164. package/esm2022/lib/pipes/multiple-groupby.pipe.mjs +0 -91
  165. package/esm2022/lib/pipes/numeral.pipe.mjs +0 -44
  166. package/esm2022/lib/pipes/picture-field-source.pipe.mjs +0 -23
  167. package/esm2022/lib/pipes/remove-newline.pipe.mjs +0 -21
  168. package/esm2022/lib/pipes/replace.pipe.mjs +0 -18
  169. package/esm2022/lib/pipes/reverse.pipe.mjs +0 -23
  170. package/esm2022/lib/pipes/rownumber.pipe.mjs +0 -26
  171. package/esm2022/lib/pipes/sanitize-text.pipe.mjs +0 -21
  172. package/esm2022/lib/pipes/seperator-fix.pipe.mjs +0 -24
  173. package/esm2022/lib/pipes/sort.pipe.mjs +0 -49
  174. package/esm2022/lib/pipes/string-to-number.pipe.mjs +0 -26
  175. package/esm2022/lib/pipes/th-image-icon.pipe.mjs +0 -22
  176. package/esm2022/lib/pipes/tlbButtons.pipe.mjs +0 -60
  177. package/esm2022/lib/pipes/toolbar-settings.pipe.mjs +0 -27
  178. package/esm2022/lib/pipes/total-summary.pipe.mjs +0 -17
  179. package/esm2022/lib/pipes/tree-item-isexpanded.pipe.mjs +0 -26
  180. package/esm2022/lib/pipes/visible-value.pipe.mjs +0 -19
  181. package/esm2022/lib/portal-page/portal-page.component.mjs +0 -24
  182. package/esm2022/lib/portal-page/portal-sidebar.component.mjs +0 -37
  183. package/esm2022/lib/redirect-home-guard.mjs +0 -51
  184. package/esm2022/lib/redirect-report-navigator-command/redirect-report-navigator-command.component.mjs +0 -12
  185. package/esm2022/lib/report-container/report-container.component.mjs +0 -63
  186. package/esm2022/lib/resizable-module/resizable.component.mjs +0 -31
  187. package/esm2022/lib/resizable-module/resizable.directive.mjs +0 -42
  188. package/esm2022/lib/resizable-module/resizable.module.mjs +0 -17
  189. package/esm2022/lib/resolvers/index.mjs +0 -7
  190. package/esm2022/lib/resolvers/login-settings.resolver.mjs +0 -18
  191. package/esm2022/lib/resolvers/portal-dynamic-page.resolver.mjs +0 -49
  192. package/esm2022/lib/resolvers/portal-form-page.resolver.mjs +0 -18
  193. package/esm2022/lib/resolvers/portal-page.resolver.mjs +0 -30
  194. package/esm2022/lib/resolvers/portal-report-page.resolver.mjs +0 -37
  195. package/esm2022/lib/resolvers/tile-group-breadcrumb.resolver.mjs +0 -30
  196. package/esm2022/lib/root-page/root-page.component.mjs +0 -21
  197. package/esm2022/lib/root-portal/root-portal.component.mjs +0 -236
  198. package/esm2022/lib/server-connection-error/server-connection-error.component.mjs +0 -19
  199. package/esm2022/lib/services/api.service.mjs +0 -63
  200. package/esm2022/lib/services/audio-recording.service.mjs +0 -95
  201. package/esm2022/lib/services/barsa-dialog.service.mjs +0 -80
  202. package/esm2022/lib/services/barsa-storage.service.mjs +0 -78
  203. package/esm2022/lib/services/breadcrumb.service.mjs +0 -64
  204. package/esm2022/lib/services/column.service.mjs +0 -20
  205. package/esm2022/lib/services/container.service.mjs +0 -69
  206. package/esm2022/lib/services/dynamic-component.service.mjs +0 -55
  207. package/esm2022/lib/services/form-panel.service.mjs +0 -394
  208. package/esm2022/lib/services/form.service.mjs +0 -14
  209. package/esm2022/lib/services/groupby.service.mjs +0 -21
  210. package/esm2022/lib/services/horizontal-layout.service.mjs +0 -16
  211. package/esm2022/lib/services/index.mjs +0 -32
  212. package/esm2022/lib/services/indexeddb.service.mjs +0 -34
  213. package/esm2022/lib/services/layout-main-content.service.mjs +0 -19
  214. package/esm2022/lib/services/layout.service.mjs +0 -42
  215. package/esm2022/lib/services/local-storage.service.mjs +0 -32
  216. package/esm2022/lib/services/log.service.mjs +0 -50
  217. package/esm2022/lib/services/network-status.service.mjs +0 -15
  218. package/esm2022/lib/services/notification-popup.service.mjs +0 -2
  219. package/esm2022/lib/services/notification-sw.service.mjs +0 -180
  220. package/esm2022/lib/services/notification.service.mjs +0 -189
  221. package/esm2022/lib/services/portal.service.mjs +0 -950
  222. package/esm2022/lib/services/prompt-update.service.mjs +0 -56
  223. package/esm2022/lib/services/routing.service.mjs +0 -60
  224. package/esm2022/lib/services/save-scoll-position.service.mjs +0 -29
  225. package/esm2022/lib/services/service-worker-communication.service.mjs +0 -120
  226. package/esm2022/lib/services/tabpage.service.mjs +0 -13
  227. package/esm2022/lib/services/toast.service.mjs +0 -2
  228. package/esm2022/lib/services/ui.service.mjs +0 -23
  229. package/esm2022/lib/services/ulvmain.service.mjs +0 -824
  230. package/esm2022/lib/services/upload.service.mjs +0 -166
  231. package/esm2022/lib/services/video-recording.service.mjs +0 -115
  232. package/esm2022/lib/unlimit-session/unlimit-session.component.mjs +0 -40
  233. package/esm2022/public-api.mjs +0 -42
@@ -1,522 +0,0 @@
1
- import { APP_INITIALIZER, ErrorHandler, NgModule, NO_ERRORS_SCHEMA } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';
4
- import { Title } from '@angular/platform-browser';
5
- import { isInLocalMode } from './constants';
6
- import { Router } from '@angular/router';
7
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
8
- import { FormComponent } from './form/form.component';
9
- import { FieldUiComponent } from './field-ui/field-ui.component';
10
- import { ReportContainerComponent } from './report-container/report-container.component';
11
- import { AnchorScrollDirective } from './directives/anchor-scroll.directive';
12
- import { BarsaNovinRayCoreRoutingModule } from './barsa-novin-ray-core-routing.module';
13
- import { ModalRootComponent } from './modal-root.component';
14
- import { FormNewComponent } from './form-new/form-new.component';
15
- import { RootPortalComponent } from './root-portal/root-portal.component';
16
- import { AuthGuard } from './auth-guard';
17
- import { DynamicFormComponent, DynamicItemComponent, BaseDynamicComponent, DynamicFormToolbaritemComponent, DynamicLayoutComponent } from './dynamic-component';
18
- import { RedirectHomeGuard } from './redirect-home-guard';
19
- import { NotFoundComponent } from './not-found/not-found.component';
20
- import { RootPageComponent } from './root-page/root-page.component';
21
- import { BaseModule } from './base.module';
22
- import { PortalPageComponent } from './portal-page/portal-page.component';
23
- import { GlobalErrorHandler } from './global-error-handler';
24
- import { RedirectReportNavigatorCommandComponent } from './redirect-report-navigator-command/redirect-report-navigator-command.component';
25
- import { EmptyPageWithRouterAndRouterOutletComponent } from './empty-page-with-router-and-router-outlet/empty-page-with-router-and-router-outlet.component';
26
- import { ButtonLoadingComponent } from './button-loading/button-loading.component';
27
- import { UnlimitSessionComponent } from './unlimit-session/unlimit-session.component';
28
- import { EmptyPageComponent } from './empty-page/empty-page.component';
29
- import { BarsaApi } from './abstract-classes/barsa-api';
30
- import { FormPageComponent } from './abstract-classes/form-page.component';
31
- import { FormFieldReportPageComponent } from './abstract-classes';
32
- import { PortalPageSidebarComponent } from './portal-page/portal-sidebar.component';
33
- import { BarsaSapUiFormPageModule } from './form-page-routing';
34
- import { ResizableModule } from './resizable-module/resizable.module';
35
- import { BreadcrumbService, UploadService, ApiService, LogService, BarsaDialogService, PortalService, UiService, LayoutService, TabpageService, DynamicComponentService, NetworkStatusService, AudioRecordingService, VideoRecordingService, PromptUpdateService, BarsaStorageService, LocalStorageService, IndexedDbService, NotificationService, ServiceWorkerNotificationService, ServiceWorkerCommuncationService, SaveScrollPositionService } from './services';
36
- import { DynamicCommandDirective, ItemsRendererDirective, NumbersOnlyInputDirective, PlaceHolderDirective, RenderUlvPaginDirective, ImageLazyDirective, UntilInViewDirective, IntersectionObserverDirective, EllipsifyDirective, TableResizerDirective, ColumnResizerDirective, AttrRtlDirective, RenderUlvViewerDirective, UlvCommandDirective, WorfkflowwChoiceCommandDirective, CopyDirective, EllapsisTextDirective, FillEmptySpaceDirective, FormCloseDirective, MobileDirective, BodyClickDirective, CountDownDirective, RouteFormChangeDirective, DynamicStyleDirective, NowraptextDirective, LabelmandatoryDirective, AbsoluteDivBodyDirective, LoadExternalFilesDirective, StopPropagationDirective, PreventDefaultDirective, RenderUlvDirective, PrintFilesDirective, SaveImageDirective, WebOtpDirective, SplideSliderDirective } from './directives';
37
- import { NumeralPipe, CanUploadFilePipe, RemoveNewlinePipe, ConvertToStylePipe, FilterPipe, FilterTabPipe, FilterStringPipe, FioriIconPipe, SortPipe, GroupByPipe, MultipleGroupByPipe, MoValuePipe, MoReportValuePipe, HeaderFacetValuePipe, PictureFieldSourcePipe, TlbButtonsPipe, SeperatorFixPipe, MoReportValueConcatPipe, ContextMenuPipe, BbbTranslatePipe, BarsaIconDictPipe, FileInfoCountPipe, ControlUiPipe, VisibleValuePipe, DateTimeToCaptionPipe, FilterToolbarControlPipe, ListCountPipe, TotalSummaryPipe, MergeFieldsToColumnsPipe, FindColumnByDbNamePipe, FilterColumnsByDetailsPipe, MoInfoUlvMoListPipe, MoInfoUlvPagingPipe, ReversePipe, ColumnCustomUiPipe, SanitizeTextPipe, ColumnCustomComponentPipe, ColumnIconPipe, ColumnValuePipe, RowNumberPipe, ComboRowImagePipe, IsExpandedNodePipe, ThImageOrIconePipe, FindPreviewColumnPipe, ReplacePipe, FilterWorkflowInMobilePipe, HideColumnsInmobilePipe, StringToNumberPipe, ColumnValueOfParametersPipe, HideAcceptCancelButtonsPipe, FilterInlineActionListPipe, IsImagePipe, ToolbarSettingsPipe, CardMediaSizePipe } from './pipes';
38
- import * as i0 from "@angular/core";
39
- import * as i1 from "./services";
40
- const components = [
41
- FormComponent,
42
- FieldUiComponent,
43
- NotFoundComponent,
44
- RootPageComponent,
45
- RootPortalComponent,
46
- ReportContainerComponent,
47
- FormNewComponent,
48
- ModalRootComponent,
49
- PortalPageComponent,
50
- PortalPageSidebarComponent,
51
- RedirectReportNavigatorCommandComponent,
52
- EmptyPageWithRouterAndRouterOutletComponent,
53
- DynamicItemComponent,
54
- DynamicFormComponent,
55
- BaseDynamicComponent,
56
- DynamicFormToolbaritemComponent,
57
- DynamicLayoutComponent,
58
- EmptyPageComponent,
59
- FormPageComponent,
60
- FormFieldReportPageComponent,
61
- ButtonLoadingComponent,
62
- UnlimitSessionComponent
63
- ];
64
- const directives = [
65
- PlaceHolderDirective,
66
- NumbersOnlyInputDirective,
67
- RenderUlvViewerDirective,
68
- RenderUlvPaginDirective,
69
- AnchorScrollDirective,
70
- ItemsRendererDirective,
71
- UlvCommandDirective,
72
- DynamicCommandDirective,
73
- WorfkflowwChoiceCommandDirective,
74
- ImageLazyDirective,
75
- UntilInViewDirective,
76
- IntersectionObserverDirective,
77
- EllipsifyDirective,
78
- TableResizerDirective,
79
- ColumnResizerDirective,
80
- AttrRtlDirective,
81
- CopyDirective,
82
- EllapsisTextDirective,
83
- FillEmptySpaceDirective,
84
- FormCloseDirective,
85
- MobileDirective,
86
- BodyClickDirective,
87
- CountDownDirective,
88
- RouteFormChangeDirective,
89
- DynamicStyleDirective,
90
- NowraptextDirective,
91
- LabelmandatoryDirective,
92
- AbsoluteDivBodyDirective,
93
- LoadExternalFilesDirective,
94
- StopPropagationDirective,
95
- PreventDefaultDirective,
96
- RenderUlvDirective,
97
- PrintFilesDirective,
98
- SaveImageDirective,
99
- WebOtpDirective,
100
- SplideSliderDirective
101
- ];
102
- const pipes = [
103
- NumeralPipe,
104
- CanUploadFilePipe,
105
- RemoveNewlinePipe,
106
- ConvertToStylePipe,
107
- FilterPipe,
108
- FilterTabPipe,
109
- FilterStringPipe,
110
- FioriIconPipe,
111
- SortPipe,
112
- GroupByPipe,
113
- MultipleGroupByPipe,
114
- MoValuePipe,
115
- MoReportValuePipe,
116
- HeaderFacetValuePipe,
117
- PictureFieldSourcePipe,
118
- TlbButtonsPipe,
119
- SeperatorFixPipe,
120
- MoReportValueConcatPipe,
121
- ContextMenuPipe,
122
- BbbTranslatePipe,
123
- BarsaIconDictPipe,
124
- FileInfoCountPipe,
125
- ControlUiPipe,
126
- VisibleValuePipe,
127
- DateTimeToCaptionPipe,
128
- FilterToolbarControlPipe,
129
- ListCountPipe,
130
- TotalSummaryPipe,
131
- MergeFieldsToColumnsPipe,
132
- FindColumnByDbNamePipe,
133
- FilterColumnsByDetailsPipe,
134
- MoInfoUlvMoListPipe,
135
- MoInfoUlvPagingPipe,
136
- ReversePipe,
137
- ColumnCustomUiPipe,
138
- SanitizeTextPipe,
139
- ColumnCustomComponentPipe,
140
- ColumnIconPipe,
141
- ColumnValuePipe,
142
- RowNumberPipe,
143
- ComboRowImagePipe,
144
- IsExpandedNodePipe,
145
- ThImageOrIconePipe,
146
- FindPreviewColumnPipe,
147
- ReplacePipe,
148
- FilterWorkflowInMobilePipe,
149
- HideColumnsInmobilePipe,
150
- StringToNumberPipe,
151
- ColumnValueOfParametersPipe,
152
- HideAcceptCancelButtonsPipe,
153
- FilterInlineActionListPipe,
154
- IsImagePipe,
155
- ToolbarSettingsPipe,
156
- CardMediaSizePipe
157
- ];
158
- const functionL1 = function () {
159
- if (BarsaApi.LoginFormData.Culture === 'fa-IR') {
160
- return Promise.resolve();
161
- }
162
- return fetch(`/Localization/Translation/data_${BarsaApi.LoginFormData.Culture}.json`)
163
- .then(function (res) {
164
- return res.json();
165
- })
166
- .then(function (res) {
167
- if (BBB) {
168
- // eslint-disable
169
- BBB = { ...BarsaApi.BBB, ...res };
170
- }
171
- });
172
- };
173
- const functionL2 = function (portalService, titleService) {
174
- portalService.loadUserPortalSetting();
175
- portalService.loadPortalDataSync();
176
- if (portalService.portalData?.Title) {
177
- titleService.setTitle(portalService.portalData?.Title);
178
- }
179
- if (BarsaApi.LoginFormData.IsAnonymous && !BarsaApi.LoginFormData.IsServiceDesk) {
180
- return portalService.loadSystem(BarsaApi.LoginFormData.PortalSystemId); // login form need just portal system
181
- }
182
- else {
183
- return portalService.loadSystem(); // load all systems if user is logged in
184
- }
185
- };
186
- export class BarsaNovinRayCoreModule extends BaseModule {
187
- constructor(dcm, componentFactoryResolver) {
188
- super(dcm, componentFactoryResolver, 'BarsaNovinRayCoreModule');
189
- this.dcm = dcm;
190
- this.componentFactoryResolver = componentFactoryResolver;
191
- this.dynamicComponents = [...components];
192
- }
193
- static forRoot() {
194
- return {
195
- ngModule: BarsaNovinRayCoreModule,
196
- providers: [
197
- {
198
- provide: APP_INITIALIZER,
199
- useFactory: (portalService, titleService, promptUpdateService, barsaStorageService, swCommunication, networkStatusService, router) => () => {
200
- const inLocalMode = isInLocalMode();
201
- return portalService
202
- .loadServerStartupData()
203
- .then(() => Promise.all([functionL1(), functionL2(portalService, titleService)]).finally(() => {
204
- promptUpdateService.checkForUpdate();
205
- barsaStorageService.init();
206
- swCommunication.init();
207
- }))
208
- .catch((e) => {
209
- if (!inLocalMode && !navigator.onLine) {
210
- console.log('no-internet');
211
- router.navigate(['no-internet']);
212
- }
213
- else {
214
- router.navigate(['server-connection-error']);
215
- }
216
- return Promise.resolve();
217
- });
218
- },
219
- deps: [
220
- PortalService,
221
- Title,
222
- PromptUpdateService,
223
- BarsaStorageService,
224
- ServiceWorkerCommuncationService,
225
- NetworkStatusService,
226
- Router
227
- ],
228
- multi: true
229
- },
230
- {
231
- provide: ErrorHandler,
232
- useClass: GlobalErrorHandler
233
- },
234
- {
235
- provide: APP_INITIALIZER,
236
- useFactory: (notificationService) => () => {
237
- BarsaApi.Ul.NotificationManager.on({
238
- ShowPopup: notificationService.addNotification.bind(notificationService),
239
- PublishEvent: notificationService.handleTopic.bind(notificationService)
240
- });
241
- },
242
- deps: [NotificationService],
243
- multi: true
244
- },
245
- ...pipes,
246
- PortalService,
247
- UploadService,
248
- ApiService,
249
- LogService,
250
- BarsaDialogService,
251
- UiService,
252
- LayoutService,
253
- TabpageService,
254
- DynamicComponentService,
255
- BreadcrumbService,
256
- AuthGuard,
257
- NetworkStatusService,
258
- AudioRecordingService,
259
- VideoRecordingService,
260
- RedirectHomeGuard,
261
- PromptUpdateService,
262
- NotificationService,
263
- ServiceWorkerNotificationService,
264
- SaveScrollPositionService,
265
- LocalStorageService,
266
- IndexedDbService,
267
- BbbTranslatePipe,
268
- BarsaStorageService,
269
- ServiceWorkerCommuncationService
270
- ]
271
- };
272
- }
273
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaNovinRayCoreModule, deps: [{ token: i1.DynamicComponentService }, { token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.NgModule }); }
274
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: BarsaNovinRayCoreModule, declarations: [FormComponent,
275
- FieldUiComponent,
276
- NotFoundComponent,
277
- RootPageComponent,
278
- RootPortalComponent,
279
- ReportContainerComponent,
280
- FormNewComponent,
281
- ModalRootComponent,
282
- PortalPageComponent,
283
- PortalPageSidebarComponent,
284
- RedirectReportNavigatorCommandComponent,
285
- EmptyPageWithRouterAndRouterOutletComponent,
286
- DynamicItemComponent,
287
- DynamicFormComponent,
288
- BaseDynamicComponent,
289
- DynamicFormToolbaritemComponent,
290
- DynamicLayoutComponent,
291
- EmptyPageComponent,
292
- FormPageComponent,
293
- FormFieldReportPageComponent,
294
- ButtonLoadingComponent,
295
- UnlimitSessionComponent, NumeralPipe,
296
- CanUploadFilePipe,
297
- RemoveNewlinePipe,
298
- ConvertToStylePipe,
299
- FilterPipe,
300
- FilterTabPipe,
301
- FilterStringPipe,
302
- FioriIconPipe,
303
- SortPipe,
304
- GroupByPipe,
305
- MultipleGroupByPipe,
306
- MoValuePipe,
307
- MoReportValuePipe,
308
- HeaderFacetValuePipe,
309
- PictureFieldSourcePipe,
310
- TlbButtonsPipe,
311
- SeperatorFixPipe,
312
- MoReportValueConcatPipe,
313
- ContextMenuPipe,
314
- BbbTranslatePipe,
315
- BarsaIconDictPipe,
316
- FileInfoCountPipe,
317
- ControlUiPipe,
318
- VisibleValuePipe,
319
- DateTimeToCaptionPipe,
320
- FilterToolbarControlPipe,
321
- ListCountPipe,
322
- TotalSummaryPipe,
323
- MergeFieldsToColumnsPipe,
324
- FindColumnByDbNamePipe,
325
- FilterColumnsByDetailsPipe,
326
- MoInfoUlvMoListPipe,
327
- MoInfoUlvPagingPipe,
328
- ReversePipe,
329
- ColumnCustomUiPipe,
330
- SanitizeTextPipe,
331
- ColumnCustomComponentPipe,
332
- ColumnIconPipe,
333
- ColumnValuePipe,
334
- RowNumberPipe,
335
- ComboRowImagePipe,
336
- IsExpandedNodePipe,
337
- ThImageOrIconePipe,
338
- FindPreviewColumnPipe,
339
- ReplacePipe,
340
- FilterWorkflowInMobilePipe,
341
- HideColumnsInmobilePipe,
342
- StringToNumberPipe,
343
- ColumnValueOfParametersPipe,
344
- HideAcceptCancelButtonsPipe,
345
- FilterInlineActionListPipe,
346
- IsImagePipe,
347
- ToolbarSettingsPipe,
348
- CardMediaSizePipe, PlaceHolderDirective,
349
- NumbersOnlyInputDirective,
350
- RenderUlvViewerDirective,
351
- RenderUlvPaginDirective,
352
- AnchorScrollDirective,
353
- ItemsRendererDirective,
354
- UlvCommandDirective,
355
- DynamicCommandDirective,
356
- WorfkflowwChoiceCommandDirective,
357
- ImageLazyDirective,
358
- UntilInViewDirective,
359
- IntersectionObserverDirective,
360
- EllipsifyDirective,
361
- TableResizerDirective,
362
- ColumnResizerDirective,
363
- AttrRtlDirective,
364
- CopyDirective,
365
- EllapsisTextDirective,
366
- FillEmptySpaceDirective,
367
- FormCloseDirective,
368
- MobileDirective,
369
- BodyClickDirective,
370
- CountDownDirective,
371
- RouteFormChangeDirective,
372
- DynamicStyleDirective,
373
- NowraptextDirective,
374
- LabelmandatoryDirective,
375
- AbsoluteDivBodyDirective,
376
- LoadExternalFilesDirective,
377
- StopPropagationDirective,
378
- PreventDefaultDirective,
379
- RenderUlvDirective,
380
- PrintFilesDirective,
381
- SaveImageDirective,
382
- WebOtpDirective,
383
- SplideSliderDirective], imports: [CommonModule,
384
- BarsaNovinRayCoreRoutingModule,
385
- BarsaSapUiFormPageModule,
386
- ResizableModule,
387
- FormsModule,
388
- ReactiveFormsModule], exports: [FormComponent,
389
- FieldUiComponent,
390
- NotFoundComponent,
391
- RootPageComponent,
392
- RootPortalComponent,
393
- ReportContainerComponent,
394
- FormNewComponent,
395
- ModalRootComponent,
396
- PortalPageComponent,
397
- PortalPageSidebarComponent,
398
- RedirectReportNavigatorCommandComponent,
399
- EmptyPageWithRouterAndRouterOutletComponent,
400
- DynamicItemComponent,
401
- DynamicFormComponent,
402
- BaseDynamicComponent,
403
- DynamicFormToolbaritemComponent,
404
- DynamicLayoutComponent,
405
- EmptyPageComponent,
406
- FormPageComponent,
407
- FormFieldReportPageComponent,
408
- ButtonLoadingComponent,
409
- UnlimitSessionComponent, NumeralPipe,
410
- CanUploadFilePipe,
411
- RemoveNewlinePipe,
412
- ConvertToStylePipe,
413
- FilterPipe,
414
- FilterTabPipe,
415
- FilterStringPipe,
416
- FioriIconPipe,
417
- SortPipe,
418
- GroupByPipe,
419
- MultipleGroupByPipe,
420
- MoValuePipe,
421
- MoReportValuePipe,
422
- HeaderFacetValuePipe,
423
- PictureFieldSourcePipe,
424
- TlbButtonsPipe,
425
- SeperatorFixPipe,
426
- MoReportValueConcatPipe,
427
- ContextMenuPipe,
428
- BbbTranslatePipe,
429
- BarsaIconDictPipe,
430
- FileInfoCountPipe,
431
- ControlUiPipe,
432
- VisibleValuePipe,
433
- DateTimeToCaptionPipe,
434
- FilterToolbarControlPipe,
435
- ListCountPipe,
436
- TotalSummaryPipe,
437
- MergeFieldsToColumnsPipe,
438
- FindColumnByDbNamePipe,
439
- FilterColumnsByDetailsPipe,
440
- MoInfoUlvMoListPipe,
441
- MoInfoUlvPagingPipe,
442
- ReversePipe,
443
- ColumnCustomUiPipe,
444
- SanitizeTextPipe,
445
- ColumnCustomComponentPipe,
446
- ColumnIconPipe,
447
- ColumnValuePipe,
448
- RowNumberPipe,
449
- ComboRowImagePipe,
450
- IsExpandedNodePipe,
451
- ThImageOrIconePipe,
452
- FindPreviewColumnPipe,
453
- ReplacePipe,
454
- FilterWorkflowInMobilePipe,
455
- HideColumnsInmobilePipe,
456
- StringToNumberPipe,
457
- ColumnValueOfParametersPipe,
458
- HideAcceptCancelButtonsPipe,
459
- FilterInlineActionListPipe,
460
- IsImagePipe,
461
- ToolbarSettingsPipe,
462
- CardMediaSizePipe, PlaceHolderDirective,
463
- NumbersOnlyInputDirective,
464
- RenderUlvViewerDirective,
465
- RenderUlvPaginDirective,
466
- AnchorScrollDirective,
467
- ItemsRendererDirective,
468
- UlvCommandDirective,
469
- DynamicCommandDirective,
470
- WorfkflowwChoiceCommandDirective,
471
- ImageLazyDirective,
472
- UntilInViewDirective,
473
- IntersectionObserverDirective,
474
- EllipsifyDirective,
475
- TableResizerDirective,
476
- ColumnResizerDirective,
477
- AttrRtlDirective,
478
- CopyDirective,
479
- EllapsisTextDirective,
480
- FillEmptySpaceDirective,
481
- FormCloseDirective,
482
- MobileDirective,
483
- BodyClickDirective,
484
- CountDownDirective,
485
- RouteFormChangeDirective,
486
- DynamicStyleDirective,
487
- NowraptextDirective,
488
- LabelmandatoryDirective,
489
- AbsoluteDivBodyDirective,
490
- LoadExternalFilesDirective,
491
- StopPropagationDirective,
492
- PreventDefaultDirective,
493
- RenderUlvDirective,
494
- PrintFilesDirective,
495
- SaveImageDirective,
496
- WebOtpDirective,
497
- SplideSliderDirective] }); }
498
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaNovinRayCoreModule, providers: [provideHttpClient(withInterceptorsFromDi())], imports: [CommonModule,
499
- BarsaNovinRayCoreRoutingModule,
500
- BarsaSapUiFormPageModule,
501
- ResizableModule,
502
- FormsModule,
503
- ReactiveFormsModule] }); }
504
- }
505
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaNovinRayCoreModule, decorators: [{
506
- type: NgModule,
507
- args: [{
508
- declarations: [...components, ...pipes, ...directives],
509
- exports: [...components, ...pipes, ...directives],
510
- schemas: [NO_ERRORS_SCHEMA],
511
- imports: [
512
- CommonModule,
513
- BarsaNovinRayCoreRoutingModule,
514
- BarsaSapUiFormPageModule,
515
- ResizableModule,
516
- FormsModule,
517
- ReactiveFormsModule
518
- ],
519
- providers: [provideHttpClient(withInterceptorsFromDi())]
520
- }]
521
- }], ctorParameters: () => [{ type: i1.DynamicComponentService }, { type: i0.ComponentFactoryResolver }] });
522
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2Etbm92aW4tcmF5LWNvcmUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etbm92aW4tcmF5LWNvcmUvc3JjL2xpYi9iYXJzYS1ub3Zpbi1yYXktY29yZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILGVBQWUsRUFFZixZQUFZLEVBRVosUUFBUSxFQUNSLGdCQUFnQixFQUNuQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakYsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDekYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDN0UsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdkYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7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LEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxVQUFVLENBQUM7b0JBQ2pELE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO29CQUMzQixPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWiw4QkFBOEI7d0JBQzlCLHdCQUF3Qjt3QkFDeEIsZUFBZTt3QkFDZixXQUFXO3dCQUNYLG1CQUFtQjtxQkFDdEI7b0JBQ0QsU0FBUyxFQUFFLENBQUMsaUJBQWlCLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDO2lCQUMzRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBBUFBfSU5JVElBTElaRVIsXHJcbiAgICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICBFcnJvckhhbmRsZXIsXHJcbiAgICBNb2R1bGVXaXRoUHJvdmlkZXJzLFxyXG4gICAgTmdNb2R1bGUsXHJcbiAgICBOT19FUlJPUlNfU0NIRU1BXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IHByb3ZpZGVIdHRwQ2xpZW50LCB3aXRoSW50ZXJjZXB0b3JzRnJvbURpIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBpc0luTG9jYWxNb2RlIH0gZnJvbSAnLi9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IEZvcm1Db21wb25lbnQgfSBmcm9tICcuL2Zvcm0vZm9ybS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGaWVsZFVpQ29tcG9uZW50IH0gZnJvbSAnLi9maWVsZC11aS9maWVsZC11aS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSZXBvcnRDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuL3JlcG9ydC1jb250YWluZXIvcmVwb3J0LWNvbnRhaW5lci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBbmNob3JTY3JvbGxEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvYW5jaG9yLXNjcm9sbC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBCYXJzYU5vdmluUmF5Q29yZVJvdXRpbmdNb2R1bGUgfSBmcm9tICcuL2JhcnNhLW5vdmluLXJheS1jb3JlLXJvdXRpbmcubW9kdWxlJztcclxuaW1wb3J0IHsgTW9kYWxSb290Q29tcG9uZW50IH0gZnJvbSAnLi9tb2RhbC1yb290LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvcm1OZXdDb21wb25lbnQgfSBmcm9tICcuL2Zvcm0tbmV3L2Zvcm0tbmV3LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJvb3RQb3J0YWxDb21wb25lbnQgfSBmcm9tICcuL3Jvb3QtcG9ydGFsL3Jvb3QtcG9ydGFsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEF1dGhHdWFyZCB9IGZyb20gJy4vYXV0aC1ndWFyZCc7XHJcblxyXG5pbXBvcnQge1xyXG4gICAgRHluYW1pY0Zvcm1Db21wb25lbnQsXHJcbiAgICBEeW5hbWljSXRlbUNvbXBvbmVudCxcclxuICAgIEJhc2VEeW5hbWljQ29tcG9uZW50LFxyXG4gICAgRHluYW1pY0Zvcm1Ub29sYmFyaXRlbUNvbXBvbmVudCxcclxuICAgIER5bmFtaWNMYXlvdXRDb21wb25lbnRcclxufSBmcm9tICcuL2R5bmFtaWMtY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmVkaXJlY3RIb21lR3VhcmQgfSBmcm9tICcuL3JlZGlyZWN0LWhvbWUtZ3VhcmQnO1xyXG5pbXBvcnQgeyBOb3RGb3VuZENvbXBvbmVudCB9IGZyb20gJy4vbm90LWZvdW5kL25vdC1mb3VuZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSb290UGFnZUNvbXBvbmVudCB9IGZyb20gJy4vcm9vdC1wYWdlL3Jvb3QtcGFnZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCYXNlTW9kdWxlIH0gZnJvbSAnLi9iYXNlLm1vZHVsZSc7XHJcbmltcG9ydCB7IFBvcnRhbFBhZ2VDb21wb25lbnQgfSBmcm9tICcuL3BvcnRhbC1wYWdlL3BvcnRhbC1wYWdlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEdsb2JhbEVycm9ySGFuZGxlciB9IGZyb20gJy4vZ2xvYmFsLWVycm9yLWhhbmRsZXInO1xyXG5cclxuaW1wb3J0IHsgUmVkaXJlY3RSZXBvcnROYXZpZ2F0b3JDb21tYW5kQ29tcG9uZW50IH0gZnJvbSAnLi9yZWRpcmVjdC1yZXBvcnQtbmF2aWdhdG9yLWNvbW1hbmQvcmVkaXJlY3QtcmVwb3J0LW5hdmlnYXRvci1jb21tYW5kLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEVtcHR5UGFnZVdpdGhSb3V0ZXJBbmRSb3V0ZXJPdXRsZXRDb21wb25lbnQgfSBmcm9tICcuL2VtcHR5LXBhZ2Utd2l0aC1yb3V0ZXItYW5kLXJvdXRlci1vdXRsZXQvZW1wdHktcGFnZS13aXRoLXJvdXRlci1hbmQtcm91dGVyLW91dGxldC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCdXR0b25Mb2FkaW5nQ29tcG9uZW50IH0gZnJvbSAnLi9idXR0b24tbG9hZGluZy9idXR0b24tbG9hZGluZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVbmxpbWl0U2Vzc2lvbkNvbXBvbmVudCB9IGZyb20gJy4vdW5saW1pdC1zZXNzaW9uL3VubGltaXQtc2Vzc2lvbi5jb21wb25lbnQnO1xyXG5cclxuaW1wb3J0IHsgRW1wdHlQYWdlQ29tcG9uZW50IH0gZnJvbSAnLi9lbXB0eS1wYWdlL2VtcHR5LXBhZ2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmFyc2FBcGkgfSBmcm9tICcuL2Fic3RyYWN0LWNsYXNzZXMvYmFyc2EtYXBpJztcclxuaW1wb3J0IHsgRm9ybVBhZ2VDb21wb25lbnQgfSBmcm9tICcuL2Fic3RyYWN0LWNsYXNzZXMvZm9ybS1wYWdlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvcm1GaWVsZFJlcG9ydFBhZ2VDb21wb25lbnQgfSBmcm9tICcuL2Fic3RyYWN0LWNsYXNzZXMnO1xyXG5pbXBvcnQgeyBQb3J0YWxQYWdlU2lkZWJhckNvbXBvbmVudCB9IGZyb20gJy4vcG9ydGFsLXBhZ2UvcG9ydGFsLXNpZGViYXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmFyc2FTYXBVaUZvcm1QYWdlTW9kdWxlIH0gZnJvbSAnLi9mb3JtLXBhZ2Utcm91dGluZyc7XHJcbmltcG9ydCB7IFJlc2l6YWJsZU1vZHVsZSB9IGZyb20gJy4vcmVzaXphYmxlLW1vZHVsZS9yZXNpemFibGUubW9kdWxlJztcclxuaW1wb3J0IHtcclxuICAgIEJyZWFkY3J1bWJTZXJ2aWNlLFxyXG4gICAgVXBsb2FkU2VydmljZSxcclxuICAgIEFwaVNlcnZpY2UsXHJcbiAgICBMb2dTZXJ2aWNlLFxyXG4gICAgQmFyc2FEaWFsb2dTZXJ2aWNlLFxyXG4gICAgUG9ydGFsU2VydmljZSxcclxuICAgIFVpU2VydmljZSxcclxuICAgIExheW91dFNlcnZpY2UsXHJcbiAgICBUYWJwYWdlU2VydmljZSxcclxuICAgIER5bmFtaWNDb21wb25lbnRTZXJ2aWNlLFxyXG4gICAgTmV0d29ya1N0YXR1c1NlcnZpY2UsXHJcbiAgICBBdWRpb1JlY29yZGluZ1NlcnZpY2UsXHJcbiAgICBWaWRlb1JlY29yZGluZ1NlcnZpY2UsXHJcbiAgICBQcm9tcHRVcGRhdGVTZXJ2aWNlLFxyXG4gICAgQmFyc2FTdG9yYWdlU2VydmljZSxcclxuICAgIExvY2FsU3RvcmFnZVNlcnZpY2UsXHJcbiAgICBJbmRleGVkRGJTZXJ2aWNlLFxyXG4gICAgTm90aWZpY2F0aW9uU2VydmljZSxcclxuICAgIFNlcnZpY2VXb3JrZXJOb3RpZmljYXRpb25TZXJ2aWNlLFxyXG4gICAgU2VydmljZVdvcmtlckNvbW11bmNhdGlvblNlcnZpY2UsXHJcbiAgICBTYXZlU2Nyb2xsUG9zaXRpb25TZXJ2aWNlXHJcbn0gZnJvbSAnLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7XHJcbiAgICBEeW5hbWljQ29tbWFuZERpcmVjdGl2ZSxcclxuICAgIEl0ZW1zUmVuZGVyZXJEaXJlY3RpdmUsXHJcbiAgICBOdW1iZXJzT25seUlucHV0RGlyZWN0aXZlLFxyXG4gICAgUGxhY2VIb2xkZXJEaXJlY3RpdmUsXHJcbiAgICBSZW5kZXJVbHZQYWdpbkRpcmVjdGl2ZSxcclxuICAgIEltYWdlTGF6eURpcmVjdGl2ZSxcclxuICAgIFVudGlsSW5WaWV3RGlyZWN0aXZlLFxyXG4gICAgSW50ZXJzZWN0aW9uT2JzZXJ2ZXJEaXJlY3RpdmUsXHJcbiAgICBFbGxpcHNpZnlEaXJlY3RpdmUsXHJcbiAgICBUYWJsZVJlc2l6ZXJEaXJlY3RpdmUsXHJcbiAgICBDb2x1bW5SZXNpemVyRGlyZWN0aXZlLFxyXG4gICAgQXR0clJ0bERpcmVjdGl2ZSxcclxuICAgIFJlbmRlclVsdlZpZXdlckRpcmVjdGl2ZSxcclxuICAgIFVsdkNvbW1hbmREaXJlY3RpdmUsXHJcbiAgICBXb3Jma2Zsb3d3Q2hvaWNlQ29tbWFuZERpcmVjdGl2ZSxcclxuICAgIENvcHlEaXJlY3RpdmUsXHJcbiAgICBFbGxhcHNpc1RleHREaXJlY3RpdmUsXHJcbiAgICBGaWxsRW1wdHlTcGFjZURpcmVjdGl2ZSxcclxuICAgIEZvcm1DbG9zZURpcmVjdGl2ZSxcclxuICAgIE1vYmlsZURpcmVjdGl2ZSxcclxuICAgIEJvZHlDbGlja0RpcmVjdGl2ZSxcclxuICAgIENvdW50RG93bkRpcmVjdGl2ZSxcclxuICAgIFJvdXRlRm9ybUNoYW5nZURpcmVjdGl2ZSxcclxuICAgIER5bmFtaWNTdHlsZURpcmVjdGl2ZSxcclxuICAgIE5vd3JhcHRleHREaXJlY3RpdmUsXHJcbiAgICBMYWJlbG1hbmRhdG9yeURpcmVjdGl2ZSxcclxuICAgIEFic29sdXRlRGl2Qm9keURpcmVjdGl2ZSxcclxuICAgIExvYWRFeHRlcm5hbEZpbGVzRGlyZWN0aXZlLFxyXG4gICAgU3RvcFByb3BhZ2F0aW9uRGlyZWN0aXZlLFxyXG4gICAgUHJldmVudERlZmF1bHREaXJlY3RpdmUsXHJcbiAgICBSZW5kZXJVbHZEaXJlY3RpdmUsXHJcbiAgICBQcmludEZpbGVzRGlyZWN0aXZlLFxyXG4gICAgU2F2ZUltYWdlRGlyZWN0aXZlLFxyXG4gICAgV2ViT3RwRGlyZWN0aXZlLFxyXG4gICAgU3BsaWRlU2xpZGVyRGlyZWN0aXZlXHJcbn0gZnJvbSAnLi9kaXJlY3RpdmVzJztcclxuaW1wb3J0IHtcclxuICAgIE51bWVyYWxQaXBlLFxyXG4gICAgQ2FuVXBsb2FkRmlsZVBpcGUsXHJcbiAgICBSZW1vdmVOZXdsaW5lUGlwZSxcclxuICAgIENvbnZlcnRUb1N0eWxlUGlwZSxcclxuICAgIEZpbHRlclBpcGUsXHJcbiAgICBGaWx0ZXJUYWJQaXBlLFxyXG4gICAgRmlsdGVyU3RyaW5nUGlwZSxcclxuICAgIEZpb3JpSWNvblBpcGUsXHJcbiAgICBTb3J0UGlwZSxcclxuICAgIEdyb3VwQnlQaXBlLFxyXG4gICAgTXVsdGlwbGVHcm91cEJ5UGlwZSxcclxuICAgIE1vVmFsdWVQaXBlLFxyXG4gICAgTW9SZXBvcnRWYWx1ZVBpcGUsXHJcbiAgICBIZWFkZXJGYWNldFZhbHVlUGlwZSxcclxuICAgIFBpY3R1cmVGaWVsZFNvdXJjZVBpcGUsXHJcbiAgICBUbGJCdXR0b25zUGlwZSxcclxuICAgIFNlcGVyYXRvckZpeFBpcGUsXHJcbiAgICBNb1JlcG9ydFZhbHVlQ29uY2F0UGlwZSxcclxuICAgIENvbnRleHRNZW51UGlwZSxcclxuICAgIEJiYlRyYW5zbGF0ZVBpcGUsXHJcbiAgICBCYXJzYUljb25EaWN0UGlwZSxcclxuICAgIEZpbGVJbmZvQ291bnRQaXBlLFxyXG4gICAgQ29udHJvbFVpUGlwZSxcclxuICAgIFZpc2libGVWYWx1ZVBpcGUsXHJcbiAgICBEYXRlVGltZVRvQ2FwdGlvblBpcGUsXHJcbiAgICBGaWx0ZXJUb29sYmFyQ29udHJvbFBpcGUsXHJcbiAgICBMaXN0Q291bnRQaXBlLFxyXG4gICAgVG90YWxTdW1tYXJ5UGlwZSxcclxuICAgIE1lcmdlRmllbGRzVG9Db2x1bW5zUGlwZSxcclxuICAgIEZpbmRDb2x1bW5CeURiTmFtZVBpcGUsXHJcbiAgICBGaWx0ZXJDb2x1bW5zQnlEZXRhaWxzUGlwZSxcclxuICAgIE1vSW5mb1Vsdk1vTGlzdFBpcGUsXHJcbiAgICBNb0luZm9VbHZQYWdpbmdQaXBlLFxyXG4gICAgUmV2ZXJzZVBpcGUsXHJcbiAgICBDb2x1bW5DdXN0b21VaVBpcGUsXHJcbiAgICBTYW5pdGl6ZVRleHRQaXBlLFxyXG4gICAgQ29sdW1uQ3VzdG9tQ29tcG9uZW50UGlwZSxcclxuICAgIENvbHVtbkljb25QaXBlLFxyXG4gICAgQ29sdW1uVmFsdWVQaXBlLFxyXG4gICAgUm93TnVtYmVyUGlwZSxcclxuICAgIENvbWJvUm93SW1hZ2VQaXBlLFxyXG4gICAgSXNFeHBhbmRlZE5vZGVQaXBlLFxyXG4gICAgVGhJbWFnZU9ySWNvbmVQaXBlLFxyXG4gICAgRmluZFByZXZpZXdDb2x1bW5QaXBlLFxyXG4gICAgUmVwbGFjZVBpcGUsXHJcbiAgICBGaWx0ZXJXb3JrZmxvd0luTW9iaWxlUGlwZSxcclxuICAgIEhpZGVDb2x1bW5zSW5tb2JpbGVQaXBlLFxyXG4gICAgU3RyaW5nVG9OdW1iZXJQaXBlLFxyXG4gICAgQ29sdW1uVmFsdWVPZlBhcmFtZXRlcnNQaXBlLFxyXG4gICAgSGlkZUFjY2VwdENhbmNlbEJ1dHRvbnNQaXBlLFxyXG4gICAgRmlsdGVySW5saW5lQWN0aW9uTGlzdFBpcGUsXHJcbiAgICBJc0ltYWdlUGlwZSxcclxuICAgIFRvb2xiYXJTZXR0aW5nc1BpcGUsXHJcbiAgICBDYXJkTWVkaWFTaXplUGlwZVxyXG59IGZyb20gJy4vcGlwZXMnO1xyXG5cclxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXZhclxyXG5kZWNsYXJlIHZhciBCQkI6IGFueTtcclxuXHJcbmNvbnN0IGNvbXBvbmVudHMgPSBbXHJcbiAgICBGb3JtQ29tcG9uZW50LFxyXG4gICAgRmllbGRVaUNvbXBvbmVudCxcclxuICAgIE5vdEZvdW5kQ29tcG9uZW50LFxyXG4gICAgUm9vdFBhZ2VDb21wb25lbnQsXHJcbiAgICBSb290UG9ydGFsQ29tcG9uZW50LFxyXG4gICAgUmVwb3J0Q29udGFpbmVyQ29tcG9uZW50LFxyXG4gICAgRm9ybU5ld0NvbXBvbmVudCxcclxuICAgIE1vZGFsUm9vdENvbXBvbmVudCxcclxuICAgIFBvcnRhbFBhZ2VDb21wb25lbnQsXHJcbiAgICBQb3J0YWxQYWdlU2lkZWJhckNvbXBvbmVudCxcclxuICAgIFJlZGlyZWN0UmVwb3J0TmF2aWdhdG9yQ29tbWFuZENvbXBvbmVudCxcclxuICAgIEVtcHR5UGFnZVdpdGhSb3V0ZXJBbmRSb3V0ZXJPdXRsZXRDb21wb25lbnQsXHJcbiAgICBEeW5hbWljSXRlbUNvbXBvbmVudCxcclxuICAgIER5bmFtaWNGb3JtQ29tcG9uZW50LFxyXG4gICAgQmFzZUR5bmFtaWNDb21wb25lbnQsXHJcbiAgICBEeW5hbWljRm9ybVRvb2xiYXJpdGVtQ29tcG9uZW50LFxyXG4gICAgRHluYW1pY0xheW91dENvbXBvbmVudCxcclxuICAgIEVtcHR5UGFnZUNvbXBvbmVudCxcclxuICAgIEZvcm1QYWdlQ29tcG9uZW50LFxyXG4gICAgRm9ybUZpZWxkUmVwb3J0UGFnZUNvbXBvbmVudCxcclxuICAgIEJ1dHRvbkxvYWRpbmdDb21wb25lbnQsXHJcbiAgICBVbmxpbWl0U2Vzc2lvbkNvbXBvbmVudFxyXG5dO1xyXG5jb25zdCBkaXJlY3RpdmVzID0gW1xyXG4gICAgUGxhY2VIb2xkZXJEaXJlY3RpdmUsXHJcbiAgICBOdW1iZXJzT25seUlucHV0RGlyZWN0aXZlLFxyXG4gICAgUmVuZGVyVWx2Vmlld2VyRGlyZWN0aXZlLFxyXG4gICAgUmVuZGVyVWx2UGFnaW5EaXJlY3RpdmUsXHJcbiAgICBBbmNob3JTY3JvbGxEaXJlY3RpdmUsXHJcbiAgICBJdGVtc1JlbmRlcmVyRGlyZWN0aXZlLFxyXG4gICAgVWx2Q29tbWFuZERpcmVjdGl2ZSxcclxuICAgIER5bmFtaWNDb21tYW5kRGlyZWN0aXZlLFxyXG4gICAgV29yZmtmbG93d0Nob2ljZUNvbW1hbmREaXJlY3RpdmUsXHJcbiAgICBJbWFnZUxhenlEaXJlY3RpdmUsXHJcbiAgICBVbnRpbEluVmlld0RpcmVjdGl2ZSxcclxuICAgIEludGVyc2VjdGlvbk9ic2VydmVyRGlyZWN0aXZlLFxyXG4gICAgRWxsaXBzaWZ5RGlyZWN0aXZlLFxyXG4gICAgVGFibGVSZXNpemVyRGlyZWN0aXZlLFxyXG4gICAgQ29sdW1uUmVzaXplckRpcmVjdGl2ZSxcclxuICAgIEF0dHJSdGxEaXJlY3RpdmUsXHJcbiAgICBDb3B5RGlyZWN0aXZlLFxyXG4gICAgRWxsYXBzaXNUZXh0RGlyZWN0aXZlLFxyXG4gICAgRmlsbEVtcHR5U3BhY2VEaXJlY3RpdmUsXHJcbiAgICBGb3JtQ2xvc2VEaXJlY3RpdmUsXHJcbiAgICBNb2JpbGVEaXJlY3RpdmUsXHJcbiAgICBCb2R5Q2xpY2tEaXJlY3RpdmUsXHJcbiAgICBDb3VudERvd25EaXJlY3RpdmUsXHJcbiAgICBSb3V0ZUZvcm1DaGFuZ2VEaXJlY3RpdmUsXHJcbiAgICBEeW5hbWljU3R5bGVEaXJlY3RpdmUsXHJcbiAgICBOb3dyYXB0ZXh0RGlyZWN0aXZlLFxyXG4gICAgTGFiZWxtYW5kYXRvcnlEaXJlY3RpdmUsXHJcbiAgICBBYnNvbHV0ZURpdkJvZHlEaXJlY3RpdmUsXHJcbiAgICBMb2FkRXh0ZXJuYWxGaWxlc0RpcmVjdGl2ZSxcclxuICAgIFN0b3BQcm9wYWdhdGlvbkRpcmVjdGl2ZSxcclxuICAgIFByZXZlbnREZWZhdWx0RGlyZWN0aXZlLFxyXG4gICAgUmVuZGVyVWx2RGlyZWN0aXZlLFxyXG4gICAgUHJpbnRGaWxlc0RpcmVjdGl2ZSxcclxuICAgIFNhdmVJbWFnZURpcmVjdGl2ZSxcclxuICAgIFdlYk90cERpcmVjdGl2ZSxcclxuICAgIFNwbGlkZVNsaWRlckRpcmVjdGl2ZVxyXG5dO1xyXG5jb25zdCBwaXBlcyA9IFtcclxuICAgIE51bWVyYWxQaXBlLFxyXG4gICAgQ2FuVXBsb2FkRmlsZVBpcGUsXHJcbiAgICBSZW1vdmVOZXdsaW5lUGlwZSxcclxuICAgIENvbnZlcnRUb1N0eWxlUGlwZSxcclxuICAgIEZpbHRlclBpcGUsXHJcbiAgICBGaWx0ZXJUYWJQaXBlLFxyXG4gICAgRmlsdGVyU3RyaW5nUGlwZSxcclxuICAgIEZpb3JpSWNvblBpcGUsXHJcbiAgICBTb3J0UGlwZSxcclxuICAgIEdyb3VwQnlQaXBlLFxyXG4gICAgTXVsdGlwbGVHcm91cEJ5UGlwZSxcclxuICAgIE1vVmFsdWVQaXBlLFxyXG4gICAgTW9SZXBvcnRWYWx1ZVBpcGUsXHJcbiAgICBIZWFkZXJGYWNldFZhbHVlUGlwZSxcclxuICAgIFBpY3R1cmVGaWVsZFNvdXJjZVBpcGUsXHJcbiAgICBUbGJCdXR0b25zUGlwZSxcclxuICAgIFNlcGVyYXRvckZpeFBpcGUsXHJcbiAgICBNb1JlcG9ydFZhbHVlQ29uY2F0UGlwZSxcclxuICAgIENvbnRleHRNZW51UGlwZSxcclxuICAgIEJiYlRyYW5zbGF0ZVBpcGUsXHJcbiAgICBCYXJzYUljb25EaWN0UGlwZSxcclxuICAgIEZpbGVJbmZvQ291bnRQaXBlLFxyXG4gICAgQ29udHJvbFVpUGlwZSxcclxuICAgIFZpc2libGVWYWx1ZVBpcGUsXHJcbiAgICBEYXRlVGltZVRvQ2FwdGlvblBpcGUsXHJcbiAgICBGaWx0ZXJUb29sYmFyQ29udHJvbFBpcGUsXHJcbiAgICBMaXN0Q291bnRQaXBlLFxyXG4gICAgVG90YWxTdW1tYXJ5UGlwZSxcclxuICAgIE1lcmdlRmllbGRzVG9Db2x1bW5zUGlwZSxcclxuICAgIEZpbmRDb2x1bW5CeURiTmFtZVBpcGUsXHJcbiAgICBGaWx0ZXJDb2x1bW5zQnlEZXRhaWxzUGlwZSxcclxuICAgIE1vSW5mb1Vsdk1vTGlzdFBpcGUsXHJcbiAgICBNb0luZm9VbHZQYWdpbmdQaXBlLFxyXG4gICAgUmV2ZXJzZVBpcGUsXHJcbiAgICBDb2x1bW5DdXN0b21VaVBpcGUsXHJcbiAgICBTYW5pdGl6ZVRleHRQaXBlLFxyXG4gICAgQ29sdW1uQ3VzdG9tQ29tcG9uZW50UGlwZSxcclxuICAgIENvbHVtbkljb25QaXBlLFxyXG4gICAgQ29sdW1uVmFsdWVQaXBlLFxyXG4gICAgUm93TnVtYmVyUGlwZSxcclxuICAgIENvbWJvUm93SW1hZ2VQaXBlLFxyXG4gICAgSXNFeHBhbmRlZE5vZGVQaXBlLFxyXG4gICAgVGhJbWFnZU9ySWNvbmVQaXBlLFxyXG4gICAgRmluZFByZXZpZXdDb2x1bW5QaXBlLFxyXG4gICAgUmVwbGFjZVBpcGUsXHJcbiAgICBGaWx0ZXJXb3JrZmxvd0luTW9iaWxlUGlwZSxcclxuICAgIEhpZGVDb2x1bW5zSW5tb2JpbGVQaXBlLFxyXG4gICAgU3RyaW5nVG9OdW1iZXJQaXBlLFxyXG4gICAgQ29sdW1uVmFsdWVPZlBhcmFtZXRlcnNQaXBlLFxyXG4gICAgSGlkZUFjY2VwdENhbmNlbEJ1dHRvbnNQaXBlLFxyXG4gICAgRmlsdGVySW5saW5lQWN0aW9uTGlzdFBpcGUsXHJcbiAgICBJc0ltYWdlUGlwZSxcclxuICAgIFRvb2xiYXJTZXR0aW5nc1BpcGUsXHJcbiAgICBDYXJkTWVkaWFTaXplUGlwZVxyXG5dO1xyXG5jb25zdCBmdW5jdGlvbkwxID0gZnVuY3Rpb24gKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKEJhcnNhQXBpLkxvZ2luRm9ybURhdGEuQ3VsdHVyZSA9PT0gJ2ZhLUlSJykge1xyXG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcclxuICAgIH1cclxuICAgIHJldHVybiBmZXRjaChgL0xvY2FsaXphdGlvbi9UcmFuc2xhdGlvbi9kYXRhXyR7QmFyc2FBcGkuTG9naW5Gb3JtRGF0YS5DdWx0dXJlfS5qc29uYClcclxuICAgICAgICAudGhlbihmdW5jdGlvbiAocmVzKSB7XHJcbiAgICAgICAgICAgIHJldHVybiByZXMuanNvbigpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlcykge1xyXG4gICAgICAgICAgICBpZiAoQkJCKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZVxyXG4gICAgICAgICAgICAgICAgQkJCID0geyAuLi5CYXJzYUFwaS5CQkIsIC4uLnJlcyB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbn07XHJcbmNvbnN0IGZ1bmN0aW9uTDIgPSBmdW5jdGlvbiAocG9ydGFsU2VydmljZTogUG9ydGFsU2VydmljZSwgdGl0bGVTZXJ2aWNlOiBUaXRsZSk6IFByb21pc2U8YW55PiB7XHJcbiAgICBwb3J0YWxTZXJ2aWNlLmxvYWRVc2VyUG9ydGFsU2V0dGluZygpO1xyXG4gICAgcG9ydGFsU2VydmljZS5sb2FkUG9ydGFsRGF0YVN5bmMoKTtcclxuICAgIGlmIChwb3J0YWxTZXJ2aWNlLnBvcnRhbERhdGE/LlRpdGxlKSB7XHJcbiAgICAgICAgdGl0bGVTZXJ2aWNlLnNldFRpdGxlKHBvcnRhbFNlcnZpY2UucG9ydGFsRGF0YT8uVGl0bGUpO1xyXG4gICAgfVxyXG4gICAgaWYgKEJhcnNhQXBpLkxvZ2luRm9ybURhdGEuSXNBbm9ueW1vdXMgJiYgIUJhcnNhQXBpLkxvZ2luRm9ybURhdGEuSXNTZXJ2aWNlRGVzaykge1xyXG4gICAgICAgIHJldHVybiBwb3J0YWxTZXJ2aWNlLmxvYWRTeXN0ZW0oQmFyc2FBcGkuTG9naW5Gb3JtRGF0YS5Qb3J0YWxTeXN0ZW1JZCk7IC8vIGxvZ2luIGZvcm0gbmVlZCBqdXN0IHBvcnRhbCBzeXN0ZW1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHBvcnRhbFNlcnZpY2UubG9hZFN5c3RlbSgpOyAvLyBsb2FkIGFsbCBzeXN0ZW1zIGlmIHVzZXIgaXMgbG9nZ2VkIGluXHJcbiAgICB9XHJcbn07XHJcbkBOZ01vZHVsZSh7XHJcbiAgICBkZWNsYXJhdGlvbnM6IFsuLi5jb21wb25lbnRzLCAuLi5waXBlcywgLi4uZGlyZWN0aXZlc10sXHJcbiAgICBleHBvcnRzOiBbLi4uY29tcG9uZW50cywgLi4ucGlwZXMsIC4uLmRpcmVjdGl2ZXNdLFxyXG4gICAgc2NoZW1hczogW05PX0VSUk9SU19TQ0hFTUFdLFxyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIENvbW1vbk1vZHVsZSxcclxuICAgICAgICBCYXJzYU5vdmluUmF5Q29yZVJvdXRpbmdNb2R1bGUsXHJcbiAgICAgICAgQmFyc2FTYXBVaUZvcm1QYWdlTW9kdWxlLFxyXG4gICAgICAgIFJlc2l6YWJsZU1vZHVsZSxcclxuICAgICAgICBGb3Jtc01vZHVsZSxcclxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlXHJcbiAgICBdLFxyXG4gICAgcHJvdmlkZXJzOiBbcHJvdmlkZUh0dHBDbGllbnQod2l0aEludGVyY2VwdG9yc0Zyb21EaSgpKV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEJhcnNhTm92aW5SYXlDb3JlTW9kdWxlIGV4dGVuZHMgQmFzZU1vZHVsZSB7XHJcbiAgICBwcm90ZWN0ZWQgZHluYW1pY0NvbXBvbmVudHMgPSBbLi4uY29tcG9uZW50c107XHJcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZGNtOiBEeW5hbWljQ29tcG9uZW50U2VydmljZSwgcHJvdGVjdGVkIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyKSB7XHJcbiAgICAgICAgc3VwZXIoZGNtLCBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsICdCYXJzYU5vdmluUmF5Q29yZU1vZHVsZScpO1xyXG4gICAgfVxyXG4gICAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxCYXJzYU5vdmluUmF5Q29yZU1vZHVsZT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIG5nTW9kdWxlOiBCYXJzYU5vdmluUmF5Q29yZU1vZHVsZSxcclxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxyXG4gICAgICAgICAgICAgICAgICAgIHVzZUZhY3Rvcnk6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnRhbFNlcnZpY2U6IFBvcnRhbFNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZVNlcnZpY2U6IFRpdGxlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvbXB0VXBkYXRlU2VydmljZTogUHJvbXB0VXBkYXRlU2VydmljZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhcnNhU3RvcmFnZVNlcnZpY2U6IEJhcnNhU3RvcmFnZVNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd0NvbW11bmljYXRpb246IFNlcnZpY2VXb3JrZXJDb21tdW5jYXRpb25TZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0d29ya1N0YXR1c1NlcnZpY2U6IE5ldHdvcmtTdGF0dXNTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyOiBSb3V0ZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbkxvY2FsTW9kZSA9IGlzSW5Mb2NhbE1vZGUoKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcG9ydGFsU2VydmljZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5sb2FkU2VydmVyU3RhcnR1cERhdGEoKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKCgpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByb21pc2UuYWxsKFtmdW5jdGlvbkwxKCksIGZ1bmN0aW9uTDIocG9ydGFsU2VydmljZSwgdGl0bGVTZXJ2aWNlKV0pLmZpbmFsbHkoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvbXB0VXBkYXRlU2VydmljZS5jaGVja0ZvclVwZGF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFyc2FTdG9yYWdlU2VydmljZS5pbml0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd0NvbW11bmljYXRpb24uaW5pdCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKGUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpbkxvY2FsTW9kZSAmJiAhbmF2aWdhdG9yLm9uTGluZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ25vLWludGVybmV0Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXIubmF2aWdhdGUoWyduby1pbnRlcm5ldCddKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlci5uYXZpZ2F0ZShbJ3NlcnZlci1jb25uZWN0aW9uLWVycm9yJ10pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBkZXBzOiBbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFBvcnRhbFNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFRpdGxlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBQcm9tcHRVcGRhdGVTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBCYXJzYVN0b3JhZ2VTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBTZXJ2aWNlV29ya2VyQ29tbXVuY2F0aW9uU2VydmljZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgTmV0d29ya1N0YXR1c1NlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFJvdXRlclxyXG4gICAgICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgICAgICAgbXVsdGk6IHRydWVcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogRXJyb3JIYW5kbGVyLFxyXG4gICAgICAgICAgICAgICAgICAgIHVzZUNsYXNzOiBHbG9iYWxFcnJvckhhbmRsZXJcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxyXG4gICAgICAgICAgICAgICAgICAgIHVzZUZhY3Rvcnk6IChub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlKSA9PiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEJhcnNhQXBpLlVsLk5vdGlmaWNhdGlvbk1hbmFnZXIub24oe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgU2hvd1BvcHVwOiBub3RpZmljYXRpb25TZXJ2aWNlLmFkZE5vdGlmaWNhdGlvbi5iaW5kKG5vdGlmaWNhdGlvblNlcnZpY2UpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGlzaEV2ZW50OiBub3RpZmljYXRpb25TZXJ2aWNlLmhhbmRsZVRvcGljLmJpbmQobm90aWZpY2F0aW9uU2VydmljZSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBkZXBzOiBbTm90aWZpY2F0aW9uU2VydmljZV0sXHJcbiAgICAgICAgICAgICAgICAgICAgbXVsdGk6IHRydWVcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAuLi5waXBlcyxcclxuICAgICAgICAgICAgICAgIFBvcnRhbFNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICBVcGxvYWRTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgQXBpU2VydmljZSxcclxuICAgICAgICAgICAgICAgIExvZ1NlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICBCYXJzYURpYWxvZ1NlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICBVaVNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICBMYXlvdXRTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgVGFicGFnZVNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICBEeW5hbWljQ29tcG9uZW50U2VydmljZSxcclxuICAgICAgICAgICAgICAgIEJyZWFkY3J1bWJTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgQXV0aEd1YXJkLFxyXG4gICAgICAgICAgICAgICAgTmV0d29ya1N0YXR1c1NlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICBBdWRpb1JlY29yZGluZ1NlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICBWaWRlb1JlY29yZGluZ1NlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICBSZWRpcmVjdEhvbWVHdWFyZCxcclxuICAgICAgICAgICAgICAgIFByb21wdFVwZGF0ZVNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICBOb3RpZmljYXRpb25TZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgU2VydmljZVdvcmtlck5vdGlmaWNhdGlvblNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICBTYXZlU2Nyb2xsUG9zaXRpb25TZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgTG9jYWxTdG9yYWdlU2VydmljZSxcclxuICAgICAgICAgICAgICAgIEluZGV4ZWREYlNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICBCYmJUcmFuc2xhdGVQaXBlLFxyXG4gICAgICAgICAgICAgICAgQmFyc2FTdG9yYWdlU2VydmljZSxcclxuICAgICAgICAgICAgICAgIFNlcnZpY2VXb3JrZXJDb21tdW5jYXRpb25TZXJ2aWNlXHJcbiAgICAgICAgICAgIF1cclxuICAgICAgICB9O1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -1,46 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, HostBinding } from '@angular/core';
2
- import { BarsaApi } from './abstract-classes/barsa-api';
3
- import { BaseComponent } from './abstract-classes/base.component';
4
- import { getGridSettings, GetAllColumnsSorted } from './constants';
5
- import { isMobile } from './device';
6
- import * as i0 from "@angular/core";
7
- export class BaseUlvSettingComponent extends BaseComponent {
8
- constructor() {
9
- super(...arguments);
10
- this.mobile = isMobile();
11
- }
12
- ngOnInit() {
13
- super.ngOnInit();
14
- this.originalSetting = BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.View.GridSetting', null);
15
- this.allColumns = GetAllColumnsSorted(this.context);
16
- this.sortSettings = BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.View.GridSetting.SortSettingList', []);
17
- }
18
- onCancelSettings() {
19
- this.close(null);
20
- }
21
- onOkClick() {
22
- const setting = this.getSettings();
23
- this.close(setting);
24
- }
25
- onClose() {
26
- this.close(null);
27
- }
28
- getSettings() {
29
- return getGridSettings(this.context);
30
- }
31
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BaseUlvSettingComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
32
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BaseUlvSettingComponent, selector: "bnrc-base-ulv-setting", host: { properties: { "class.mobile": "this.mobile" } }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
33
- }
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BaseUlvSettingComponent, decorators: [{
35
- type: Component,
36
- args: [{
37
- selector: 'bnrc-base-ulv-setting',
38
- template: '',
39
- changeDetection: ChangeDetectionStrategy.OnPush,
40
- standalone: false
41
- }]
42
- }], propDecorators: { mobile: [{
43
- type: HostBinding,
44
- args: ['class.mobile']
45
- }] } });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS11bHYtc2V0dGluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL2Jhc2UtdWx2LXNldHRpbmcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBR3hGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNuRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDOztBQVFwQyxNQUFNLE9BQWdCLHVCQUF3QixTQUFRLGFBQWE7SUFObkU7O1FBT2lDLFdBQU0sR0FBRyxRQUFRLEVBQUUsQ0FBQztLQStCcEQ7SUExQkcsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsZUFBZSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3hHLElBQUksQ0FBQyxVQUFVLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXBELElBQUksQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUNoRCxJQUFJLENBQUMsT0FBTyxFQUNaLDBDQUEwQyxFQUMxQyxFQUFFLENBQ0wsQ0FBQztJQUNOLENBQUM7SUFFRCxnQkFBZ0I7UUFDWixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFDRCxTQUFTO1FBQ0wsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUNELE9BQU87UUFDSCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFDUyxXQUFXO1FBQ2pCLE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6QyxDQUFDOytHQTlCaUIsdUJBQXVCO21HQUF2Qix1QkFBdUIsNklBSi9CLEVBQUU7OzRGQUlNLHVCQUF1QjtrQkFONUMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxRQUFRLEVBQUUsRUFBRTtvQkFDWixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsVUFBVSxFQUFFLEtBQUs7aUJBQ3BCOzhCQUVnQyxNQUFNO3NCQUFsQyxXQUFXO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBIb3N0QmluZGluZywgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBHcmlkU2V0dGluZywgUmVwb3J0Vmlld0NvbHVtbiwgU29ydFNldHRpbmcgfSBmcm9tICcuL2Fic3RyYWN0LWNsYXNzZXMnO1xyXG5pbXBvcnQgeyBCYXJzYUFwaSB9IGZyb20gJy4vYWJzdHJhY3QtY2xhc3Nlcy9iYXJzYS1hcGknO1xyXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9hYnN0cmFjdC1jbGFzc2VzL2Jhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgZ2V0R3JpZFNldHRpbmdzLCBHZXRBbGxDb2x1bW5zU29ydGVkIH0gZnJvbSAnLi9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBpc01vYmlsZSB9IGZyb20gJy4vZGV2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdibnJjLWJhc2UtdWx2LXNldHRpbmcnLFxyXG4gICAgdGVtcGxhdGU6ICcnLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZVVsdlNldHRpbmdDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MubW9iaWxlJykgbW9iaWxlID0gaXNNb2JpbGUoKTtcclxuICAgIGNvbnRleHQ6IGFueTtcclxuICAgIG9yaWdpbmFsU2V0dGluZzogYW55O1xyXG4gICAgYWxsQ29sdW1uczogUmVwb3J0Vmlld0NvbHVtbltdO1xyXG4gICAgc29ydFNldHRpbmdzOiBTb3J0U2V0dGluZ1tdO1xyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgICAgICB0aGlzLm9yaWdpbmFsU2V0dGluZyA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKHRoaXMuY29udGV4dCwgJ1NldHRpbmcuVmlldy5HcmlkU2V0dGluZycsIG51bGwpO1xyXG4gICAgICAgIHRoaXMuYWxsQ29sdW1ucyA9IEdldEFsbENvbHVtbnNTb3J0ZWQodGhpcy5jb250ZXh0KTtcclxuXHJcbiAgICAgICAgdGhpcy5zb3J0U2V0dGluZ3MgPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZShcclxuICAgICAgICAgICAgdGhpcy5jb250ZXh0LFxyXG4gICAgICAgICAgICAnU2V0dGluZy5WaWV3LkdyaWRTZXR0aW5nLlNvcnRTZXR0aW5nTGlzdCcsXHJcbiAgICAgICAgICAgIFtdXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkNhbmNlbFNldHRpbmdzKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY2xvc2UobnVsbCk7XHJcbiAgICB9XHJcbiAgICBvbk9rQ2xpY2soKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3Qgc2V0dGluZyA9IHRoaXMuZ2V0U2V0dGluZ3MoKTtcclxuICAgICAgICB0aGlzLmNsb3NlKHNldHRpbmcpO1xyXG4gICAgfVxyXG4gICAgb25DbG9zZSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmNsb3NlKG51bGwpO1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIGdldFNldHRpbmdzKCk6IEdyaWRTZXR0aW5nIHtcclxuICAgICAgICByZXR1cm4gZ2V0R3JpZFNldHRpbmdzKHRoaXMuY29udGV4dCk7XHJcbiAgICB9XHJcbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgY2xvc2Uoc2V0dGluZzogYW55KTogdm9pZDtcclxufVxyXG4iXX0=