barsa-novin-ray-core 2.2.2 → 2.2.4

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 (214) hide show
  1. package/esm2022/barsa-novin-ray-core.mjs +5 -0
  2. package/esm2022/lib/abstract-classes/application-base.mjs +25 -0
  3. package/esm2022/lib/abstract-classes/barsa-api.mjs +43 -0
  4. package/esm2022/lib/abstract-classes/base-column-props.mjs +85 -0
  5. package/esm2022/lib/abstract-classes/base.component.mjs +60 -0
  6. package/esm2022/lib/abstract-classes/field-base.mjs +233 -0
  7. package/esm2022/lib/abstract-classes/files-validation-helper.mjs +75 -0
  8. package/esm2022/lib/abstract-classes/form-base.mjs +164 -0
  9. package/esm2022/lib/abstract-classes/form-field-report-page.component.mjs +54 -0
  10. package/esm2022/lib/abstract-classes/form-page-base.mjs +130 -0
  11. package/esm2022/lib/abstract-classes/form-page.component.mjs +53 -0
  12. package/esm2022/lib/abstract-classes/form-props.base.mjs +100 -0
  13. package/esm2022/lib/abstract-classes/form-toolbar-base.mjs +57 -0
  14. package/esm2022/lib/abstract-classes/index.mjs +25 -0
  15. package/esm2022/lib/abstract-classes/layout-item-base.mjs +49 -0
  16. package/esm2022/lib/abstract-classes/layout-panel-base.mjs +64 -0
  17. package/esm2022/lib/abstract-classes/linear-list-helper.mjs +135 -0
  18. package/esm2022/lib/abstract-classes/models.mjs +184 -0
  19. package/esm2022/lib/abstract-classes/module-with-dynamic-components.mjs +2 -0
  20. package/esm2022/lib/abstract-classes/number-base.mjs +201 -0
  21. package/esm2022/lib/abstract-classes/page-base.mjs +98 -0
  22. package/esm2022/lib/abstract-classes/page-with-form-handler-base.mjs +41 -0
  23. package/esm2022/lib/abstract-classes/report-base.mjs +265 -0
  24. package/esm2022/lib/abstract-classes/report-item-base.mjs +54 -0
  25. package/esm2022/lib/abstract-classes/report-view-base.component.mjs +440 -0
  26. package/esm2022/lib/abstract-classes/system-base.mjs +25 -0
  27. package/esm2022/lib/abstract-classes/tile-props.mjs +47 -0
  28. package/esm2022/lib/auth-guard.mjs +48 -0
  29. package/esm2022/lib/barsa-novin-ray-core-routing.module.mjs +292 -0
  30. package/esm2022/lib/barsa-novin-ray-core.module.mjs +508 -0
  31. package/esm2022/lib/base-ulv-setting.component.mjs +46 -0
  32. package/esm2022/lib/base.module.mjs +28 -0
  33. package/esm2022/lib/button-loading/button-loading.component.mjs +18 -0
  34. package/esm2022/lib/constants.mjs +898 -0
  35. package/esm2022/lib/container.component.mjs +100 -0
  36. package/esm2022/lib/controllers/base-controller.mjs +32 -0
  37. package/esm2022/lib/controllers/index.mjs +5 -0
  38. package/esm2022/lib/controllers/login-controller.mjs +56 -0
  39. package/esm2022/lib/controllers/login-verification-controller.mjs +58 -0
  40. package/esm2022/lib/controllers/models.mjs +2 -0
  41. package/esm2022/lib/custom-route-reuse-strategy.mjs +32 -0
  42. package/esm2022/lib/date-services/date-hijri.service.mjs +146 -0
  43. package/esm2022/lib/date-services/date-info.mjs +2 -0
  44. package/esm2022/lib/date-services/date-miladi.service.mjs +124 -0
  45. package/esm2022/lib/date-services/date-shamsi.service.mjs +148 -0
  46. package/esm2022/lib/date-services/date.service.mjs +149 -0
  47. package/esm2022/lib/date-services/index.mjs +6 -0
  48. package/esm2022/lib/device.mjs +663 -0
  49. package/esm2022/lib/directives/absolute-div-body.directive.mjs +46 -0
  50. package/esm2022/lib/directives/anchor-scroll.directive.mjs +25 -0
  51. package/esm2022/lib/directives/attr-rtl.directive.mjs +36 -0
  52. package/esm2022/lib/directives/base.directive.mjs +55 -0
  53. package/esm2022/lib/directives/body-click.directive.mjs +36 -0
  54. package/esm2022/lib/directives/column-resizer.directive.mjs +40 -0
  55. package/esm2022/lib/directives/copy.directive.mjs +60 -0
  56. package/esm2022/lib/directives/count-down.directive.mjs +109 -0
  57. package/esm2022/lib/directives/dynamic-command.directive.mjs +43 -0
  58. package/esm2022/lib/directives/dynamic-style.directive.mjs +58 -0
  59. package/esm2022/lib/directives/ellapsis-text.directive.mjs +70 -0
  60. package/esm2022/lib/directives/ellipsify.directive.mjs +73 -0
  61. package/esm2022/lib/directives/field-binding.directive.mjs +18 -0
  62. package/esm2022/lib/directives/fill-empty-space.mjs +84 -0
  63. package/esm2022/lib/directives/form-close.directive.mjs +33 -0
  64. package/esm2022/lib/directives/img-lazy.directive.mjs +82 -0
  65. package/esm2022/lib/directives/index.mjs +38 -0
  66. package/esm2022/lib/directives/intersection-observer.directive.mjs +52 -0
  67. package/esm2022/lib/directives/items-renderer.directive.mjs +60 -0
  68. package/esm2022/lib/directives/label-mandatory.directive.mjs +49 -0
  69. package/esm2022/lib/directives/load-external-files.directive.mjs +38 -0
  70. package/esm2022/lib/directives/mobile.directive.mjs +30 -0
  71. package/esm2022/lib/directives/nowraptext.directive.mjs +27 -0
  72. package/esm2022/lib/directives/numbers-only-input.directive.mjs +27 -0
  73. package/esm2022/lib/directives/placeHolder.directive.mjs +16 -0
  74. package/esm2022/lib/directives/prevent-default.directive.mjs +21 -0
  75. package/esm2022/lib/directives/render-ulv-paging.directive.mjs +81 -0
  76. package/esm2022/lib/directives/render-ulv-viewer.directive.mjs +76 -0
  77. package/esm2022/lib/directives/render-ulv.directive.mjs +52 -0
  78. package/esm2022/lib/directives/route-form-change.directive.mjs +38 -0
  79. package/esm2022/lib/directives/stop-propagation.directive.mjs +21 -0
  80. package/esm2022/lib/directives/table-resizer.directive.mjs +236 -0
  81. package/esm2022/lib/directives/ulv-command.directive.mjs +43 -0
  82. package/esm2022/lib/directives/until-inview.directive.mjs +53 -0
  83. package/esm2022/lib/directives/workflow-choice-command.directive.mjs +61 -0
  84. package/esm2022/lib/dynamic-component/base-dynamic.component.mjs +97 -0
  85. package/esm2022/lib/dynamic-component/base-form-toolbaritem-props.mjs +53 -0
  86. package/esm2022/lib/dynamic-component/base-item-content-props.mjs +81 -0
  87. package/esm2022/lib/dynamic-component/base-view-content-props.mjs +27 -0
  88. package/esm2022/lib/dynamic-component/base-view-item-props.mjs +528 -0
  89. package/esm2022/lib/dynamic-component/base-view-props.mjs +163 -0
  90. package/esm2022/lib/dynamic-component/dynamic-form-toolbar-item.component.mjs +38 -0
  91. package/esm2022/lib/dynamic-component/dynamic-form.component.mjs +69 -0
  92. package/esm2022/lib/dynamic-component/dynamic-item.component.mjs +76 -0
  93. package/esm2022/lib/dynamic-component/dynamic-layout.component.mjs +64 -0
  94. package/esm2022/lib/dynamic-component/index.mjs +11 -0
  95. package/esm2022/lib/empty-page/empty-page.component.mjs +44 -0
  96. package/esm2022/lib/empty-page-with-router-and-router-outlet/empty-page-with-router-and-router-outlet.component.mjs +16 -0
  97. package/esm2022/lib/field-ui/field-ui.component.mjs +146 -0
  98. package/esm2022/lib/form/form.component.mjs +211 -0
  99. package/esm2022/lib/form-new/form-new.component.mjs +31 -0
  100. package/esm2022/lib/form-page-routing/barsa-sap-ui-form-page-routing.module.mjs +54 -0
  101. package/esm2022/lib/form-page-routing/barsa-sap-ui-form-page.module.mjs +29 -0
  102. package/esm2022/lib/form-page-routing/constants.mjs +9 -0
  103. package/esm2022/lib/form-page-routing/index.mjs +3 -0
  104. package/esm2022/lib/from-intersection-observer.mjs +53 -0
  105. package/esm2022/lib/global-error-handler.mjs +26 -0
  106. package/esm2022/lib/injdection-tokens.mjs +8 -0
  107. package/esm2022/lib/login-enter-mobile/login-enter-mobile.component.mjs +64 -0
  108. package/esm2022/lib/login-verification/login-verification.component.mjs +79 -0
  109. package/esm2022/lib/login2/login2.component.mjs +60 -0
  110. package/esm2022/lib/modal-root.component.mjs +34 -0
  111. package/esm2022/lib/not-found/not-found.component.mjs +16 -0
  112. package/esm2022/lib/not-internet/not-internet.component.mjs +21 -0
  113. package/esm2022/lib/pipes/barsa-icon-dict.pipe.mjs +20 -0
  114. package/esm2022/lib/pipes/bbb-translate.pipe.mjs +36 -0
  115. package/esm2022/lib/pipes/can-upload.pipe.mjs +27 -0
  116. package/esm2022/lib/pipes/column-custom-component.pipe.mjs +41 -0
  117. package/esm2022/lib/pipes/column-customui.pipe.mjs +33 -0
  118. package/esm2022/lib/pipes/column-icon.pipe.mjs +23 -0
  119. package/esm2022/lib/pipes/column-value.pipe.mjs +35 -0
  120. package/esm2022/lib/pipes/column-valueof-parameters.pipe.mjs +34 -0
  121. package/esm2022/lib/pipes/combo-row-img.pipe.mjs +17 -0
  122. package/esm2022/lib/pipes/context-menu.pipe.mjs +41 -0
  123. package/esm2022/lib/pipes/control-ui.pipe.mjs +32 -0
  124. package/esm2022/lib/pipes/convert-to-style.pipe.mjs +33 -0
  125. package/esm2022/lib/pipes/date-time-to-caption.pipe.mjs +35 -0
  126. package/esm2022/lib/pipes/fileinfo-count.pipe.mjs +21 -0
  127. package/esm2022/lib/pipes/filter-columns-by-details.pipe.mjs +23 -0
  128. package/esm2022/lib/pipes/filter-inline-action-list.pipe.mjs +19 -0
  129. package/esm2022/lib/pipes/filter-string.pipe.mjs +45 -0
  130. package/esm2022/lib/pipes/filter-tab.pipe.mjs +20 -0
  131. package/esm2022/lib/pipes/filter-toolbar-control.pipe.mjs +17 -0
  132. package/esm2022/lib/pipes/filter-workflow-mobile.pipe.mjs +25 -0
  133. package/esm2022/lib/pipes/filter.pipe.mjs +34 -0
  134. package/esm2022/lib/pipes/find-column-by-db-name.pipe.mjs +28 -0
  135. package/esm2022/lib/pipes/find-preview-column.pipe.mjs +20 -0
  136. package/esm2022/lib/pipes/fiori-icon.pipe.mjs +43 -0
  137. package/esm2022/lib/pipes/groupby.pipe.mjs +64 -0
  138. package/esm2022/lib/pipes/header-facet-value.pipe.mjs +23 -0
  139. package/esm2022/lib/pipes/hide-accept-cancel-buttons.pipe.mjs +24 -0
  140. package/esm2022/lib/pipes/hide-columns-inmobile.pipe.mjs +23 -0
  141. package/esm2022/lib/pipes/index.mjs +52 -0
  142. package/esm2022/lib/pipes/list-count.pipe.mjs +18 -0
  143. package/esm2022/lib/pipes/merge-fields-to-columns.pipe.mjs +43 -0
  144. package/esm2022/lib/pipes/mo-info-ulv-data.pipe.mjs +59 -0
  145. package/esm2022/lib/pipes/mo-info-ulv-paging.pipe.mjs +17 -0
  146. package/esm2022/lib/pipes/mo-report-value-concat.pipe.mjs +36 -0
  147. package/esm2022/lib/pipes/mo-report-value.pipe.mjs +18 -0
  148. package/esm2022/lib/pipes/mo-value.pipe.mjs +19 -0
  149. package/esm2022/lib/pipes/multiple-groupby.pipe.mjs +91 -0
  150. package/esm2022/lib/pipes/numeral.pipe.mjs +44 -0
  151. package/esm2022/lib/pipes/picture-field-source.pipe.mjs +23 -0
  152. package/esm2022/lib/pipes/remove-newline.pipe.mjs +21 -0
  153. package/esm2022/lib/pipes/replace.pipe.mjs +18 -0
  154. package/esm2022/lib/pipes/reverse.pipe.mjs +23 -0
  155. package/esm2022/lib/pipes/rownumber.pipe.mjs +26 -0
  156. package/esm2022/lib/pipes/sanitize-text.pipe.mjs +21 -0
  157. package/esm2022/lib/pipes/seperator-fix.pipe.mjs +24 -0
  158. package/esm2022/lib/pipes/sort.pipe.mjs +49 -0
  159. package/esm2022/lib/pipes/string-to-number.pipe.mjs +26 -0
  160. package/esm2022/lib/pipes/th-image-icon.pipe.mjs +23 -0
  161. package/esm2022/lib/pipes/tlbButtons.pipe.mjs +60 -0
  162. package/esm2022/lib/pipes/total-summary.pipe.mjs +17 -0
  163. package/esm2022/lib/pipes/tree-item-isexpanded.pipe.mjs +26 -0
  164. package/esm2022/lib/pipes/visible-value.pipe.mjs +19 -0
  165. package/esm2022/lib/portal-page/portal-page.component.mjs +24 -0
  166. package/esm2022/lib/portal-page/portal-sidebar.component.mjs +37 -0
  167. package/esm2022/lib/redirect-home-guard.mjs +51 -0
  168. package/esm2022/lib/redirect-report-navigator-command/redirect-report-navigator-command.component.mjs +12 -0
  169. package/esm2022/lib/report-container/report-container.component.mjs +63 -0
  170. package/esm2022/lib/resizable-module/resizable.component.mjs +31 -0
  171. package/esm2022/lib/resizable-module/resizable.directive.mjs +42 -0
  172. package/esm2022/lib/resizable-module/resizable.module.mjs +17 -0
  173. package/esm2022/lib/resolvers/index.mjs +6 -0
  174. package/esm2022/lib/resolvers/portal-dynamic-page.resolver.mjs +49 -0
  175. package/esm2022/lib/resolvers/portal-form-page.resolver.mjs +18 -0
  176. package/esm2022/lib/resolvers/portal-page.resolver.mjs +30 -0
  177. package/esm2022/lib/resolvers/portal-report-page.resolver.mjs +37 -0
  178. package/esm2022/lib/resolvers/tile-group-breadcrumb.resolver.mjs +30 -0
  179. package/esm2022/lib/root-page/root-page.component.mjs +21 -0
  180. package/esm2022/lib/root-portal/root-portal.component.mjs +165 -0
  181. package/esm2022/lib/server-connection-error/server-connection-error.component.mjs +19 -0
  182. package/esm2022/lib/services/api.service.mjs +63 -0
  183. package/esm2022/lib/services/audio-recording.service.mjs +95 -0
  184. package/esm2022/lib/services/barsa-dialog.service.mjs +80 -0
  185. package/esm2022/lib/services/barsa-storage.service.mjs +78 -0
  186. package/esm2022/lib/services/breadcrumb.service.mjs +64 -0
  187. package/esm2022/lib/services/column.service.mjs +20 -0
  188. package/esm2022/lib/services/container.service.mjs +69 -0
  189. package/esm2022/lib/services/dynamic-component.service.mjs +55 -0
  190. package/esm2022/lib/services/form-panel.service.mjs +387 -0
  191. package/esm2022/lib/services/form.service.mjs +14 -0
  192. package/esm2022/lib/services/groupby.service.mjs +21 -0
  193. package/esm2022/lib/services/horizontal-layout.service.mjs +16 -0
  194. package/esm2022/lib/services/index.mjs +30 -0
  195. package/esm2022/lib/services/indexeddb.service.mjs +34 -0
  196. package/esm2022/lib/services/layout.service.mjs +42 -0
  197. package/esm2022/lib/services/local-storage.service.mjs +32 -0
  198. package/esm2022/lib/services/log.service.mjs +50 -0
  199. package/esm2022/lib/services/network-status.service.mjs +15 -0
  200. package/esm2022/lib/services/notification-popup.service.mjs +2 -0
  201. package/esm2022/lib/services/notification-sw.service.mjs +180 -0
  202. package/esm2022/lib/services/notification.service.mjs +308 -0
  203. package/esm2022/lib/services/portal.service.mjs +946 -0
  204. package/esm2022/lib/services/prompt-update.service.mjs +56 -0
  205. package/esm2022/lib/services/routing.service.mjs +60 -0
  206. package/esm2022/lib/services/save-scoll-position.service.mjs +29 -0
  207. package/esm2022/lib/services/service-worker-communication.service.mjs +120 -0
  208. package/esm2022/lib/services/toast.service.mjs +2 -0
  209. package/esm2022/lib/services/ui.service.mjs +23 -0
  210. package/esm2022/lib/services/ulvmain.service.mjs +810 -0
  211. package/esm2022/lib/services/upload.service.mjs +161 -0
  212. package/esm2022/lib/services/video-recording.service.mjs +115 -0
  213. package/esm2022/public-api.mjs +44 -0
  214. package/package.json +3 -1
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2Etbm92aW4tcmF5LWNvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvYmFyc2Etbm92aW4tcmF5LWNvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -0,0 +1,25 @@
1
+ import { Input, Component, ChangeDetectionStrategy } from '@angular/core';
2
+ import { BaseComponent } from './base.component';
3
+ import * as i0 from "@angular/core";
4
+ export class ApplicationBaseComponent extends BaseComponent {
5
+ constructor() {
6
+ super(...arguments);
7
+ this.systemList = [];
8
+ }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApplicationBaseComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ApplicationBaseComponent, selector: "bnrc-application-base", inputs: { context: "context", selectedSystemId: "selectedSystemId" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApplicationBaseComponent, decorators: [{
13
+ type: Component,
14
+ args: [{
15
+ selector: 'bnrc-application-base',
16
+ template: '',
17
+ changeDetection: ChangeDetectionStrategy.OnPush,
18
+ standalone: false
19
+ }]
20
+ }], propDecorators: { context: [{
21
+ type: Input
22
+ }], selectedSystemId: [{
23
+ type: Input
24
+ }] } });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLW5vdmluLXJheS1jb3JlL3NyYy9saWIvYWJzdHJhY3QtY2xhc3Nlcy9hcHBsaWNhdGlvbi1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUErQ2pELE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxhQUFhO0lBTjNEOztRQWVJLGVBQVUsR0FBVSxFQUFFLENBQUM7S0FDMUI7K0dBVlksd0JBQXdCO21HQUF4Qix3QkFBd0IsMEpBSnZCLEVBQUU7OzRGQUlILHdCQUF3QjtrQkFOcEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxRQUFRLEVBQUUsRUFBRTtvQkFDWixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsVUFBVSxFQUFFLEtBQUs7aUJBQ3BCOzhCQUtZLE9BQU87c0JBQWYsS0FBSztnQkFJRyxnQkFBZ0I7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnB1dCwgQ29tcG9uZW50LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFN5c3RlbVNldHRpbmcgfSBmcm9tICcuL3N5c3RlbS1iYXNlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXBwbGljYXRpb25TZXR0aW5nIHtcclxuICAgIFtrZXk6IHN0cmluZ106IGFueTtcclxuICAgIENvbm5lY3Rpb25JbmZvOiBzdHJpbmc7XHJcbiAgICBBbGxvd01hbmFnZW1lbnRXaW5kb3c6IGJvb2xlYW47XHJcbiAgICBEZWZhdWx0U3lzdGVtSWQ6IHN0cmluZztcclxuICAgIEVuYWJsZUNvbXBhY3RBcnJheTogYm9vbGVhbjtcclxuICAgIEVuYWJsZU5vdGlmaWNhdGlvbjogYm9vbGVhbjtcclxuICAgIEVuYWJsZVNjYW5uZXI6IGJvb2xlYW47XHJcbiAgICBGb3JjZUZvcm1IZWxwQnV0dG9uOiBib29sZWFuO1xyXG4gICAgSGlkZURlbGV0ZUluRm9ybXM6IGJvb2xlYW47XHJcbiAgICBIaWRlVGhlbWVCdXR0b246IGJvb2xlYW47XHJcbiAgICBJc0FkbWluOiBib29sZWFuO1xyXG4gICAgSXNJbml0aWFsaXppbmc6IGJvb2xlYW47XHJcbiAgICBJc09uQWN0aXZpdHlEaXJlY3Rvcnk6IGJvb2xlYW47XHJcbiAgICBJc1VzZXI6IGJvb2xlYW47XHJcbiAgICBNYXhFeGNlbEV4cG9ydFJvd3M6IG51bWJlcjtcclxuICAgIE5ld0RhdGVGaXg6IGJvb2xlYW47XHJcbiAgICBOb0xvZ291dDogYm9vbGVhbjtcclxuICAgIFNjYW5uZXJBZ2VudFZhbGlkVmVyc2lvbjogc3RyaW5nO1xyXG4gICAgU2VjdXJpdHlUeXBlOiBzdHJpbmc7XHJcbiAgICBTaG93RGVidWdUb29sYmFyOiBib29sZWFuO1xyXG4gICAgU2hvd05leHRQcml2aW91czogYm9vbGVhbjtcclxuICAgIFN5c3RlbURpY3Q6IHsgW2tleTogc3RyaW5nXTogU3lzdGVtU2V0dGluZyB9O1xyXG4gICAgVmVyc2lvbjogc3RyaW5nO1xyXG4gICAgVmVyc2lvblNwbDogc3RyaW5nO1xyXG4gICAgVXNlcjoge1xyXG4gICAgICAgIERpc3BhbHlOYW1lOiBzdHJpbmc7XHJcbiAgICAgICAgSWQ6IHN0cmluZztcclxuICAgICAgICBOYW1lOiBzdHJpbmc7XHJcbiAgICB9O1xyXG4gICAgV2ViQ29uZmlnOiB7XHJcbiAgICAgICAgV29ya2Zsb3c6IHtcclxuICAgICAgICAgICAgU2hvd0luZm9CYXI6IHRydWU7XHJcbiAgICAgICAgICAgIFNob3dUb29sYmFyOiB0cnVlO1xyXG4gICAgICAgICAgICBTaG93VXNlck1zZzogdHJ1ZTtcclxuICAgICAgICB9O1xyXG4gICAgfTtcclxufVxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYm5yYy1hcHBsaWNhdGlvbi1iYXNlJyxcclxuICAgIHRlbXBsYXRlOiAnJyxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIEFwcGxpY2F0aW9uQmFzZUNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQge1xyXG4gICAgLy8gQFZpZXdDaGlsZHJlbihQbGFjZUhvbGRlckRpcmVjdGl2ZSkgcGxhY2VIb2xkZXJzUmVmOiBRdWVyeUxpc3Q8XHJcbiAgICAvLyAgIFBsYWNlSG9sZGVyRGlyZWN0aXZlXHJcbiAgICAvLyA+O1xyXG4gICAgQElucHV0KCkgY29udGV4dDoge1xyXG4gICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcclxuICAgICAgICBTZXR0aW5nOiBBcHBsaWNhdGlvblNldHRpbmc7XHJcbiAgICB9O1xyXG4gICAgQElucHV0KCkgc2VsZWN0ZWRTeXN0ZW1JZDogc3RyaW5nO1xyXG4gICAgc3lzdGVtTGlzdDogYW55W10gPSBbXTtcclxufVxyXG4iXX0=
@@ -0,0 +1,43 @@
1
+ export class BarsaApi {
2
+ static { this.idGenerator = -10000; }
3
+ static get GanttChartHelper() {
4
+ return GanttChartHelper;
5
+ }
6
+ static get Offline() {
7
+ return Offline;
8
+ }
9
+ static get Ext() {
10
+ return Ext;
11
+ }
12
+ static get Common() {
13
+ return Common;
14
+ }
15
+ static get Util() {
16
+ return Util;
17
+ }
18
+ static get Ul() {
19
+ return Ul;
20
+ }
21
+ static get Ui() {
22
+ return Ui;
23
+ }
24
+ static get Bw() {
25
+ return Bw;
26
+ }
27
+ static get BBB() {
28
+ return BBB;
29
+ }
30
+ static get LoginForm() {
31
+ return LoginForm;
32
+ }
33
+ static get LoginAction() {
34
+ return LoginAction;
35
+ }
36
+ static get LoginFormUi() {
37
+ return LoginFormUi;
38
+ }
39
+ static get LoginFormData() {
40
+ return LoginFormData;
41
+ }
42
+ }
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etbm92aW4tcmF5LWNvcmUvc3JjL2xpYi9hYnN0cmFjdC1jbGFzc2VzL2JhcnNhLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFjQSxNQUFNLE9BQU8sUUFBUTthQUNWLGdCQUFXLEdBQUcsQ0FBQyxLQUFLLENBQUM7SUFDNUIsTUFBTSxLQUFLLGdCQUFnQjtRQUN2QixPQUFPLGdCQUFnQixDQUFDO0lBQzVCLENBQUM7SUFDRCxNQUFNLEtBQUssT0FBTztRQUNkLE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7SUFDRCxNQUFNLEtBQUssR0FBRztRQUNWLE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztJQUNELE1BQU0sS0FBSyxNQUFNO1FBQ2IsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUNELE1BQU0sS0FBSyxJQUFJO1FBQ1gsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUNELE1BQU0sS0FBSyxFQUFFO1FBQ1QsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0lBQ0QsTUFBTSxLQUFLLEVBQUU7UUFDVCxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFDRCxNQUFNLEtBQUssRUFBRTtRQUNULE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUNELE1BQU0sS0FBSyxHQUFHO1FBQ1YsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDO0lBQ0QsTUFBTSxLQUFLLFNBQVM7UUFDaEIsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUNELE1BQU0sS0FBSyxXQUFXO1FBQ2xCLE9BQU8sV0FBVyxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxNQUFNLEtBQUssV0FBVztRQUNsQixPQUFPLFdBQVcsQ0FBQztJQUN2QixDQUFDO0lBQ0QsTUFBTSxLQUFLLGFBQWE7UUFDcEIsT0FBTyxhQUFhLENBQUM7SUFDekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWNsYXJlIGNvbnN0IENvbW1vbjogYW55O1xyXG5leHBvcnQgZGVjbGFyZSBjb25zdCBVbDogYW55O1xyXG5leHBvcnQgZGVjbGFyZSBjb25zdCBVaTogYW55O1xyXG5leHBvcnQgZGVjbGFyZSBjb25zdCBVdGlsOiBhbnk7XHJcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IEJ3OiBhbnk7XHJcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IEJCQjogYW55O1xyXG5leHBvcnQgZGVjbGFyZSBjb25zdCBMb2dpbkFjdGlvbjogYW55O1xyXG5leHBvcnQgZGVjbGFyZSBjb25zdCBVbHZNYWluQ3RybDogYW55O1xyXG5leHBvcnQgZGVjbGFyZSBjb25zdCBMb2dpbkZvcm1VaTogYW55O1xyXG5leHBvcnQgZGVjbGFyZSBjb25zdCBMb2dpbkZvcm1EYXRhOiBhbnk7XHJcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IExvZ2luRm9ybTogYW55O1xyXG5leHBvcnQgZGVjbGFyZSBjb25zdCBFeHQ6IGFueTtcclxuZXhwb3J0IGRlY2xhcmUgY29uc3QgT2ZmbGluZTogYW55O1xyXG5leHBvcnQgZGVjbGFyZSBjb25zdCBHYW50dENoYXJ0SGVscGVyOiBhbnk7XHJcbmV4cG9ydCBjbGFzcyBCYXJzYUFwaSB7XHJcbiAgICBzdGF0aWMgaWRHZW5lcmF0b3IgPSAtMTAwMDA7XHJcbiAgICBzdGF0aWMgZ2V0IEdhbnR0Q2hhcnRIZWxwZXIoKTogYW55IHtcclxuICAgICAgICByZXR1cm4gR2FudHRDaGFydEhlbHBlcjtcclxuICAgIH1cclxuICAgIHN0YXRpYyBnZXQgT2ZmbGluZSgpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiBPZmZsaW5lO1xyXG4gICAgfVxyXG4gICAgc3RhdGljIGdldCBFeHQoKTogYW55IHtcclxuICAgICAgICByZXR1cm4gRXh0O1xyXG4gICAgfVxyXG4gICAgc3RhdGljIGdldCBDb21tb24oKTogYW55IHtcclxuICAgICAgICByZXR1cm4gQ29tbW9uO1xyXG4gICAgfVxyXG4gICAgc3RhdGljIGdldCBVdGlsKCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIFV0aWw7XHJcbiAgICB9XHJcbiAgICBzdGF0aWMgZ2V0IFVsKCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIFVsO1xyXG4gICAgfVxyXG4gICAgc3RhdGljIGdldCBVaSgpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiBVaTtcclxuICAgIH1cclxuICAgIHN0YXRpYyBnZXQgQncoKTogYW55IHtcclxuICAgICAgICByZXR1cm4gQnc7XHJcbiAgICB9XHJcbiAgICBzdGF0aWMgZ2V0IEJCQigpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiBCQkI7XHJcbiAgICB9XHJcbiAgICBzdGF0aWMgZ2V0IExvZ2luRm9ybSgpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiBMb2dpbkZvcm07XHJcbiAgICB9XHJcbiAgICBzdGF0aWMgZ2V0IExvZ2luQWN0aW9uKCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIExvZ2luQWN0aW9uO1xyXG4gICAgfVxyXG4gICAgc3RhdGljIGdldCBMb2dpbkZvcm1VaSgpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiBMb2dpbkZvcm1VaTtcclxuICAgIH1cclxuICAgIHN0YXRpYyBnZXQgTG9naW5Gb3JtRGF0YSgpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiBMb2dpbkZvcm1EYXRhO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,85 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Optional, Output, Self } from '@angular/core';
2
+ import { BaseComponent } from './base.component';
3
+ import { takeUntil } from 'rxjs';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../services";
6
+ export class BaseColumnPropsComponent extends BaseComponent {
7
+ constructor(_columnService, _el) {
8
+ super();
9
+ this._el = _el;
10
+ this.save = new EventEmitter();
11
+ this.cancel = new EventEmitter();
12
+ this.tab = new EventEmitter();
13
+ this.changeToEditMode = new EventEmitter();
14
+ _columnService.uiControlRendered.pipe(takeUntil(this._onDestroy$)).subscribe(() => {
15
+ this._callChangeToEditMode();
16
+ });
17
+ }
18
+ _callChangeToEditMode() {
19
+ this.changeToEditMode.emit(this._el.nativeElement);
20
+ }
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BaseColumnPropsComponent, deps: [{ token: i1.ColumnService, optional: true, self: true }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
22
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BaseColumnPropsComponent, selector: "bnrc-base-column-props", inputs: { allColumns: "allColumns", column: "column", mo: "mo", index: "index", editMode: "editMode", isMobile: "isMobile", customRowHeight: "customRowHeight", controlUi: "controlUi", formLayoutShowLabel: "formLayoutShowLabel", isChecked: "isChecked", isdirty: "isdirty", isNewInlineMo: "isNewInlineMo", layout94: "layout94", detailsComponentSetting: "detailsComponentSetting", value: "value", icon: "icon", rtl: "rtl", deviceName: "deviceName", deviceSize: "deviceSize", customComponent: "customComponent" }, outputs: { save: "save", cancel: "cancel", tab: "tab", changeToEditMode: "changeToEditMode" }, usesInheritance: true, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
23
+ }
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BaseColumnPropsComponent, decorators: [{
25
+ type: Component,
26
+ args: [{
27
+ selector: 'bnrc-base-column-props',
28
+ template: ``,
29
+ changeDetection: ChangeDetectionStrategy.OnPush,
30
+ standalone: false
31
+ }]
32
+ }], ctorParameters: () => [{ type: i1.ColumnService, decorators: [{
33
+ type: Optional
34
+ }, {
35
+ type: Self
36
+ }] }, { type: i0.ElementRef }], propDecorators: { save: [{
37
+ type: Output
38
+ }], cancel: [{
39
+ type: Output
40
+ }], tab: [{
41
+ type: Output
42
+ }], changeToEditMode: [{
43
+ type: Output
44
+ }], allColumns: [{
45
+ type: Input
46
+ }], column: [{
47
+ type: Input
48
+ }], mo: [{
49
+ type: Input
50
+ }], index: [{
51
+ type: Input
52
+ }], editMode: [{
53
+ type: Input
54
+ }], isMobile: [{
55
+ type: Input
56
+ }], customRowHeight: [{
57
+ type: Input
58
+ }], controlUi: [{
59
+ type: Input
60
+ }], formLayoutShowLabel: [{
61
+ type: Input
62
+ }], isChecked: [{
63
+ type: Input
64
+ }], isdirty: [{
65
+ type: Input
66
+ }], isNewInlineMo: [{
67
+ type: Input
68
+ }], layout94: [{
69
+ type: Input
70
+ }], detailsComponentSetting: [{
71
+ type: Input
72
+ }], value: [{
73
+ type: Input
74
+ }], icon: [{
75
+ type: Input
76
+ }], rtl: [{
77
+ type: Input
78
+ }], deviceName: [{
79
+ type: Input
80
+ }], deviceSize: [{
81
+ type: Input
82
+ }], customComponent: [{
83
+ type: Input
84
+ }] } });
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jb2x1bW4tcHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL2Fic3RyYWN0LWNsYXNzZXMvYmFzZS1jb2x1bW4tcHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksRUFDUCxNQUFNLGVBQWUsQ0FBQztBQVd2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBT2pDLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxhQUFhO0lBMEJ2RCxZQUFnQyxjQUE2QixFQUFZLEdBQWU7UUFDcEYsS0FBSyxFQUFFLENBQUM7UUFENkQsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQXpCOUUsU0FBSSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDL0IsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDakMsUUFBRyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDOUIscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQXdCakQsY0FBYyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM5RSxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxxQkFBcUI7UUFDakIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7K0dBbkNRLHdCQUF3QjttR0FBeEIsd0JBQXdCLGtyQkFKdkIsRUFBRTs7NEZBSUgsd0JBQXdCO2tCQU5wQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFFBQVEsRUFBRSxFQUFFO29CQUNaLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxVQUFVLEVBQUUsS0FBSztpQkFDcEI7OzBCQTJCZ0IsUUFBUTs7MEJBQUksSUFBSTtrRUF6Qm5CLElBQUk7c0JBQWIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csR0FBRztzQkFBWixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRSxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQWZ0ZXJWaWV3SW5pdCxcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIElucHV0LFxyXG4gICAgT25DaGFuZ2VzLFxyXG4gICAgT3B0aW9uYWwsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBTZWxmXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQge1xyXG4gICAgTWV0YW9iamVjdERhdGFNb2RlbCxcclxuICAgIExheW91dFNldHRpbmcsXHJcbiAgICBBYmJyZXZhdGlvbkRldmljZVNpemUsXHJcbiAgICBFanJheU9sZ28sXHJcbiAgICBSZXBvcnRWaWV3Q29sdW1uLFxyXG4gICAgVWlSZXBvcnRWaWV3QmFzZVNldHRpbmcsXHJcbiAgICBEZXZpY2VTaXplXHJcbn0gZnJvbSAnLi4vYWJzdHJhY3QtY2xhc3Nlcyc7XHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuL2Jhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29sdW1uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdibnJjLWJhc2UtY29sdW1uLXByb3BzJyxcclxuICAgIHRlbXBsYXRlOiBgYCxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIEJhc2VDb2x1bW5Qcm9wc0NvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMge1xyXG4gICAgQE91dHB1dCgpIHNhdmUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAgIEBPdXRwdXQoKSBjYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAgIEBPdXRwdXQoKSB0YWIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAgIEBPdXRwdXQoKSBjaGFuZ2VUb0VkaXRNb2RlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgICBASW5wdXQoKSBhbGxDb2x1bW5zOiBSZXBvcnRWaWV3Q29sdW1uW107XHJcbiAgICBASW5wdXQoKSBjb2x1bW46IGFueTtcclxuICAgIEBJbnB1dCgpIG1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xyXG4gICAgQElucHV0KCkgaW5kZXg6IGFueTtcclxuICAgIEBJbnB1dCgpIGVkaXRNb2RlOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgaXNNb2JpbGU6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBjdXN0b21Sb3dIZWlnaHQ6IGFueTtcclxuICAgIEBJbnB1dCgpIGNvbnRyb2xVaTogTGF5b3V0U2V0dGluZyB8IG51bGw7XHJcbiAgICBASW5wdXQoKSBmb3JtTGF5b3V0U2hvd0xhYmVsOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgaXNDaGVja2VkOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgaXNkaXJ0eTogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGlzTmV3SW5saW5lTW86IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBsYXlvdXQ5NDogTGF5b3V0U2V0dGluZztcclxuICAgIEBJbnB1dCgpIGRldGFpbHNDb21wb25lbnRTZXR0aW5nOiBVaVJlcG9ydFZpZXdCYXNlU2V0dGluZztcclxuXHJcbiAgICBASW5wdXQoKSB2YWx1ZTogYW55O1xyXG4gICAgQElucHV0KCkgaWNvbjogYW55O1xyXG4gICAgQElucHV0KCkgcnRsOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgZGV2aWNlTmFtZTogRGV2aWNlU2l6ZTtcclxuICAgIEBJbnB1dCgpIGRldmljZVNpemU6IEFiYnJldmF0aW9uRGV2aWNlU2l6ZTtcclxuICAgIEBJbnB1dCgpIGN1c3RvbUNvbXBvbmVudDogRWpyYXlPbGdvIHwgbnVsbDtcclxuICAgIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBTZWxmKCkgX2NvbHVtblNlcnZpY2U6IENvbHVtblNlcnZpY2UsIHByb3RlY3RlZCBfZWw6IEVsZW1lbnRSZWYpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIF9jb2x1bW5TZXJ2aWNlLnVpQ29udHJvbFJlbmRlcmVkLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9jYWxsQ2hhbmdlVG9FZGl0TW9kZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIF9jYWxsQ2hhbmdlVG9FZGl0TW9kZSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmNoYW5nZVRvRWRpdE1vZGUuZW1pdCh0aGlzLl9lbC5uYXRpdmVFbGVtZW50KTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,60 @@
1
+ import { Component, Input, ChangeDetectionStrategy } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import { BarsaApi } from './barsa-api';
4
+ import * as i0 from "@angular/core";
5
+ export class BaseComponent {
6
+ constructor() {
7
+ this._onDestroy$ = new Subject();
8
+ }
9
+ ngAfterContentInit() {
10
+ if (!BarsaApi.Common.Debug?.Data?.CustomUi) {
11
+ return;
12
+ }
13
+ console.log('ngAfterContentInit');
14
+ console.log(this);
15
+ }
16
+ ngOnChanges(changes) {
17
+ if (!BarsaApi.Common.Debug?.Data?.CustomUi) {
18
+ return;
19
+ }
20
+ console.log(changes);
21
+ }
22
+ ngOnInit() {
23
+ this.rendered = true;
24
+ if (!BarsaApi.Common.Debug?.Data?.CustomUi) {
25
+ return;
26
+ }
27
+ console.log('ngOnInit');
28
+ console.log(this);
29
+ }
30
+ ngAfterViewInit() {
31
+ if (!BarsaApi.Common.Debug?.Data?.CustomUi) {
32
+ return;
33
+ }
34
+ console.log('ngAfterViewInit');
35
+ console.log(this);
36
+ }
37
+ ngOnDestroy() {
38
+ this._onDestroy$.next();
39
+ this._onDestroy$.complete();
40
+ if (!BarsaApi.Common.Debug?.Data?.CustomUi) {
41
+ return;
42
+ }
43
+ console.log('ngOnDestroy');
44
+ console.log(this);
45
+ }
46
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
47
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BaseComponent, selector: "bnrc-base", inputs: { rendered: "rendered" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
48
+ }
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BaseComponent, decorators: [{
50
+ type: Component,
51
+ args: [{
52
+ selector: 'bnrc-base',
53
+ template: '',
54
+ changeDetection: ChangeDetectionStrategy.OnPush,
55
+ standalone: false
56
+ }]
57
+ }], ctorParameters: () => [], propDecorators: { rendered: [{
58
+ type: Input
59
+ }] } });
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL2Fic3RyYWN0LWNsYXNzZXMvYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdILFNBQVMsRUFLVCxLQUFLLEVBQ0wsdUJBQXVCLEVBQzFCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFRdkMsTUFBTSxPQUFnQixhQUFhO0lBSS9CO1FBRG1CLGdCQUFXLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7SUFDckQsQ0FBQztJQUNoQixrQkFBa0I7UUFDZCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDO1lBQ3pDLE9BQU87UUFDWCxDQUFDO1FBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ2xDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUNELFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDO1lBQ3pDLE9BQU87UUFDWCxDQUFDO1FBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBQ0QsUUFBUTtRQUNKLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUM7WUFDekMsT0FBTztRQUNYLENBQUM7UUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUNELGVBQWU7UUFDWCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDO1lBQ3pDLE9BQU87UUFDWCxDQUFDO1FBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQy9CLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUNELFdBQVc7UUFDUCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQztZQUN6QyxPQUFPO1FBQ1gsQ0FBQztRQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDM0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QixDQUFDOytHQXpDaUIsYUFBYTttR0FBYixhQUFhLHdHQUpyQixFQUFFOzs0RkFJTSxhQUFhO2tCQU5sQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxXQUFXO29CQUNyQixRQUFRLEVBQUUsRUFBRTtvQkFDWixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsVUFBVSxFQUFFLEtBQUs7aUJBQ3BCO3dEQUdZLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgT25Jbml0LFxyXG4gICAgQWZ0ZXJWaWV3SW5pdCxcclxuICAgIENvbXBvbmVudCxcclxuICAgIE9uRGVzdHJveSxcclxuICAgIE9uQ2hhbmdlcyxcclxuICAgIFNpbXBsZUNoYW5nZXMsXHJcbiAgICBBZnRlckNvbnRlbnRJbml0LFxyXG4gICAgSW5wdXQsXHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneVxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEJhcnNhQXBpIH0gZnJvbSAnLi9iYXJzYS1hcGknO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JucmMtYmFzZScsXHJcbiAgICB0ZW1wbGF0ZTogJycsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHN0YW5kYWxvbmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XHJcbiAgICAvLyBASW5wdXQoKSBzZXR0aW5nczogYW55O1xyXG4gICAgQElucHV0KCkgcmVuZGVyZWQ7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX29uRGVzdHJveSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gICAgY29uc3RydWN0b3IoKSB7fVxyXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICghQmFyc2FBcGkuQ29tbW9uLkRlYnVnPy5EYXRhPy5DdXN0b21VaSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnNvbGUubG9nKCduZ0FmdGVyQ29udGVudEluaXQnKTtcclxuICAgICAgICBjb25zb2xlLmxvZyh0aGlzKTtcclxuICAgIH1cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIUJhcnNhQXBpLkNvbW1vbi5EZWJ1Zz8uRGF0YT8uQ3VzdG9tVWkpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zb2xlLmxvZyhjaGFuZ2VzKTtcclxuICAgIH1cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMucmVuZGVyZWQgPSB0cnVlO1xyXG4gICAgICAgIGlmICghQmFyc2FBcGkuQ29tbW9uLkRlYnVnPy5EYXRhPy5DdXN0b21VaSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnNvbGUubG9nKCduZ09uSW5pdCcpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKHRoaXMpO1xyXG4gICAgfVxyXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICghQmFyc2FBcGkuQ29tbW9uLkRlYnVnPy5EYXRhPy5DdXN0b21VaSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnNvbGUubG9nKCduZ0FmdGVyVmlld0luaXQnKTtcclxuICAgICAgICBjb25zb2xlLmxvZyh0aGlzKTtcclxuICAgIH1cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX29uRGVzdHJveSQubmV4dCgpO1xyXG4gICAgICAgIHRoaXMuX29uRGVzdHJveSQuY29tcGxldGUoKTtcclxuICAgICAgICBpZiAoIUJhcnNhQXBpLkNvbW1vbi5EZWJ1Zz8uRGF0YT8uQ3VzdG9tVWkpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zb2xlLmxvZygnbmdPbkRlc3Ryb3knKTtcclxuICAgICAgICBjb25zb2xlLmxvZyh0aGlzKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,233 @@
1
+ import { Input, Output, EventEmitter, Component, ChangeDetectionStrategy, Self, Optional, Inject, HostBinding } from '@angular/core';
2
+ import { BehaviorSubject, combineLatest, Subject } from 'rxjs';
3
+ import { distinctUntilChanged, map, takeUntil } from 'rxjs/operators';
4
+ import { BaseComponent } from './base.component';
5
+ import { DIALOG_SERVICE } from '../injdection-tokens';
6
+ import { BarsaApi } from './barsa-api';
7
+ import { getDeviceIsMobile, getDeviceIsTablet } from '../constants';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "../services";
10
+ import * as i2 from "../pipes";
11
+ import * as i3 from "@angular/router";
12
+ import * as i4 from "@angular/platform-browser";
13
+ import * as i5 from "../date-services";
14
+ export class FieldBaseComponent extends BaseComponent {
15
+ get customFieldInfo() {
16
+ return this.context.Setting.CustomFieldInfo;
17
+ }
18
+ constructor(_portalService, _bbbPipe, _picFieldSrc, _numeralPipe, _el, _cdr, _renderer2, _activatedRoute, _domSanitizer, _dialogService, _uploadService, _dateService, _audioRecorder, _videoRecoder, _columnService) {
19
+ super();
20
+ this._portalService = _portalService;
21
+ this._bbbPipe = _bbbPipe;
22
+ this._picFieldSrc = _picFieldSrc;
23
+ this._numeralPipe = _numeralPipe;
24
+ this._el = _el;
25
+ this._cdr = _cdr;
26
+ this._renderer2 = _renderer2;
27
+ this._activatedRoute = _activatedRoute;
28
+ this._domSanitizer = _domSanitizer;
29
+ this._dialogService = _dialogService;
30
+ this._uploadService = _uploadService;
31
+ this._dateService = _dateService;
32
+ this._audioRecorder = _audioRecorder;
33
+ this._videoRecoder = _videoRecoder;
34
+ this._columnService = _columnService;
35
+ this.valueChange = new EventEmitter();
36
+ this.formmatedValue = new EventEmitter();
37
+ this.isMobile = getDeviceIsMobile();
38
+ this.isTablet = getDeviceIsTablet();
39
+ this.mobileConfig = {
40
+ title: 'انتخاب',
41
+ approveButtonText: 'تایید',
42
+ cancelButtonText: 'انصراف',
43
+ hasCloseButton: true,
44
+ dialogConfig: {
45
+ ariaLabel: 'انتخاب'
46
+ }
47
+ };
48
+ this._refreshSource = new Subject();
49
+ this._valueChangedSource = new Subject();
50
+ this._disableChangedSource = new BehaviorSubject(false);
51
+ this._readonlyChangedSource = new BehaviorSubject(false);
52
+ this.refresh$ = this._refreshSource.asObservable().pipe(takeUntil(this._onDestroy$));
53
+ this.value$ = this._valueChangedSource.asObservable().pipe(takeUntil(this._onDestroy$));
54
+ this.deviceSize$ = this._portalService.deviceSize$;
55
+ this.disable$ = this._disableChangedSource
56
+ .asObservable()
57
+ .pipe(takeUntil(this._onDestroy$), distinctUntilChanged());
58
+ this.readonly$ = this._readonlyChangedSource
59
+ .asObservable()
60
+ .pipe(takeUntil(this._onDestroy$), distinctUntilChanged());
61
+ this.disableOrReadonly$ = combineLatest([this.readonly$, this.disable$]).pipe(map(([disable, readonly]) => disable || readonly), distinctUntilChanged());
62
+ this.el = _el;
63
+ }
64
+ ngOnInit() {
65
+ super.ngOnInit();
66
+ if (this.context) {
67
+ this.context.dom = this.el.nativeElement;
68
+ this.context.id = this.id;
69
+ // this.context.rendered = true;
70
+ this.Setting = this.context ? this.context.Setting : null;
71
+ const readonly = this.context?.readOnly;
72
+ this._setReadonly(readonly, false);
73
+ this._setDisable(this.context.disable, false);
74
+ // this.parameters = BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.CustomUi.Parameters', null);
75
+ // if (!this.parameters) {
76
+ // this.parameters = BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.CustomUi.Settings', null);
77
+ // }
78
+ this.JsonExtraProp = BarsaApi.Common.Util.TryGetValue(this.context, 'Setting.JsonExtraProp', null);
79
+ }
80
+ this._addListener();
81
+ this._setMobileConfig();
82
+ }
83
+ ngOnDestroy() {
84
+ super.ngOnDestroy();
85
+ this._removeListener();
86
+ }
87
+ ngAfterViewInit() {
88
+ super.ngAfterViewInit();
89
+ if (this.context) {
90
+ this.context.rendered = true;
91
+ }
92
+ this._columnService?.controlRendered();
93
+ if (this.focusControl) {
94
+ const elDom = this._el.nativeElement;
95
+ const focusableNodeList = elDom.querySelectorAll(' button, [href], input, select, textarea, [tabindex]:not([tabindex=”-1″])');
96
+ let focused = false;
97
+ focusableNodeList.forEach((el) => {
98
+ const tagName = el.tagName.toLocaleLowerCase();
99
+ if (!focused &&
100
+ el.offsetWidth > 0 &&
101
+ el.offsetHeight > 0 &&
102
+ el.getAttribute('disabled') !== 'true' &&
103
+ el.getAttribute('ng-reflect-disabled') !== 'true' &&
104
+ !tagName.startsWith('fdp')) {
105
+ el.focus();
106
+ focused = true;
107
+ }
108
+ });
109
+ }
110
+ }
111
+ fireContextEvent(event, value, value1, value2) {
112
+ this.context.fireEvent(event, value, value1, value2);
113
+ }
114
+ _setMobileConfig() {
115
+ const mobileConfig = this.mobileConfig;
116
+ mobileConfig.title = this.Setting?.ControlFieldCaptionTranslated;
117
+ mobileConfig.dialogConfig && (mobileConfig.dialogConfig.ariaLabel = mobileConfig.title);
118
+ mobileConfig.approveButtonText = this._bbbPipe.transform('Ok');
119
+ mobileConfig.cancelButtonText = this._bbbPipe.transform('Cancel');
120
+ }
121
+ _addListener() {
122
+ if (this.context && this.context.on) {
123
+ this.context.on({
124
+ ControlValueChanged: this._setValue.bind(this),
125
+ ControlDisableChanged: this._setDisable.bind(this),
126
+ ControlReadonlyChanged: this._setReadonly.bind(this),
127
+ ControlRefresh: this._setRefresh.bind(this),
128
+ ConfigChanged: this._configChaned.bind(this)
129
+ });
130
+ }
131
+ }
132
+ _removeListener() {
133
+ if (this.context && this.context.un) {
134
+ this.context.un('ControlValueChanged', this._setValue);
135
+ this.context.un('ControlDisableChanged', this._setDisable);
136
+ this.context.un('ControlReadonlyChanged', this._setReadonly);
137
+ this.context.un('ControlRefresh', this._setRefresh);
138
+ this.context.un('ConfigChanged', this._configChaned);
139
+ }
140
+ }
141
+ _configChaned(options) {
142
+ // implemented by child components
143
+ this._cdr.detectChanges();
144
+ }
145
+ _setValue(value) {
146
+ this.value = value;
147
+ this._valueChangedSource.next(value);
148
+ this._cdr.detectChanges();
149
+ }
150
+ _setRefresh(value) {
151
+ this._refreshSource.next(value);
152
+ this._cdr.detectChanges();
153
+ }
154
+ _setDisable(value, changeDetect = true) {
155
+ this._disableChangedSource.next(value);
156
+ if (changeDetect) {
157
+ this._cdr.detectChanges();
158
+ }
159
+ }
160
+ _setReadonly(value, changeDetect = true) {
161
+ this._readonlyChangedSource.next(value);
162
+ if (changeDetect) {
163
+ this._cdr.detectChanges();
164
+ }
165
+ }
166
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FieldBaseComponent, deps: [{ token: i1.PortalService }, { token: i2.BbbTranslatePipe }, { token: i2.PictureFieldSourcePipe }, { token: i2.NumeralPipe }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i3.ActivatedRoute }, { token: i4.DomSanitizer }, { token: DIALOG_SERVICE, optional: true }, { token: i1.UploadService, optional: true, self: true }, { token: i5.DateService, optional: true, self: true }, { token: i1.AudioRecordingService, optional: true, self: true }, { token: i1.VideoRecordingService, optional: true, self: true }, { token: i1.ColumnService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
167
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FieldBaseComponent, selector: "bnrc-field-base", inputs: { context: "context", focusControl: "focusControl", layoutInfo: "layoutInfo", value: "value", width: "width", height: "height", formHeight: "formHeight", inlineEdit: "inlineEdit", formContainer: "formContainer", id: "id", parametes: "parametes" }, outputs: { valueChange: "valueChange", formmatedValue: "formmatedValue" }, host: { properties: { "class.isMobile": "this.isMobile", "class.isTablet": "this.isTablet" } }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
168
+ }
169
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FieldBaseComponent, decorators: [{
170
+ type: Component,
171
+ args: [{
172
+ selector: 'bnrc-field-base',
173
+ template: '',
174
+ changeDetection: ChangeDetectionStrategy.OnPush,
175
+ standalone: false
176
+ }]
177
+ }], ctorParameters: () => [{ type: i1.PortalService }, { type: i2.BbbTranslatePipe }, { type: i2.PictureFieldSourcePipe }, { type: i2.NumeralPipe }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }, { type: i3.ActivatedRoute }, { type: i4.DomSanitizer }, { type: undefined, decorators: [{
178
+ type: Optional
179
+ }, {
180
+ type: Inject,
181
+ args: [DIALOG_SERVICE]
182
+ }] }, { type: i1.UploadService, decorators: [{
183
+ type: Self
184
+ }, {
185
+ type: Optional
186
+ }] }, { type: i5.DateService, decorators: [{
187
+ type: Self
188
+ }, {
189
+ type: Optional
190
+ }] }, { type: i1.AudioRecordingService, decorators: [{
191
+ type: Self
192
+ }, {
193
+ type: Optional
194
+ }] }, { type: i1.VideoRecordingService, decorators: [{
195
+ type: Self
196
+ }, {
197
+ type: Optional
198
+ }] }, { type: i1.ColumnService, decorators: [{
199
+ type: Optional
200
+ }] }], propDecorators: { context: [{
201
+ type: Input
202
+ }], focusControl: [{
203
+ type: Input
204
+ }], layoutInfo: [{
205
+ type: Input
206
+ }], value: [{
207
+ type: Input
208
+ }], width: [{
209
+ type: Input
210
+ }], height: [{
211
+ type: Input
212
+ }], formHeight: [{
213
+ type: Input
214
+ }], inlineEdit: [{
215
+ type: Input
216
+ }], formContainer: [{
217
+ type: Input
218
+ }], id: [{
219
+ type: Input
220
+ }], parametes: [{
221
+ type: Input
222
+ }], valueChange: [{
223
+ type: Output
224
+ }], formmatedValue: [{
225
+ type: Output
226
+ }], isMobile: [{
227
+ type: HostBinding,
228
+ args: ['class.isMobile']
229
+ }], isTablet: [{
230
+ type: HostBinding,
231
+ args: ['class.isTablet']
232
+ }] } });
233
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLW5vdmluLXJheS1jb3JlL3NyYy9saWIvYWJzdHJhY3QtY2xhc3Nlcy9maWVsZC1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixTQUFTLEVBTVQsdUJBQXVCLEVBRXZCLElBQUksRUFDSixRQUFRLEVBQ1IsTUFBTSxFQUNOLFdBQVcsRUFDZCxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFakQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR3RELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFdkMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDOzs7Ozs7O0FBNkJwRSxNQUFNLE9BQWdCLGtCQUFtQixTQUFRLGFBQWE7SUFtQzFELElBQUksZUFBZTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDO0lBQ2hELENBQUM7SUFNRCxZQUNjLGNBQTZCLEVBQzdCLFFBQTBCLEVBQzFCLFlBQW9DLEVBQ3BDLFlBQXlCLEVBQ3pCLEdBQWUsRUFDZixJQUF1QixFQUN2QixVQUFxQixFQUNyQixlQUErQixFQUMvQixhQUEyQixFQUNTLGNBQW1CLEVBQ25DLGNBQTZCLEVBQzdCLFlBQXlCLEVBQ3pCLGNBQXFDLEVBQ3JDLGFBQW9DLEVBQzVDLGNB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SSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzlCLENBQUM7SUFDTCxDQUFDOytHQXhMaUIsa0JBQWtCLDhSQXFEWixjQUFjO21HQXJEcEIsa0JBQWtCLHlmQUoxQixFQUFFOzs0RkFJTSxrQkFBa0I7a0JBTnZDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsUUFBUSxFQUFFLEVBQUU7b0JBQ1osZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFVBQVUsRUFBRSxLQUFLO2lCQUNwQjs7MEJBc0RRLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsY0FBYzs7MEJBQ2pDLElBQUk7OzBCQUFJLFFBQVE7OzBCQUNoQixJQUFJOzswQkFBSSxRQUFROzswQkFDaEIsSUFBSTs7MEJBQUksUUFBUTs7MEJBQ2hCLElBQUk7OzBCQUFJLFFBQVE7OzBCQUNoQixRQUFRO3lDQXpESixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDd0IsUUFBUTtzQkFBdEMsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBQ0UsUUFBUTtzQkFBdEMsV0FBVzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgSW5wdXQsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBFdmVudEVtaXR0ZXIsXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBPbkluaXQsXHJcbiAgICBPbkRlc3Ryb3ksXHJcbiAgICBBZnRlclZpZXdJbml0LFxyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBSZW5kZXJlcjIsXHJcbiAgICBTZWxmLFxyXG4gICAgT3B0aW9uYWwsXHJcbiAgICBJbmplY3QsXHJcbiAgICBIb3N0QmluZGluZ1xyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4vYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEYXRlU2VydmljZSB9IGZyb20gJy4uL2RhdGUtc2VydmljZXMnO1xyXG5pbXBvcnQgeyBESUFMT0dfU0VSVklDRSB9IGZyb20gJy4uL2luamRlY3Rpb24tdG9rZW5zJztcclxuaW1wb3J0IHsgQmJiVHJhbnNsYXRlUGlwZSwgTnVtZXJhbFBpcGUsIFBpY3R1cmVGaWVsZFNvdXJjZVBpcGUgfSBmcm9tICcuLi9waXBlcyc7XHJcbmltcG9ydCB7IEF1ZGlvUmVjb3JkaW5nU2VydmljZSwgQ29sdW1uU2VydmljZSwgUG9ydGFsU2VydmljZSwgVXBsb2FkU2VydmljZSwgVmlkZW9SZWNvcmRpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBCYXJzYUFwaSB9IGZyb20gJy4vYmFyc2EtYXBpJztcclxuaW1wb3J0IHsgR2VuZXJhbENvbnRyb2xJbmZvTW9kZWwsIEFiYnJldmF0aW9uRGV2aWNlU2l6ZSwgTWV0YW9iamVjdERhdGFNb2RlbCB9IGZyb20gJy4vbW9kZWxzJztcclxuaW1wb3J0IHsgZ2V0RGV2aWNlSXNNb2JpbGUsIGdldERldmljZUlzVGFibGV0IH0gZnJvbSAnLi4vY29uc3RhbnRzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRmllbGRTZXR0aW5nIHtcclxuICAgIFtrZXk6IHN0cmluZ106IGFueTtcclxuICAgIENvbnRyb2xGaWVsZENhcHRpb246IHN0cmluZztcclxuICAgIENvbnRyb2xGaWVsZENhcHRpb25UcmFuc2xhdGVkOiBzdHJpbmc7XHJcbiAgICBDb250cm9sRmllbGREZWZJZDogc3RyaW5nO1xyXG4gICAgQ29udHJvbE5hbWU6IHN0cmluZztcclxuICAgIFJlbGF0ZWRGaWVsZExpc3Q6IFtdO1xyXG4gICAgSGlkZTogYm9vbGVhbjtcclxuICAgIHh0eXBlOiBzdHJpbmc7XHJcbiAgICBMYWJlbFBvc2l0aW9uOiBzdHJpbmc7XHJcbiAgICBJc01hbmRhdG9yeTogYm9vbGVhbjtcclxuICAgIElzVmlzaWJsZTogYm9vbGVhbjtcclxuICAgIFNob3dMYWJlbDogYm9vbGVhbjtcclxuICAgIElzUmVhZE9ubHk6IGJvb2xlYW47XHJcbiAgICBJc0VuYWJsZWQ6IGJvb2xlYW47XHJcbiAgICBJc0JvbGQ6IGJvb2xlYW47XHJcbiAgICBJc0F1dG9tYXRpYzogYm9vbGVhbjtcclxuICAgIEpzb25FeHRyYVByb3A6IGFueSB8IG51bGw7XHJcbiAgICBGaWVsZEljb246IHN0cmluZztcclxuICAgIElzTHRyOiBib29sZWFuO1xyXG59XHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdibnJjLWZpZWxkLWJhc2UnLFxyXG4gICAgdGVtcGxhdGU6ICcnLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRmllbGRCYXNlQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcclxuICAgIEBJbnB1dCgpIGNvbnRleHQ6IGFueTtcclxuICAgIEBJbnB1dCgpIGZvY3VzQ29udHJvbDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGxheW91dEluZm86IGFueTtcclxuICAgIEBJbnB1dCgpIHZhbHVlOiBhbnk7XHJcbiAgICBASW5wdXQoKSB3aWR0aDogbnVtYmVyO1xyXG4gICAgQElucHV0KCkgaGVpZ2h0OiBudW1iZXI7XHJcbiAgICBASW5wdXQoKSBmb3JtSGVpZ2h0OiBudW1iZXI7XHJcbiAgICBASW5wdXQoKSBpbmxpbmVFZGl0OiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgZm9ybUNvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XHJcbiAgICBASW5wdXQoKSBpZDogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgcGFyYW1ldGVzOiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xyXG4gICAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgICBAT3V0cHV0KCkgZm9ybW1hdGVkVmFsdWUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaXNNb2JpbGUnKSBpc01vYmlsZSA9IGdldERldmljZUlzTW9iaWxlKCk7XHJcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlzVGFibGV0JykgaXNUYWJsZXQgPSBnZXREZXZpY2VJc1RhYmxldCgpO1xyXG4gICAgSnNvbkV4dHJhUHJvcDogYW55O1xyXG4gICAgcGFyYW1ldGVyczogYW55O1xyXG4gICAgU2V0dGluZzogR2VuZXJhbENvbnRyb2xJbmZvTW9kZWw7XHJcbiAgICByZWZyZXNoJDogT2JzZXJ2YWJsZTxhbnk+O1xyXG4gICAgdmFsdWUkOiBPYnNlcnZhYmxlPGFueT47XHJcbiAgICBkaXNhYmxlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuICAgIHJlYWRvbmx5JDogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuICAgIGRpc2FibGVPclJlYWRvbmx5JDogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuICAgIGRldmljZVNpemUkOiBPYnNlcnZhYmxlPEFiYnJldmF0aW9uRGV2aWNlU2l6ZT47XHJcbiAgICBlbDogYW55O1xyXG4gICAgbW9iaWxlQ29uZmlnOiBhbnkgPSB7XHJcbiAgICAgICAgdGl0bGU6ICfYp9mG2KrYrtin2KgnLFxyXG4gICAgICAgIGFwcHJvdmVCdXR0b25UZXh0OiAn2KrYp9uM24zYrycsXHJcbiAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogJ9in2YbYtdix2KfZgScsXHJcbiAgICAgICAgaGFzQ2xvc2VCdXR0b246IHRydWUsXHJcbiAgICAgICAgZGlhbG9nQ29uZmlnOiB7XHJcbiAgICAgICAgICAgIGFyaWFMYWJlbDogJ9in2YbYqtiu2KfYqCdcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgZ2V0IGN1c3RvbUZpZWxkSW5mbygpOiBNZXRhb2JqZWN0RGF0YU1vZGVsIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jb250ZXh0LlNldHRpbmcuQ3VzdG9tRmllbGRJbmZvO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfcmVmcmVzaFNvdXJjZSA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICAgIHByaXZhdGUgX3ZhbHVlQ2hhbmdlZFNvdXJjZSA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICAgIHByaXZhdGUgX2Rpc2FibGVDaGFuZ2VkU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XHJcbiAgICBwcml2YXRlIF9yZWFkb25seUNoYW5nZWRTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcm90ZWN0ZWQgX3BvcnRhbFNlcnZpY2U6IFBvcnRhbFNlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIF9iYmJQaXBlOiBCYmJUcmFuc2xhdGVQaXBlLFxyXG4gICAgICAgIHByb3RlY3RlZCBfcGljRmllbGRTcmM6IFBpY3R1cmVGaWVsZFNvdXJjZVBpcGUsXHJcbiAgICAgICAgcHJvdGVjdGVkIF9udW1lcmFsUGlwZTogTnVtZXJhbFBpcGUsXHJcbiAgICAgICAgcHJvdGVjdGVkIF9lbDogRWxlbWVudFJlZixcclxuICAgICAgICBwcm90ZWN0ZWQgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgcHJvdGVjdGVkIF9yZW5kZXJlcjI6IFJlbmRlcmVyMixcclxuICAgICAgICBwcm90ZWN0ZWQgX2FjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgICAgICBwcm90ZWN0ZWQgX2RvbVNhbml0aXplcjogRG9tU2FuaXRpemVyLFxyXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRElBTE9HX1NFUlZJQ0UpIHByb3RlY3RlZCBfZGlhbG9nU2VydmljZTogYW55LFxyXG4gICAgICAgIEBTZWxmKCkgQE9wdGlvbmFsKCkgcHJvdGVjdGVkIF91cGxvYWRTZXJ2aWNlOiBVcGxvYWRTZXJ2aWNlLFxyXG4gICAgICAgIEBTZWxmKCkgQE9wdGlvbmFsKCkgcHJvdGVjdGVkIF9kYXRlU2VydmljZTogRGF0ZVNlcnZpY2UsXHJcbiAgICAgICAgQFNlbGYoKSBAT3B0aW9uYWwoKSBwcm90ZWN0ZWQgX2F1ZGlvUmVjb3JkZXI6IEF1ZGlvUmVjb3JkaW5nU2VydmljZSxcclxuICAgICAgICBAU2VsZigpIEBPcHRpb25hbCgpIHByb3RlY3RlZCBfdmlkZW9SZWNvZGVyOiBWaWRlb1JlY29yZGluZ1NlcnZpY2UsXHJcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJvdGVjdGVkIF9jb2x1bW5TZXJ2aWNlOiBDb2x1bW5TZXJ2aWNlXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIHRoaXMucmVmcmVzaCQgPSB0aGlzLl9yZWZyZXNoU291cmNlLmFzT2JzZXJ2YWJsZSgpLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKTtcclxuICAgICAgICB0aGlzLnZhbHVlJCA9IHRoaXMuX3ZhbHVlQ2hhbmdlZFNvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSk7XHJcbiAgICAgICAgdGhpcy5kZXZpY2VTaXplJCA9IHRoaXMuX3BvcnRhbFNlcnZpY2UuZGV2aWNlU2l6ZSQ7XHJcbiAgICAgICAgdGhpcy5kaXNhYmxlJCA9IHRoaXMuX2Rpc2FibGVDaGFuZ2VkU291cmNlXHJcbiAgICAgICAgICAgIC5hc09ic2VydmFibGUoKVxyXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xyXG4gICAgICAgIHRoaXMucmVhZG9ubHkkID0gdGhpcy5fcmVhZG9ubHlDaGFuZ2VkU291cmNlXHJcbiAgICAgICAgICAgIC5hc09ic2VydmFibGUoKVxyXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xyXG4gICAgICAgIHRoaXMuZGlzYWJsZU9yUmVhZG9ubHkkID0gY29tYmluZUxhdGVzdChbdGhpcy5yZWFkb25seSQsIHRoaXMuZGlzYWJsZSRdKS5waXBlKFxyXG4gICAgICAgICAgICBtYXAoKFtkaXNhYmxlLCByZWFkb25seV0pID0+IGRpc2FibGUgfHwgcmVhZG9ubHkpLFxyXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmVsID0gX2VsO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgaWYgKHRoaXMuY29udGV4dCkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRleHQuZG9tID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRleHQuaWQgPSB0aGlzLmlkO1xyXG5cclxuICAgICAgICAgICAgLy8gdGhpcy5jb250ZXh0LnJlbmRlcmVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5TZXR0aW5nID0gdGhpcy5jb250ZXh0ID8gdGhpcy5jb250ZXh0LlNldHRpbmcgOiBudWxsO1xyXG4gICAgICAgICAgICBjb25zdCByZWFkb25seSA9IHRoaXMuY29udGV4dD8ucmVhZE9ubHk7XHJcbiAgICAgICAgICAgIHRoaXMuX3NldFJlYWRvbmx5KHJlYWRvbmx5LCBmYWxzZSk7XHJcbiAgICAgICAgICAgIHRoaXMuX3NldERpc2FibGUodGhpcy5jb250ZXh0LmRpc2FibGUsIGZhbHNlKTtcclxuICAgICAgICAgICAgLy8gdGhpcy5wYXJhbWV0ZXJzID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUodGhpcy5jb250ZXh0LCAnU2V0dGluZy5DdXN0b21VaS5QYXJhbWV0ZXJzJywgbnVsbCk7XHJcbiAgICAgICAgICAgIC8vIGlmICghdGhpcy5wYXJhbWV0ZXJzKSB7XHJcbiAgICAgICAgICAgIC8vICAgICB0aGlzLnBhcmFtZXRlcnMgPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZSh0aGlzLmNvbnRleHQsICdTZXR0aW5nLkN1c3RvbVVpLlNldHRpbmdzJywgbnVsbCk7XHJcbiAgICAgICAgICAgIC8vIH1cclxuICAgICAgICAgICAgdGhpcy5Kc29uRXh0cmFQcm9wID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUodGhpcy5jb250ZXh0LCAnU2V0dGluZy5Kc29uRXh0cmFQcm9wJywgbnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX2FkZExpc3RlbmVyKCk7XHJcbiAgICAgICAgdGhpcy5fc2V0TW9iaWxlQ29uZmlnKCk7XHJcbiAgICB9XHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xyXG4gICAgICAgIHRoaXMuX3JlbW92ZUxpc3RlbmVyKCk7XHJcbiAgICB9XHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XHJcbiAgICAgICAgaWYgKHRoaXMuY29udGV4dCkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRleHQucmVuZGVyZWQgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9jb2x1bW5TZXJ2aWNlPy5jb250cm9sUmVuZGVyZWQoKTtcclxuICAgICAgICBpZiAodGhpcy5mb2N1c0NvbnRyb2wpIHtcclxuICAgICAgICAgICAgY29uc3QgZWxEb20gPSB0aGlzLl9lbC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICAgICAgICBjb25zdCBmb2N1c2FibGVOb2RlTGlzdDogTm9kZUxpc3RPZjxIVE1MRWxlbWVudD4gPSBlbERvbS5xdWVyeVNlbGVjdG9yQWxsKFxyXG4gICAgICAgICAgICAgICAgJyBidXR0b24sIFtocmVmXSwgaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEsIFt0YWJpbmRleF06bm90KFt0YWJpbmRleD3igJ0tMeKAs10pJ1xyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBsZXQgZm9jdXNlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICBmb2N1c2FibGVOb2RlTGlzdC5mb3JFYWNoKChlbDogSFRNTEVsZW1lbnQpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHRhZ05hbWU6IHN0cmluZyA9IGVsLnRhZ05hbWUudG9Mb2NhbGVMb3dlckNhc2UoKTtcclxuICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAhZm9jdXNlZCAmJlxyXG4gICAgICAgICAgICAgICAgICAgIGVsLm9mZnNldFdpZHRoID4gMCAmJlxyXG4gICAgICAgICAgICAgICAgICAgIGVsLm9mZnNldEhlaWdodCA+IDAgJiZcclxuICAgICAgICAgICAgICAgICAgICBlbC5nZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJykgIT09ICd0cnVlJyAmJlxyXG4gICAgICAgICAgICAgICAgICAgIGVsLmdldEF0dHJpYnV0ZSgnbmctcmVmbGVjdC1kaXNhYmxlZCcpICE9PSAndHJ1ZScgJiZcclxuICAgICAgICAgICAgICAgICAgICAhdGFnTmFtZS5zdGFydHNXaXRoKCdmZHAnKVxyXG4gICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZWwuZm9jdXMoKTtcclxuICAgICAgICAgICAgICAgICAgICBmb2N1c2VkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGZpcmVDb250ZXh0RXZlbnQoZXZlbnQ6IHN0cmluZywgdmFsdWU6IGFueSwgdmFsdWUxPzogYW55LCB2YWx1ZTI/OiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmNvbnRleHQuZmlyZUV2ZW50KGV2ZW50LCB2YWx1ZSwgdmFsdWUxLCB2YWx1ZTIpO1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIF9zZXRNb2JpbGVDb25maWcoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgbW9iaWxlQ29uZmlnID0gdGhpcy5tb2JpbGVDb25maWc7XHJcbiAgICAgICAgbW9iaWxlQ29uZmlnLnRpdGxlID0gdGhpcy5TZXR0aW5nPy5Db250cm9sRmllbGRDYXB0aW9uVHJhbnNsYXRlZDtcclxuICAgICAgICBtb2JpbGVDb25maWcuZGlhbG9nQ29uZmlnICYmIChtb2JpbGVDb25maWcuZGlhbG9nQ29uZmlnLmFyaWFMYWJlbCA9IG1vYmlsZUNvbmZpZy50aXRsZSk7XHJcbiAgICAgICAgbW9iaWxlQ29uZmlnLmFwcHJvdmVCdXR0b25UZXh0ID0gdGhpcy5fYmJiUGlwZS50cmFuc2Zvcm0oJ09rJyk7XHJcbiAgICAgICAgbW9iaWxlQ29uZmlnLmNhbmNlbEJ1dHRvblRleHQgPSB0aGlzLl9iYmJQaXBlLnRyYW5zZm9ybSgnQ2FuY2VsJyk7XHJcbiAgICB9XHJcbiAgICBwcm90ZWN0ZWQgX2FkZExpc3RlbmVyKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmNvbnRleHQgJiYgdGhpcy5jb250ZXh0Lm9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC5vbih7XHJcbiAgICAgICAgICAgICAgICBDb250cm9sVmFsdWVDaGFuZ2VkOiB0aGlzLl9zZXRWYWx1ZS5iaW5kKHRoaXMpLFxyXG4gICAgICAgICAgICAgICAgQ29udHJvbERpc2FibGVDaGFuZ2VkOiB0aGlzLl9zZXREaXNhYmxlLmJpbmQodGhpcyksXHJcbiAgICAgICAgICAgICAgICBDb250cm9sUmVhZG9ubHlDaGFuZ2VkOiB0aGlzLl9zZXRSZWFkb25seS5iaW5kKHRoaXMpLFxyXG4gICAgICAgICAgICAgICAgQ29udHJvbFJlZnJlc2g6IHRoaXMuX3NldFJlZnJlc2guYmluZCh0aGlzKSxcclxuICAgICAgICAgICAgICAgIENvbmZpZ0NoYW5nZWQ6IHRoaXMuX2NvbmZpZ0NoYW5lZC5iaW5kKHRoaXMpXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHByb3RlY3RlZCBfcmVtb3ZlTGlzdGVuZXIoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29udGV4dCAmJiB0aGlzLmNvbnRleHQudW4pIHtcclxuICAgICAgICAgICAgdGhpcy5jb250ZXh0LnVuKCdDb250cm9sVmFsdWVDaGFuZ2VkJywgdGhpcy5fc2V0VmFsdWUpO1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRleHQudW4oJ0NvbnRyb2xEaXNhYmxlQ2hhbmdlZCcsIHRoaXMuX3NldERpc2FibGUpO1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRleHQudW4oJ0NvbnRyb2xSZWFkb25seUNoYW5nZWQnLCB0aGlzLl9zZXRSZWFkb25seSk7XHJcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC51bignQ29udHJvbFJlZnJlc2gnLCB0aGlzLl9zZXRSZWZyZXNoKTtcclxuICAgICAgICAgICAgdGhpcy5jb250ZXh0LnVuKCdDb25maWdDaGFuZ2VkJywgdGhpcy5fY29uZmlnQ2hhbmVkKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBwcm90ZWN0ZWQgX2NvbmZpZ0NoYW5lZChvcHRpb25zKTogdm9pZCB7XHJcbiAgICAgICAgLy8gaW1wbGVtZW50ZWQgYnkgY2hpbGQgY29tcG9uZW50c1xyXG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcbiAgICBwcm90ZWN0ZWQgX3NldFZhbHVlKHZhbHVlKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlQ2hhbmdlZFNvdXJjZS5uZXh0KHZhbHVlKTtcclxuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIF9zZXRSZWZyZXNoKHZhbHVlKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fcmVmcmVzaFNvdXJjZS5uZXh0KHZhbHVlKTtcclxuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIF9zZXREaXNhYmxlKHZhbHVlLCBjaGFuZ2VEZXRlY3QgPSB0cnVlKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZGlzYWJsZUNoYW5nZWRTb3VyY2UubmV4dCh2YWx1ZSk7XHJcbiAgICAgICAgaWYgKGNoYW5nZURldGVjdCkge1xyXG4gICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHByb3RlY3RlZCBfc2V0UmVhZG9ubHkodmFsdWUsIGNoYW5nZURldGVjdCA9IHRydWUpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9yZWFkb25seUNoYW5nZWRTb3VyY2UubmV4dCh2YWx1ZSk7XHJcbiAgICAgICAgaWYgKGNoYW5nZURldGVjdCkge1xyXG4gICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,75 @@
1
+ import { BaseComponent } from './base.component';
2
+ import { formatBytes } from '../constants';
3
+ import { BarsaApi } from './barsa-api';
4
+ export class FilesValidationHelper extends BaseComponent {
5
+ get maxFileCount() {
6
+ return this._maxFileCount;
7
+ }
8
+ set maxFileCount(val) {
9
+ this._maxFileCount = val;
10
+ }
11
+ get maxFileSize() {
12
+ return this._maxFileSize;
13
+ }
14
+ set maxFileSize(val) {
15
+ this._maxFileSize = val * 1024;
16
+ }
17
+ get maxTotalFileSize() {
18
+ return this._maxTotalFileSize;
19
+ }
20
+ set maxTotalFileSize(val) {
21
+ this._maxTotalFileSize = val * 1024;
22
+ }
23
+ constructor(maxFileCount, maxFileSize, maxTotalFileSize) {
24
+ super();
25
+ this.maxFileCount = Number(maxFileCount);
26
+ this.maxFileSize = Number(maxFileSize);
27
+ this.maxTotalFileSize = Number(maxTotalFileSize);
28
+ }
29
+ validateFiles(files) {
30
+ return this._validateSize(files);
31
+ }
32
+ _validateSize(files) {
33
+ const totalFileSize = files.reduce((accumulator, currFile) => accumulator + currFile.size, 0);
34
+ const uplaodTotalSizeTooBigText = BarsaApi.BBB['Uplaod_TotalSizeTooBig'];
35
+ const uplaodFileTooBigText = BarsaApi.BBB['Uplaod_FileTooBig'];
36
+ const maxFilesExceeded = BarsaApi.BBB['Uplaod_MaxFilesExceeded'];
37
+ let errorMsg = '';
38
+ if (files.length > this.maxFileCount && this.maxFileCount > 0) {
39
+ errorMsg = maxFilesExceeded + `(${this.maxFileCount})`;
40
+ }
41
+ const fileReachSize = [];
42
+ files.forEach((file) => {
43
+ if (file.size > this.maxFileSize) {
44
+ fileReachSize.push(file);
45
+ }
46
+ });
47
+ if (files.length > 1 && this.maxTotalFileSize > 0 && totalFileSize > this.maxTotalFileSize) {
48
+ errorMsg = uplaodTotalSizeTooBigText
49
+ ?.replace('{{{filesize}}}', this._getMbSize(totalFileSize))
50
+ .replace('{{maxFilesize}}', this._getMbSize(this.maxTotalFileSize));
51
+ }
52
+ else if (fileReachSize.length) {
53
+ errorMsg += uplaodFileTooBigText
54
+ ?.replace('{{{filesize}}}', this._getMbSize(fileReachSize[0].size))
55
+ .replace('{{maxFilesize}}', this._getMbSize(this.maxFileSize));
56
+ errorMsg +=
57
+ `<br/>` +
58
+ fileReachSize
59
+ .map((c, index) => `<div class="file-validation" ><strong>${index + 1}-</strong><strong>${c.name}</strong></div>`)
60
+ .join('<br/>');
61
+ }
62
+ if (errorMsg) {
63
+ BarsaApi.Ul.MsgBox.Error(errorMsg, () => { });
64
+ return false;
65
+ }
66
+ return true;
67
+ }
68
+ _getKbSize(size) {
69
+ return formatBytes(size, 2, 'KB');
70
+ }
71
+ _getMbSize(size) {
72
+ return formatBytes(size, 2, 'MB');
73
+ }
74
+ }
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXMtdmFsaWRhdGlvbi1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL2Fic3RyYWN0LWNsYXNzZXMvZmlsZXMtdmFsaWRhdGlvbi1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV2QyxNQUFNLE9BQU8scUJBQXNCLFNBQVEsYUFBYTtJQUtwRCxJQUFJLFlBQVk7UUFDWixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUNELElBQUksWUFBWSxDQUFDLEdBQVc7UUFDeEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUM7SUFDN0IsQ0FBQztJQUNELElBQUksV0FBVztRQUNYLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM3QixDQUFDO0lBQ0QsSUFBSSxXQUFXLENBQUMsR0FBVztRQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUM7SUFDbkMsQ0FBQztJQUNELElBQUksZ0JBQWdCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2xDLENBQUM7SUFDRCxJQUFJLGdCQUFnQixDQUFDLEdBQVc7UUFDNUIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUM7SUFDeEMsQ0FBQztJQUVELFlBQVksWUFBb0IsRUFBRSxXQUFtQixFQUFFLGdCQUF3QjtRQUMzRSxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxXQUFX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VyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUNPLFVBQVUsQ0FBQyxJQUFJO1FBQ25CLE9BQU8sV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdEMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4vYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgZm9ybWF0Qnl0ZXMgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgQmFyc2FBcGkgfSBmcm9tICcuL2JhcnNhLWFwaSc7XG5cbmV4cG9ydCBjbGFzcyBGaWxlc1ZhbGlkYXRpb25IZWxwZXIgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgICBfbWF4RmlsZUNvdW50OiBudW1iZXI7XG4gICAgX21heEZpbGVTaXplOiBudW1iZXI7XG4gICAgX21heFRvdGFsRmlsZVNpemU6IG51bWJlcjtcblxuICAgIGdldCBtYXhGaWxlQ291bnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21heEZpbGVDb3VudDtcbiAgICB9XG4gICAgc2V0IG1heEZpbGVDb3VudCh2YWw6IG51bWJlcikge1xuICAgICAgICB0aGlzLl9tYXhGaWxlQ291bnQgPSB2YWw7XG4gICAgfVxuICAgIGdldCBtYXhGaWxlU2l6ZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fbWF4RmlsZVNpemU7XG4gICAgfVxuICAgIHNldCBtYXhGaWxlU2l6ZSh2YWw6IG51bWJlcikge1xuICAgICAgICB0aGlzLl9tYXhGaWxlU2l6ZSA9IHZhbCAqIDEwMjQ7XG4gICAgfVxuICAgIGdldCBtYXhUb3RhbEZpbGVTaXplKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tYXhUb3RhbEZpbGVTaXplO1xuICAgIH1cbiAgICBzZXQgbWF4VG90YWxGaWxlU2l6ZSh2YWw6IG51bWJlcikge1xuICAgICAgICB0aGlzLl9tYXhUb3RhbEZpbGVTaXplID0gdmFsICogMTAyNDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihtYXhGaWxlQ291bnQ6IG51bWJlciwgbWF4RmlsZVNpemU6IG51bWJlciwgbWF4VG90YWxGaWxlU2l6ZTogbnVtYmVyKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMubWF4RmlsZUNvdW50ID0gTnVtYmVyKG1heEZpbGVDb3VudCk7XG4gICAgICAgIHRoaXMubWF4RmlsZVNpemUgPSBOdW1iZXIobWF4RmlsZVNpemUpO1xuICAgICAgICB0aGlzLm1heFRvdGFsRmlsZVNpemUgPSBOdW1iZXIobWF4VG90YWxGaWxlU2l6ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHZhbGlkYXRlRmlsZXMoZmlsZXM6IEZpbGVbXSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsaWRhdGVTaXplKGZpbGVzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF92YWxpZGF0ZVNpemUoZmlsZXM6IEZpbGVbXSk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCB0b3RhbEZpbGVTaXplID0gZmlsZXMucmVkdWNlKChhY2N1bXVsYXRvciwgY3VyckZpbGUpID0+IGFjY3VtdWxhdG9yICsgY3VyckZpbGUuc2l6ZSwgMCk7XG4gICAgICAgIGNvbnN0IHVwbGFvZFRvdGFsU2l6ZVRvb0JpZ1RleHQgPSBCYXJzYUFwaS5CQkJbJ1VwbGFvZF9Ub3RhbFNpemVUb29CaWcnXTtcbiAgICAgICAgY29uc3QgdXBsYW9kRmlsZVRvb0JpZ1RleHQgPSBCYXJzYUFwaS5CQkJbJ1VwbGFvZF9GaWxlVG9vQmlnJ107XG4gICAgICAgIGNvbnN0IG1heEZpbGVzRXhjZWVkZWQgPSBCYXJzYUFwaS5CQkJbJ1VwbGFvZF9NYXhGaWxlc0V4Y2VlZGVkJ107XG5cbiAgICAgICAgbGV0IGVycm9yTXNnID0gJyc7XG4gICAgICAgIGlmIChmaWxlcy5sZW5ndGggPiB0aGlzLm1heEZpbGVDb3VudCAmJiB0aGlzLm1heEZpbGVDb3VudCA+IDApIHtcbiAgICAgICAgICAgIGVycm9yTXNnID0gbWF4RmlsZXNFeGNlZWRlZCArIGAoJHt0aGlzLm1heEZpbGVDb3VudH0pYDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmaWxlUmVhY2hTaXplOiBGaWxlW10gPSBbXTtcbiAgICAgICAgZmlsZXMuZm9yRWFjaCgoZmlsZSkgPT4ge1xuICAgICAgICAgICAgaWYgKGZpbGUuc2l6ZSA+IHRoaXMubWF4RmlsZVNpemUpIHtcbiAgICAgICAgICAgICAgICBmaWxlUmVhY2hTaXplLnB1c2goZmlsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZmlsZXMubGVuZ3RoID4gMSAmJiB0aGlzLm1heFRvdGFsRmlsZVNpemUgPiAwICYmIHRvdGFsRmlsZVNpemUgPiB0aGlzLm1heFRvdGFsRmlsZVNpemUpIHtcbiAgICAgICAgICAgIGVycm9yTXNnID0gdXBsYW9kVG90YWxTaXplVG9vQmlnVGV4dFxuICAgICAgICAgICAgICAgID8ucmVwbGFjZSgne3t7ZmlsZXNpemV9fX0nLCB0aGlzLl9nZXRNYlNpemUodG90YWxGaWxlU2l6ZSkpXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoJ3t7bWF4RmlsZXNpemV9fScsIHRoaXMuX2dldE1iU2l6ZSh0aGlzLm1heFRvdGFsRmlsZVNpemUpKTtcbiAgICAgICAgfSBlbHNlIGlmIChmaWxlUmVhY2hTaXplLmxlbmd0aCkge1xuICAgICAgICAgICAgZXJyb3JNc2cgKz0gdXBsYW9kRmlsZVRvb0JpZ1RleHRcbiAgICAgICAgICAgICAgICA/LnJlcGxhY2UoJ3t7e2ZpbGVzaXplfX19JywgdGhpcy5fZ2V0TWJTaXplKGZpbGVSZWFjaFNpemVbMF0uc2l6ZSkpXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoJ3t7bWF4RmlsZXNpemV9fScsIHRoaXMuX2dldE1iU2l6ZSh0aGlzLm1heEZpbGVTaXplKSk7XG4gICAgICAgICAgICBlcnJvck1zZyArPVxuICAgICAgICAgICAgICAgIGA8YnIvPmAgK1xuICAgICAgICAgICAgICAgIGZpbGVSZWFjaFNpemVcbiAgICAgICAgICAgICAgICAgICAgLm1hcChcbiAgICAgICAgICAgICAgICAgICAgICAgIChjLCBpbmRleCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgPGRpdiBjbGFzcz1cImZpbGUtdmFsaWRhdGlvblwiID48c3Ryb25nPiR7aW5kZXggKyAxfS08L3N0cm9uZz48c3Ryb25nPiR7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMubmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH08L3N0cm9uZz48L2Rpdj5gXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgLmpvaW4oJzxici8+Jyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVycm9yTXNnKSB7XG4gICAgICAgICAgICBCYXJzYUFwaS5VbC5Nc2dCb3guRXJyb3IoZXJyb3JNc2csICgpID0+IHt9KTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfZ2V0S2JTaXplKHNpemUpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gZm9ybWF0Qnl0ZXMoc2l6ZSwgMiwgJ0tCJyk7XG4gICAgfVxuICAgIHByaXZhdGUgX2dldE1iU2l6ZShzaXplKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGZvcm1hdEJ5dGVzKHNpemUsIDIsICdNQicpO1xuICAgIH1cbn1cbiJdfQ==