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.
- package/esm2022/barsa-novin-ray-core.mjs +5 -0
- package/esm2022/lib/abstract-classes/application-base.mjs +25 -0
- package/esm2022/lib/abstract-classes/barsa-api.mjs +43 -0
- package/esm2022/lib/abstract-classes/base-column-props.mjs +85 -0
- package/esm2022/lib/abstract-classes/base.component.mjs +60 -0
- package/esm2022/lib/abstract-classes/field-base.mjs +233 -0
- package/esm2022/lib/abstract-classes/files-validation-helper.mjs +75 -0
- package/esm2022/lib/abstract-classes/form-base.mjs +164 -0
- package/esm2022/lib/abstract-classes/form-field-report-page.component.mjs +54 -0
- package/esm2022/lib/abstract-classes/form-page-base.mjs +130 -0
- package/esm2022/lib/abstract-classes/form-page.component.mjs +53 -0
- package/esm2022/lib/abstract-classes/form-props.base.mjs +100 -0
- package/esm2022/lib/abstract-classes/form-toolbar-base.mjs +57 -0
- package/esm2022/lib/abstract-classes/index.mjs +25 -0
- package/esm2022/lib/abstract-classes/layout-item-base.mjs +49 -0
- package/esm2022/lib/abstract-classes/layout-panel-base.mjs +64 -0
- package/esm2022/lib/abstract-classes/linear-list-helper.mjs +135 -0
- package/esm2022/lib/abstract-classes/models.mjs +184 -0
- package/esm2022/lib/abstract-classes/module-with-dynamic-components.mjs +2 -0
- package/esm2022/lib/abstract-classes/number-base.mjs +201 -0
- package/esm2022/lib/abstract-classes/page-base.mjs +98 -0
- package/esm2022/lib/abstract-classes/page-with-form-handler-base.mjs +41 -0
- package/esm2022/lib/abstract-classes/report-base.mjs +265 -0
- package/esm2022/lib/abstract-classes/report-item-base.mjs +54 -0
- package/esm2022/lib/abstract-classes/report-view-base.component.mjs +440 -0
- package/esm2022/lib/abstract-classes/system-base.mjs +25 -0
- package/esm2022/lib/abstract-classes/tile-props.mjs +47 -0
- package/esm2022/lib/auth-guard.mjs +48 -0
- package/esm2022/lib/barsa-novin-ray-core-routing.module.mjs +292 -0
- package/esm2022/lib/barsa-novin-ray-core.module.mjs +508 -0
- package/esm2022/lib/base-ulv-setting.component.mjs +46 -0
- package/esm2022/lib/base.module.mjs +28 -0
- package/esm2022/lib/button-loading/button-loading.component.mjs +18 -0
- package/esm2022/lib/constants.mjs +898 -0
- package/esm2022/lib/container.component.mjs +100 -0
- package/esm2022/lib/controllers/base-controller.mjs +32 -0
- package/esm2022/lib/controllers/index.mjs +5 -0
- package/esm2022/lib/controllers/login-controller.mjs +56 -0
- package/esm2022/lib/controllers/login-verification-controller.mjs +58 -0
- package/esm2022/lib/controllers/models.mjs +2 -0
- package/esm2022/lib/custom-route-reuse-strategy.mjs +32 -0
- package/esm2022/lib/date-services/date-hijri.service.mjs +146 -0
- package/esm2022/lib/date-services/date-info.mjs +2 -0
- package/esm2022/lib/date-services/date-miladi.service.mjs +124 -0
- package/esm2022/lib/date-services/date-shamsi.service.mjs +148 -0
- package/esm2022/lib/date-services/date.service.mjs +149 -0
- package/esm2022/lib/date-services/index.mjs +6 -0
- package/esm2022/lib/device.mjs +663 -0
- package/esm2022/lib/directives/absolute-div-body.directive.mjs +46 -0
- package/esm2022/lib/directives/anchor-scroll.directive.mjs +25 -0
- package/esm2022/lib/directives/attr-rtl.directive.mjs +36 -0
- package/esm2022/lib/directives/base.directive.mjs +55 -0
- package/esm2022/lib/directives/body-click.directive.mjs +36 -0
- package/esm2022/lib/directives/column-resizer.directive.mjs +40 -0
- package/esm2022/lib/directives/copy.directive.mjs +60 -0
- package/esm2022/lib/directives/count-down.directive.mjs +109 -0
- package/esm2022/lib/directives/dynamic-command.directive.mjs +43 -0
- package/esm2022/lib/directives/dynamic-style.directive.mjs +58 -0
- package/esm2022/lib/directives/ellapsis-text.directive.mjs +70 -0
- package/esm2022/lib/directives/ellipsify.directive.mjs +73 -0
- package/esm2022/lib/directives/field-binding.directive.mjs +18 -0
- package/esm2022/lib/directives/fill-empty-space.mjs +84 -0
- package/esm2022/lib/directives/form-close.directive.mjs +33 -0
- package/esm2022/lib/directives/img-lazy.directive.mjs +82 -0
- package/esm2022/lib/directives/index.mjs +38 -0
- package/esm2022/lib/directives/intersection-observer.directive.mjs +52 -0
- package/esm2022/lib/directives/items-renderer.directive.mjs +60 -0
- package/esm2022/lib/directives/label-mandatory.directive.mjs +49 -0
- package/esm2022/lib/directives/load-external-files.directive.mjs +38 -0
- package/esm2022/lib/directives/mobile.directive.mjs +30 -0
- package/esm2022/lib/directives/nowraptext.directive.mjs +27 -0
- package/esm2022/lib/directives/numbers-only-input.directive.mjs +27 -0
- package/esm2022/lib/directives/placeHolder.directive.mjs +16 -0
- package/esm2022/lib/directives/prevent-default.directive.mjs +21 -0
- package/esm2022/lib/directives/render-ulv-paging.directive.mjs +81 -0
- package/esm2022/lib/directives/render-ulv-viewer.directive.mjs +76 -0
- package/esm2022/lib/directives/render-ulv.directive.mjs +52 -0
- package/esm2022/lib/directives/route-form-change.directive.mjs +38 -0
- package/esm2022/lib/directives/stop-propagation.directive.mjs +21 -0
- package/esm2022/lib/directives/table-resizer.directive.mjs +236 -0
- package/esm2022/lib/directives/ulv-command.directive.mjs +43 -0
- package/esm2022/lib/directives/until-inview.directive.mjs +53 -0
- package/esm2022/lib/directives/workflow-choice-command.directive.mjs +61 -0
- package/esm2022/lib/dynamic-component/base-dynamic.component.mjs +97 -0
- package/esm2022/lib/dynamic-component/base-form-toolbaritem-props.mjs +53 -0
- package/esm2022/lib/dynamic-component/base-item-content-props.mjs +81 -0
- package/esm2022/lib/dynamic-component/base-view-content-props.mjs +27 -0
- package/esm2022/lib/dynamic-component/base-view-item-props.mjs +528 -0
- package/esm2022/lib/dynamic-component/base-view-props.mjs +163 -0
- package/esm2022/lib/dynamic-component/dynamic-form-toolbar-item.component.mjs +38 -0
- package/esm2022/lib/dynamic-component/dynamic-form.component.mjs +69 -0
- package/esm2022/lib/dynamic-component/dynamic-item.component.mjs +76 -0
- package/esm2022/lib/dynamic-component/dynamic-layout.component.mjs +64 -0
- package/esm2022/lib/dynamic-component/index.mjs +11 -0
- package/esm2022/lib/empty-page/empty-page.component.mjs +44 -0
- package/esm2022/lib/empty-page-with-router-and-router-outlet/empty-page-with-router-and-router-outlet.component.mjs +16 -0
- package/esm2022/lib/field-ui/field-ui.component.mjs +146 -0
- package/esm2022/lib/form/form.component.mjs +211 -0
- package/esm2022/lib/form-new/form-new.component.mjs +31 -0
- package/esm2022/lib/form-page-routing/barsa-sap-ui-form-page-routing.module.mjs +54 -0
- package/esm2022/lib/form-page-routing/barsa-sap-ui-form-page.module.mjs +29 -0
- package/esm2022/lib/form-page-routing/constants.mjs +9 -0
- package/esm2022/lib/form-page-routing/index.mjs +3 -0
- package/esm2022/lib/from-intersection-observer.mjs +53 -0
- package/esm2022/lib/global-error-handler.mjs +26 -0
- package/esm2022/lib/injdection-tokens.mjs +8 -0
- package/esm2022/lib/login-enter-mobile/login-enter-mobile.component.mjs +64 -0
- package/esm2022/lib/login-verification/login-verification.component.mjs +79 -0
- package/esm2022/lib/login2/login2.component.mjs +60 -0
- package/esm2022/lib/modal-root.component.mjs +34 -0
- package/esm2022/lib/not-found/not-found.component.mjs +16 -0
- package/esm2022/lib/not-internet/not-internet.component.mjs +21 -0
- package/esm2022/lib/pipes/barsa-icon-dict.pipe.mjs +20 -0
- package/esm2022/lib/pipes/bbb-translate.pipe.mjs +36 -0
- package/esm2022/lib/pipes/can-upload.pipe.mjs +27 -0
- package/esm2022/lib/pipes/column-custom-component.pipe.mjs +41 -0
- package/esm2022/lib/pipes/column-customui.pipe.mjs +33 -0
- package/esm2022/lib/pipes/column-icon.pipe.mjs +23 -0
- package/esm2022/lib/pipes/column-value.pipe.mjs +35 -0
- package/esm2022/lib/pipes/column-valueof-parameters.pipe.mjs +34 -0
- package/esm2022/lib/pipes/combo-row-img.pipe.mjs +17 -0
- package/esm2022/lib/pipes/context-menu.pipe.mjs +41 -0
- package/esm2022/lib/pipes/control-ui.pipe.mjs +32 -0
- package/esm2022/lib/pipes/convert-to-style.pipe.mjs +33 -0
- package/esm2022/lib/pipes/date-time-to-caption.pipe.mjs +35 -0
- package/esm2022/lib/pipes/fileinfo-count.pipe.mjs +21 -0
- package/esm2022/lib/pipes/filter-columns-by-details.pipe.mjs +23 -0
- package/esm2022/lib/pipes/filter-inline-action-list.pipe.mjs +19 -0
- package/esm2022/lib/pipes/filter-string.pipe.mjs +45 -0
- package/esm2022/lib/pipes/filter-tab.pipe.mjs +20 -0
- package/esm2022/lib/pipes/filter-toolbar-control.pipe.mjs +17 -0
- package/esm2022/lib/pipes/filter-workflow-mobile.pipe.mjs +25 -0
- package/esm2022/lib/pipes/filter.pipe.mjs +34 -0
- package/esm2022/lib/pipes/find-column-by-db-name.pipe.mjs +28 -0
- package/esm2022/lib/pipes/find-preview-column.pipe.mjs +20 -0
- package/esm2022/lib/pipes/fiori-icon.pipe.mjs +43 -0
- package/esm2022/lib/pipes/groupby.pipe.mjs +64 -0
- package/esm2022/lib/pipes/header-facet-value.pipe.mjs +23 -0
- package/esm2022/lib/pipes/hide-accept-cancel-buttons.pipe.mjs +24 -0
- package/esm2022/lib/pipes/hide-columns-inmobile.pipe.mjs +23 -0
- package/esm2022/lib/pipes/index.mjs +52 -0
- package/esm2022/lib/pipes/list-count.pipe.mjs +18 -0
- package/esm2022/lib/pipes/merge-fields-to-columns.pipe.mjs +43 -0
- package/esm2022/lib/pipes/mo-info-ulv-data.pipe.mjs +59 -0
- package/esm2022/lib/pipes/mo-info-ulv-paging.pipe.mjs +17 -0
- package/esm2022/lib/pipes/mo-report-value-concat.pipe.mjs +36 -0
- package/esm2022/lib/pipes/mo-report-value.pipe.mjs +18 -0
- package/esm2022/lib/pipes/mo-value.pipe.mjs +19 -0
- package/esm2022/lib/pipes/multiple-groupby.pipe.mjs +91 -0
- package/esm2022/lib/pipes/numeral.pipe.mjs +44 -0
- package/esm2022/lib/pipes/picture-field-source.pipe.mjs +23 -0
- package/esm2022/lib/pipes/remove-newline.pipe.mjs +21 -0
- package/esm2022/lib/pipes/replace.pipe.mjs +18 -0
- package/esm2022/lib/pipes/reverse.pipe.mjs +23 -0
- package/esm2022/lib/pipes/rownumber.pipe.mjs +26 -0
- package/esm2022/lib/pipes/sanitize-text.pipe.mjs +21 -0
- package/esm2022/lib/pipes/seperator-fix.pipe.mjs +24 -0
- package/esm2022/lib/pipes/sort.pipe.mjs +49 -0
- package/esm2022/lib/pipes/string-to-number.pipe.mjs +26 -0
- package/esm2022/lib/pipes/th-image-icon.pipe.mjs +23 -0
- package/esm2022/lib/pipes/tlbButtons.pipe.mjs +60 -0
- package/esm2022/lib/pipes/total-summary.pipe.mjs +17 -0
- package/esm2022/lib/pipes/tree-item-isexpanded.pipe.mjs +26 -0
- package/esm2022/lib/pipes/visible-value.pipe.mjs +19 -0
- package/esm2022/lib/portal-page/portal-page.component.mjs +24 -0
- package/esm2022/lib/portal-page/portal-sidebar.component.mjs +37 -0
- package/esm2022/lib/redirect-home-guard.mjs +51 -0
- package/esm2022/lib/redirect-report-navigator-command/redirect-report-navigator-command.component.mjs +12 -0
- package/esm2022/lib/report-container/report-container.component.mjs +63 -0
- package/esm2022/lib/resizable-module/resizable.component.mjs +31 -0
- package/esm2022/lib/resizable-module/resizable.directive.mjs +42 -0
- package/esm2022/lib/resizable-module/resizable.module.mjs +17 -0
- package/esm2022/lib/resolvers/index.mjs +6 -0
- package/esm2022/lib/resolvers/portal-dynamic-page.resolver.mjs +49 -0
- package/esm2022/lib/resolvers/portal-form-page.resolver.mjs +18 -0
- package/esm2022/lib/resolvers/portal-page.resolver.mjs +30 -0
- package/esm2022/lib/resolvers/portal-report-page.resolver.mjs +37 -0
- package/esm2022/lib/resolvers/tile-group-breadcrumb.resolver.mjs +30 -0
- package/esm2022/lib/root-page/root-page.component.mjs +21 -0
- package/esm2022/lib/root-portal/root-portal.component.mjs +165 -0
- package/esm2022/lib/server-connection-error/server-connection-error.component.mjs +19 -0
- package/esm2022/lib/services/api.service.mjs +63 -0
- package/esm2022/lib/services/audio-recording.service.mjs +95 -0
- package/esm2022/lib/services/barsa-dialog.service.mjs +80 -0
- package/esm2022/lib/services/barsa-storage.service.mjs +78 -0
- package/esm2022/lib/services/breadcrumb.service.mjs +64 -0
- package/esm2022/lib/services/column.service.mjs +20 -0
- package/esm2022/lib/services/container.service.mjs +69 -0
- package/esm2022/lib/services/dynamic-component.service.mjs +55 -0
- package/esm2022/lib/services/form-panel.service.mjs +387 -0
- package/esm2022/lib/services/form.service.mjs +14 -0
- package/esm2022/lib/services/groupby.service.mjs +21 -0
- package/esm2022/lib/services/horizontal-layout.service.mjs +16 -0
- package/esm2022/lib/services/index.mjs +30 -0
- package/esm2022/lib/services/indexeddb.service.mjs +34 -0
- package/esm2022/lib/services/layout.service.mjs +42 -0
- package/esm2022/lib/services/local-storage.service.mjs +32 -0
- package/esm2022/lib/services/log.service.mjs +50 -0
- package/esm2022/lib/services/network-status.service.mjs +15 -0
- package/esm2022/lib/services/notification-popup.service.mjs +2 -0
- package/esm2022/lib/services/notification-sw.service.mjs +180 -0
- package/esm2022/lib/services/notification.service.mjs +308 -0
- package/esm2022/lib/services/portal.service.mjs +946 -0
- package/esm2022/lib/services/prompt-update.service.mjs +56 -0
- package/esm2022/lib/services/routing.service.mjs +60 -0
- package/esm2022/lib/services/save-scoll-position.service.mjs +29 -0
- package/esm2022/lib/services/service-worker-communication.service.mjs +120 -0
- package/esm2022/lib/services/toast.service.mjs +2 -0
- package/esm2022/lib/services/ui.service.mjs +23 -0
- package/esm2022/lib/services/ulvmain.service.mjs +810 -0
- package/esm2022/lib/services/upload.service.mjs +161 -0
- package/esm2022/lib/services/video-recording.service.mjs +115 -0
- package/esm2022/public-api.mjs +44 -0
- 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==
|