barsa-develop-components 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +25 -0
- package/esm2020/barsa-develop-components.mjs +5 -0
- package/esm2020/lib/avatar/avatar.component.mjs +19 -0
- package/esm2020/lib/barcode-format-pipe.mjs +24 -0
- package/esm2020/lib/barcode-reader/barcode-reader.component.mjs +64 -0
- package/esm2020/lib/barcode-reader-dialog/barcode-reader-dialog.component.mjs +82 -0
- package/esm2020/lib/barcode-reader-video/barcode-reader-video.component.mjs +66 -0
- package/esm2020/lib/barcode.service.mjs +330 -0
- package/esm2020/lib/barsa-develop-components.module.mjs +224 -0
- package/esm2020/lib/card-content-image-and-title/card-content-image-and-title.component.mjs +50 -0
- package/esm2020/lib/card-content-line-chart/card-content-line-chart.component.mjs +38 -0
- package/esm2020/lib/card-header-big-image-title-and-subtitle/card-header-big-image-title-and-subtitle.component.mjs +20 -0
- package/esm2020/lib/card-header-kpi/card-header-kpi.component.mjs +36 -0
- package/esm2020/lib/card-header-logo-title-subtitle/card-header-logo-title-subtitle.component.mjs +46 -0
- package/esm2020/lib/checkbox-button/checkbox-button.component.mjs +23 -0
- package/esm2020/lib/enum-info-micro-proccess-flow/enum-info-micro-proccess-flow.component.mjs +17 -0
- package/esm2020/lib/form-chart-content/form-chart-content.component.mjs +38 -0
- package/esm2020/lib/form-content-quick-view/form-content-quick-view.component.mjs +51 -0
- package/esm2020/lib/g4b-details/g4b-details.component.mjs +28 -0
- package/esm2020/lib/g4b-estelam/g4b-estelam.component.mjs +30 -0
- package/esm2020/lib/login-form/login-form.component.mjs +49 -0
- package/esm2020/lib/login-social-conncetions/login-social-conncetions.component.mjs +30 -0
- package/esm2020/lib/micro-proccess-flow/micro-proccess-flow.component.mjs +48 -0
- package/esm2020/lib/micro-process-flow-view/micro-process-flow-view.component.mjs +24 -0
- package/esm2020/lib/mo-info-micro-proccess-flow/mo-info-micro-proccess-flow.component.mjs +23 -0
- package/esm2020/lib/models/models.mjs +2 -0
- package/esm2020/lib/models/person.mjs +2 -0
- package/esm2020/lib/pipes/datasource-to-flow-item.mjs +22 -0
- package/esm2020/lib/pipes/index.mjs +3 -0
- package/esm2020/lib/pipes/mo-list-to-flow-item.pipe.mjs +22 -0
- package/esm2020/lib/query-string-form-observable/query-string-form-observable.component.mjs +37 -0
- package/esm2020/lib/query-string-observable/query-string-observable.component.mjs +22 -0
- package/esm2020/lib/report-line-chart-view/report-line-chart-view.component.mjs +13 -0
- package/esm2020/lib/report-tab-view/report-tab-view.component.mjs +27 -0
- package/esm2020/lib/resend-verification-code/resend-verification-code.component.mjs +59 -0
- package/esm2020/lib/service-desk-card-content-mojavezhay-akhz-shode/service-desk-card-content-mojavezhay-akhz-shode.component.mjs +28 -0
- package/esm2020/lib/service-desk-form-layout-content-mojavez/service-desk-form-layout-content-mojavez.component.mjs +110 -0
- package/esm2020/lib/service-desk-header/service-desk-header.component.mjs +229 -0
- package/esm2020/lib/service-desk-servcie-detail/service-desk-servcie-detail.component.mjs +147 -0
- package/esm2020/lib/service-desk-view-of-services/service-desk-view-of-services.component.mjs +22 -0
- package/esm2020/lib/setting-form/setting-form.component.mjs +66 -0
- package/esm2020/lib/tab-process-view/tab-process-view.component.mjs +41 -0
- package/esm2020/lib/table-view-vertical-columns/table-view-vertical-columns.component.mjs +15 -0
- package/esm2020/lib/timer-count-down/timer-count-down.component.mjs +79 -0
- package/esm2020/lib/ui-enum-segmented-button/ui-enum-segmented-button.component.mjs +25 -0
- package/esm2020/lib/ui-num-rate/ui-num-rate.component.mjs +18 -0
- package/esm2020/lib/ui-person/ui-person.component.mjs +160 -0
- package/esm2020/lib/ui-person/ui-person.pipe.mjs +40 -0
- package/esm2020/lib/ui-pictures-carousel/ui-pictures-carousel.component.mjs +17 -0
- package/esm2020/lib/ui-text-field-search/ui-text-field-search.component.mjs +30 -0
- package/esm2020/lib/ulv-context-menu-item-show-file-content/ulv-context-menu-item-show-file-content.component.mjs +70 -0
- package/esm2020/public-api.mjs +47 -0
- package/fesm2015/barsa-develop-components.mjs +2368 -0
- package/fesm2015/barsa-develop-components.mjs.map +1 -0
- package/fesm2020/barsa-develop-components.mjs +2344 -0
- package/fesm2020/barsa-develop-components.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/avatar/avatar.component.d.ts +9 -0
- package/lib/barcode-format-pipe.d.ts +7 -0
- package/lib/barcode-reader/barcode-reader.component.d.ts +19 -0
- package/lib/barcode-reader-dialog/barcode-reader-dialog.component.d.ts +32 -0
- package/lib/barcode-reader-video/barcode-reader-video.component.d.ts +22 -0
- package/lib/barcode.service.d.ts +98 -0
- package/lib/barsa-develop-components.module.d.ts +94 -0
- package/lib/card-content-image-and-title/card-content-image-and-title.component.d.ts +21 -0
- package/lib/card-content-line-chart/card-content-line-chart.component.d.ts +9 -0
- package/lib/card-header-big-image-title-and-subtitle/card-header-big-image-title-and-subtitle.component.d.ts +6 -0
- package/lib/card-header-kpi/card-header-kpi.component.d.ts +14 -0
- package/lib/card-header-logo-title-subtitle/card-header-logo-title-subtitle.component.d.ts +23 -0
- package/lib/checkbox-button/checkbox-button.component.d.ts +13 -0
- package/lib/enum-info-micro-proccess-flow/enum-info-micro-proccess-flow.component.d.ts +8 -0
- package/lib/form-chart-content/form-chart-content.component.d.ts +9 -0
- package/lib/form-content-quick-view/form-content-quick-view.component.d.ts +13 -0
- package/lib/g4b-details/g4b-details.component.d.ts +9 -0
- package/lib/g4b-estelam/g4b-estelam.component.d.ts +11 -0
- package/lib/login-form/login-form.component.d.ts +15 -0
- package/lib/login-social-conncetions/login-social-conncetions.component.d.ts +12 -0
- package/lib/micro-proccess-flow/micro-proccess-flow.component.d.ts +22 -0
- package/lib/micro-process-flow-view/micro-process-flow-view.component.d.ts +14 -0
- package/lib/mo-info-micro-proccess-flow/mo-info-micro-proccess-flow.component.d.ts +9 -0
- package/lib/models/models.d.ts +19 -0
- package/lib/models/person.d.ts +10 -0
- package/lib/pipes/datasource-to-flow-item.d.ts +10 -0
- package/lib/pipes/index.d.ts +2 -0
- package/lib/pipes/mo-list-to-flow-item.pipe.d.ts +10 -0
- package/lib/query-string-form-observable/query-string-form-observable.component.d.ts +13 -0
- package/lib/query-string-observable/query-string-observable.component.d.ts +9 -0
- package/lib/report-line-chart-view/report-line-chart-view.component.d.ts +7 -0
- package/lib/report-tab-view/report-tab-view.component.d.ts +15 -0
- package/lib/resend-verification-code/resend-verification-code.component.d.ts +18 -0
- package/lib/service-desk-card-content-mojavezhay-akhz-shode/service-desk-card-content-mojavezhay-akhz-shode.component.d.ts +15 -0
- package/lib/service-desk-form-layout-content-mojavez/service-desk-form-layout-content-mojavez.component.d.ts +26 -0
- package/lib/service-desk-header/service-desk-header.component.d.ts +57 -0
- package/lib/service-desk-servcie-detail/service-desk-servcie-detail.component.d.ts +39 -0
- package/lib/service-desk-view-of-services/service-desk-view-of-services.component.d.ts +12 -0
- package/lib/setting-form/setting-form.component.d.ts +23 -0
- package/lib/tab-process-view/tab-process-view.component.d.ts +19 -0
- package/lib/table-view-vertical-columns/table-view-vertical-columns.component.d.ts +6 -0
- package/lib/timer-count-down/timer-count-down.component.d.ts +15 -0
- package/lib/ui-enum-segmented-button/ui-enum-segmented-button.component.d.ts +9 -0
- package/lib/ui-num-rate/ui-num-rate.component.d.ts +8 -0
- package/lib/ui-person/ui-person.component.d.ts +31 -0
- package/lib/ui-person/ui-person.pipe.d.ts +7 -0
- package/lib/ui-pictures-carousel/ui-pictures-carousel.component.d.ts +6 -0
- package/lib/ui-text-field-search/ui-text-field-search.component.d.ts +14 -0
- package/lib/ulv-context-menu-item-show-file-content/ulv-context-menu-item-show-file-content.component.d.ts +25 -0
- package/package.json +31 -0
- package/public-api.d.ts +43 -0
package/README.md
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# BarsaDevelopComponents
|
|
2
|
+
|
|
3
|
+
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 11.1.2.
|
|
4
|
+
|
|
5
|
+
## Code scaffolding
|
|
6
|
+
|
|
7
|
+
Run `ng generate component component-name --project BarsaDevelopComponents` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project BarsaDevelopComponents`.
|
|
8
|
+
|
|
9
|
+
> Note: Don't forget to add `--project BarsaDevelopComponents` or else it will be added to the default project in your `angular.json` file.
|
|
10
|
+
|
|
11
|
+
## Build
|
|
12
|
+
|
|
13
|
+
Run `ng build BarsaDevelopComponents` to build the project. The build artifacts will be stored in the `dist/` directory.
|
|
14
|
+
|
|
15
|
+
## Publishing
|
|
16
|
+
|
|
17
|
+
After building your library with `ng build BarsaDevelopComponents`, go to the dist folder `cd dist/barsa-develop-components` and run `npm publish`.
|
|
18
|
+
|
|
19
|
+
## Running unit tests
|
|
20
|
+
|
|
21
|
+
Run `ng test BarsaDevelopComponents` to execute the unit tests via [Karma](https://karma-runner.github.io).
|
|
22
|
+
|
|
23
|
+
## Further help
|
|
24
|
+
|
|
25
|
+
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzL3NyYy9iYXJzYS1kZXZlbG9wLWNvbXBvbmVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Component, ChangeDetectionStrategy } from '@angular/core';
|
|
2
|
+
import { BaseItemContentPropsComponent } from 'barsa-novin-ray-core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@fundamental-ngx/core/avatar";
|
|
5
|
+
import * as i2 from "@fundamental-ngx/core/card";
|
|
6
|
+
import * as i3 from "barsa-novin-ray-core";
|
|
7
|
+
export class AvatarComponent extends BaseItemContentPropsComponent {
|
|
8
|
+
ngOnInit() {
|
|
9
|
+
super.ngOnInit();
|
|
10
|
+
this.pictureId = this.mo[this.parameters.FieldName]?.FileId;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
AvatarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: AvatarComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
14
|
+
AvatarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: AvatarComponent, selector: "bdc-avatar", usesInheritance: true, ngImport: i0, template: "<!-- <fd-avatar\n [placeholder]=\"!mo[parameters.FieldName]\"\n [size]=\"'xs'\"\n [glyph]=\"parameters.DefaultIcon\"\n [circle]=\"parameters.Circle\"\n [image]=\"pictureId | picFieldSrc: 'PictureFileInfo':mo.Id:column.FieldDefId\"\n alterIcon=\"alt|content|backup|default-icon\"\n></fd-avatar>\n\n\n<div class=\"avatar-data fd-card__header-text\">\n <bsu-column-renderer\n class=\"fd-card__title-area\"\n [mo]=\"mo\"\n [column]=\"column\"\n [editMode]=\"isChecked && inlineEditMode && allowInlineEdit\"\n [isChecked]=\"isChecked\"\n [isNewInlineMo]=\"isNewInlineMo\"\n [index]=\"index\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [formLayoutShowLabel]=\"false\"\n [deviceSize]=\"deviceSize\"\n ></bsu-column-renderer>\n <fd-text\n class=\"fd-card__subtitle-area\"\n *ngIf=\"parameters.Subtitle\"\n [text]=\"parameters.Subtitle | val: mo:true | bbbTranslate\"\n hyphenation=\"auto\"\n ></fd-text>\n <fd-text\n *ngIf=\"parameters.Description\"\n [text]=\"parameters.Description | val: mo:true | bbbTranslate\"\n hyphenation=\"auto\"\n ></fd-text>\n</div> -->\n\n<fd-card>\n <fd-card-header>\n <fd-avatar\n [placeholder]=\"!mo[parameters.FieldName]\"\n [size]=\"'xs'\"\n [glyph]=\"parameters.DefaultIcon\"\n [circle]=\"parameters.Circle\"\n [image]=\"pictureId | picFieldSrc: 'PictureFileInfo':mo.Id:column.FieldDefId\"\n alterIcon=\"alt|content|backup|default-icon\"\n ></fd-avatar>\n <h2 fd-card-title>\n {{ column.Name | val: mo:true | bbbTranslate }}\n </h2>\n <h3 fd-card-subtitle>{{ parameters.Subtitle | val: mo:true | bbbTranslate }}</h3>\n </fd-card-header>\n</fd-card>\n", styles: [":host{display:flex;align-items:start;column-gap:5px;padding:3px 0}.avatar-data{display:flex;flex-direction:column;row-gap:5px}fd-card{border:none;box-shadow:none;background:transparent!important}fd-card-header{padding:.2rem 0!important;border:none!important;background:transparent!important}fd-card-header:hover{background:transparent!important}\n"], dependencies: [{ kind: "component", type: i1.AvatarComponent, selector: "fd-avatar", inputs: ["class", "id", "ariaLabel", "ariaLabelledby", "label", "size", "glyph", "zoomGlyph", "circle", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "random", "clickable", "backgroundImage", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "component", type: i2.CardComponent, selector: "fd-card", inputs: ["badge", "isLoading", "cardType", "id", "role"] }, { kind: "component", type: i2.CardHeaderComponent, selector: "fd-card-header", inputs: ["interactive", "tabindex"] }, { kind: "directive", type: i2.CardTitleDirective, selector: "[fd-card-title]" }, { kind: "directive", type: i2.CardSubtitleDirective, selector: "[fd-card-subtitle]" }, { kind: "pipe", type: i3.MoValuePipe, name: "val" }, { kind: "pipe", type: i3.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i3.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: AvatarComponent, decorators: [{
|
|
16
|
+
type: Component,
|
|
17
|
+
args: [{ selector: 'bdc-avatar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- <fd-avatar\n [placeholder]=\"!mo[parameters.FieldName]\"\n [size]=\"'xs'\"\n [glyph]=\"parameters.DefaultIcon\"\n [circle]=\"parameters.Circle\"\n [image]=\"pictureId | picFieldSrc: 'PictureFileInfo':mo.Id:column.FieldDefId\"\n alterIcon=\"alt|content|backup|default-icon\"\n></fd-avatar>\n\n\n<div class=\"avatar-data fd-card__header-text\">\n <bsu-column-renderer\n class=\"fd-card__title-area\"\n [mo]=\"mo\"\n [column]=\"column\"\n [editMode]=\"isChecked && inlineEditMode && allowInlineEdit\"\n [isChecked]=\"isChecked\"\n [isNewInlineMo]=\"isNewInlineMo\"\n [index]=\"index\"\n [rtl]=\"rtl\"\n [deviceName]=\"deviceName\"\n [formLayoutShowLabel]=\"false\"\n [deviceSize]=\"deviceSize\"\n ></bsu-column-renderer>\n <fd-text\n class=\"fd-card__subtitle-area\"\n *ngIf=\"parameters.Subtitle\"\n [text]=\"parameters.Subtitle | val: mo:true | bbbTranslate\"\n hyphenation=\"auto\"\n ></fd-text>\n <fd-text\n *ngIf=\"parameters.Description\"\n [text]=\"parameters.Description | val: mo:true | bbbTranslate\"\n hyphenation=\"auto\"\n ></fd-text>\n</div> -->\n\n<fd-card>\n <fd-card-header>\n <fd-avatar\n [placeholder]=\"!mo[parameters.FieldName]\"\n [size]=\"'xs'\"\n [glyph]=\"parameters.DefaultIcon\"\n [circle]=\"parameters.Circle\"\n [image]=\"pictureId | picFieldSrc: 'PictureFileInfo':mo.Id:column.FieldDefId\"\n alterIcon=\"alt|content|backup|default-icon\"\n ></fd-avatar>\n <h2 fd-card-title>\n {{ column.Name | val: mo:true | bbbTranslate }}\n </h2>\n <h3 fd-card-subtitle>{{ parameters.Subtitle | val: mo:true | bbbTranslate }}</h3>\n </fd-card-header>\n</fd-card>\n", styles: [":host{display:flex;align-items:start;column-gap:5px;padding:3px 0}.avatar-data{display:flex;flex-direction:column;row-gap:5px}fd-card{border:none;box-shadow:none;background:transparent!important}fd-card-header{padding:.2rem 0!important;border:none!important;background:transparent!important}fd-card-header:hover{background:transparent!important}\n"] }]
|
|
18
|
+
}] });
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLWRldmVsb3AtY29tcG9uZW50cy9zcmMvbGliL2F2YXRhci9hdmF0YXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzL3NyYy9saWIvYXZhdGFyL2F2YXRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSw2QkFBNkIsRUFBMkIsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7QUFROUYsTUFBTSxPQUFPLGVBQWdCLFNBQVEsNkJBQXNEO0lBRXZGLFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ2hFLENBQUM7OzRHQUxRLGVBQWU7Z0dBQWYsZUFBZSx5RUNUNUIsdzBEQXFEQTsyRkQ1Q2EsZUFBZTtrQkFOM0IsU0FBUzsrQkFDSSxZQUFZLG1CQUdMLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJhc2VJdGVtQ29udGVudFByb3BzQ29tcG9uZW50LCBVaVJlcG9ydFZpZXdCYXNlU2V0dGluZyB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdiZGMtYXZhdGFyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYXZhdGFyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9hdmF0YXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBBdmF0YXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlSXRlbUNvbnRlbnRQcm9wc0NvbXBvbmVudDxVaVJlcG9ydFZpZXdCYXNlU2V0dGluZz4gaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHBpY3R1cmVJZDogc3RyaW5nO1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLnBpY3R1cmVJZCA9IHRoaXMubW9bdGhpcy5wYXJhbWV0ZXJzLkZpZWxkTmFtZV0/LkZpbGVJZDtcbiAgICB9XG59XG4iLCI8IS0tIDxmZC1hdmF0YXJcbiAgICBbcGxhY2Vob2xkZXJdPVwiIW1vW3BhcmFtZXRlcnMuRmllbGROYW1lXVwiXG4gICAgW3NpemVdPVwiJ3hzJ1wiXG4gICAgW2dseXBoXT1cInBhcmFtZXRlcnMuRGVmYXVsdEljb25cIlxuICAgIFtjaXJjbGVdPVwicGFyYW1ldGVycy5DaXJjbGVcIlxuICAgIFtpbWFnZV09XCJwaWN0dXJlSWQgfCBwaWNGaWVsZFNyYzogJ1BpY3R1cmVGaWxlSW5mbyc6bW8uSWQ6Y29sdW1uLkZpZWxkRGVmSWRcIlxuICAgIGFsdGVySWNvbj1cImFsdHxjb250ZW50fGJhY2t1cHxkZWZhdWx0LWljb25cIlxuPjwvZmQtYXZhdGFyPlxuXG5cbjxkaXYgY2xhc3M9XCJhdmF0YXItZGF0YSBmZC1jYXJkX19oZWFkZXItdGV4dFwiPlxuICAgIDxic3UtY29sdW1uLXJlbmRlcmVyXG4gICAgICAgIGNsYXNzPVwiZmQtY2FyZF9fdGl0bGUtYXJlYVwiXG4gICAgICAgIFttb109XCJtb1wiXG4gICAgICAgIFtjb2x1bW5dPVwiY29sdW1uXCJcbiAgICAgICAgW2VkaXRNb2RlXT1cImlzQ2hlY2tlZCAmJiBpbmxpbmVFZGl0TW9kZSAmJiBhbGxvd0lubGluZUVkaXRcIlxuICAgICAgICBbaXNDaGVja2VkXT1cImlzQ2hlY2tlZFwiXG4gICAgICAgIFtpc05ld0lubGluZU1vXT1cImlzTmV3SW5saW5lTW9cIlxuICAgICAgICBbaW5kZXhdPVwiaW5kZXhcIlxuICAgICAgICBbcnRsXT1cInJ0bFwiXG4gICAgICAgIFtkZXZpY2VOYW1lXT1cImRldmljZU5hbWVcIlxuICAgICAgICBbZm9ybUxheW91dFNob3dMYWJlbF09XCJmYWxzZVwiXG4gICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxuICAgID48L2JzdS1jb2x1bW4tcmVuZGVyZXI+XG4gICAgPGZkLXRleHRcbiAgICAgICAgY2xhc3M9XCJmZC1jYXJkX19zdWJ0aXRsZS1hcmVhXCJcbiAgICAgICAgKm5nSWY9XCJwYXJhbWV0ZXJzLlN1YnRpdGxlXCJcbiAgICAgICAgW3RleHRdPVwicGFyYW1ldGVycy5TdWJ0aXRsZSB8IHZhbDogbW86dHJ1ZSB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgIGh5cGhlbmF0aW9uPVwiYXV0b1wiXG4gICAgPjwvZmQtdGV4dD5cbiAgICA8ZmQtdGV4dFxuICAgICAgICAqbmdJZj1cInBhcmFtZXRlcnMuRGVzY3JpcHRpb25cIlxuICAgICAgICBbdGV4dF09XCJwYXJhbWV0ZXJzLkRlc2NyaXB0aW9uIHwgdmFsOiBtbzp0cnVlIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgaHlwaGVuYXRpb249XCJhdXRvXCJcbiAgICA+PC9mZC10ZXh0PlxuPC9kaXY+IC0tPlxuXG48ZmQtY2FyZD5cbiAgICA8ZmQtY2FyZC1oZWFkZXI+XG4gICAgICAgIDxmZC1hdmF0YXJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCIhbW9bcGFyYW1ldGVycy5GaWVsZE5hbWVdXCJcbiAgICAgICAgICAgIFtzaXplXT1cIid4cydcIlxuICAgICAgICAgICAgW2dseXBoXT1cInBhcmFtZXRlcnMuRGVmYXVsdEljb25cIlxuICAgICAgICAgICAgW2NpcmNsZV09XCJwYXJhbWV0ZXJzLkNpcmNsZVwiXG4gICAgICAgICAgICBbaW1hZ2VdPVwicGljdHVyZUlkIHwgcGljRmllbGRTcmM6ICdQaWN0dXJlRmlsZUluZm8nOm1vLklkOmNvbHVtbi5GaWVsZERlZklkXCJcbiAgICAgICAgICAgIGFsdGVySWNvbj1cImFsdHxjb250ZW50fGJhY2t1cHxkZWZhdWx0LWljb25cIlxuICAgICAgICA+PC9mZC1hdmF0YXI+XG4gICAgICAgIDxoMiBmZC1jYXJkLXRpdGxlPlxuICAgICAgICAgICAge3sgY29sdW1uLk5hbWUgfCB2YWw6IG1vOnRydWUgfCBiYmJUcmFuc2xhdGUgfX1cbiAgICAgICAgPC9oMj5cbiAgICAgICAgPGgzIGZkLWNhcmQtc3VidGl0bGU+e3sgcGFyYW1ldGVycy5TdWJ0aXRsZSB8IHZhbDogbW86dHJ1ZSB8IGJiYlRyYW5zbGF0ZSB9fTwvaDM+XG4gICAgPC9mZC1jYXJkLWhlYWRlcj5cbjwvZmQtY2FyZD5cbiJdfQ==
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import { BarcodeFormat } from '@zxing/library';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class BarcodeFormatPipe {
|
|
5
|
+
transform(value) {
|
|
6
|
+
let format = '';
|
|
7
|
+
for (const enumMember of Object.keys(BarcodeFormat)) {
|
|
8
|
+
const isValueProperty = parseInt(enumMember, 10) >= 0;
|
|
9
|
+
if (isValueProperty && Number(enumMember) === value) {
|
|
10
|
+
format = BarcodeFormat[enumMember];
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
return format;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
BarcodeFormatPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarcodeFormatPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
17
|
+
BarcodeFormatPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.2.7", ngImport: i0, type: BarcodeFormatPipe, name: "barcodeFormat" });
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarcodeFormatPipe, decorators: [{
|
|
19
|
+
type: Pipe,
|
|
20
|
+
args: [{
|
|
21
|
+
name: 'barcodeFormat'
|
|
22
|
+
}]
|
|
23
|
+
}] });
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyY29kZS1mb3JtYXQtcGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLWRldmVsb3AtY29tcG9uZW50cy9zcmMvbGliL2JhcmNvZGUtZm9ybWF0LXBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUsvQyxNQUFNLE9BQU8saUJBQWlCO0lBQzFCLFNBQVMsQ0FBQyxLQUFhO1FBQ25CLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNoQixLQUFLLE1BQU0sVUFBVSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDakQsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEQsSUFBSSxlQUFlLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEtBQUssRUFBRTtnQkFDakQsTUFBTSxHQUFHLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUN0QztTQUNKO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQzs7OEdBVlEsaUJBQWlCOzRHQUFqQixpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFIN0IsSUFBSTttQkFBQztvQkFDRixJQUFJLEVBQUUsZUFBZTtpQkFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJhcmNvZGVGb3JtYXQgfSBmcm9tICdAenhpbmcvbGlicmFyeSc7XHJcblxyXG5AUGlwZSh7XHJcbiAgICBuYW1lOiAnYmFyY29kZUZvcm1hdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEJhcmNvZGVGb3JtYXRQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgICB0cmFuc2Zvcm0odmFsdWU6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICAgICAgbGV0IGZvcm1hdCA9ICcnO1xyXG4gICAgICAgIGZvciAoY29uc3QgZW51bU1lbWJlciBvZiBPYmplY3Qua2V5cyhCYXJjb2RlRm9ybWF0KSkge1xyXG4gICAgICAgICAgICBjb25zdCBpc1ZhbHVlUHJvcGVydHkgPSBwYXJzZUludChlbnVtTWVtYmVyLCAxMCkgPj0gMDtcclxuICAgICAgICAgICAgaWYgKGlzVmFsdWVQcm9wZXJ0eSAmJiBOdW1iZXIoZW51bU1lbWJlcikgPT09IHZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICBmb3JtYXQgPSBCYXJjb2RlRm9ybWF0W2VudW1NZW1iZXJdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmb3JtYXQ7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
import { takeUntil } from 'rxjs/operators';
|
|
3
|
+
import { BarsaApi } from 'barsa-novin-ray-core';
|
|
4
|
+
import { UiMoInfoSubFormUiComponent } from 'barsa-sap-ui';
|
|
5
|
+
import { BarcodeReaderDialogComponent } from '../barcode-reader-dialog/barcode-reader-dialog.component';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@fundamental-ngx/platform/shared";
|
|
8
|
+
import * as i2 from "@fundamental-ngx/platform/button";
|
|
9
|
+
import * as i3 from "@fundamental-ngx/platform/form";
|
|
10
|
+
import * as i4 from "@angular/common";
|
|
11
|
+
import * as i5 from "barsa-novin-ray-core";
|
|
12
|
+
export class BarcodeReaderComponent extends UiMoInfoSubFormUiComponent {
|
|
13
|
+
constructor() {
|
|
14
|
+
super(...arguments);
|
|
15
|
+
this.size = 'large';
|
|
16
|
+
}
|
|
17
|
+
ngOnInit() {
|
|
18
|
+
super.ngOnInit();
|
|
19
|
+
this.barcodeValue = this.context.Setting.FormPanelSetting.Data.Mo.Value;
|
|
20
|
+
const format = this.context.Setting.CustomFieldInfo?.Format;
|
|
21
|
+
if (format) {
|
|
22
|
+
this.barcodeFormat = format
|
|
23
|
+
.split(',')
|
|
24
|
+
.filter((c) => c)
|
|
25
|
+
.map((c) => Number(c) - 1);
|
|
26
|
+
}
|
|
27
|
+
this.size = BarsaApi.Bw.GetWindowSize();
|
|
28
|
+
}
|
|
29
|
+
onOpenBarcodeReader() {
|
|
30
|
+
const data = { barcodeFormats: this.barcodeFormat };
|
|
31
|
+
const dialogRef = this._dialogService.open(BarcodeReaderDialogComponent, {
|
|
32
|
+
data,
|
|
33
|
+
fullScreen: this.isMobileDevice ? false : true,
|
|
34
|
+
verticalPadding: true,
|
|
35
|
+
responsivePadding: true,
|
|
36
|
+
mobile: this.isMobileDevice,
|
|
37
|
+
mobileOuterSpacing: true
|
|
38
|
+
});
|
|
39
|
+
dialogRef.afterClosed.pipe(takeUntil(this._onDestroy$)).subscribe((value) => {
|
|
40
|
+
if (value) {
|
|
41
|
+
this._setFieldValue(value);
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
onValueChange(e) {
|
|
46
|
+
this._setFieldValue(e.target.value);
|
|
47
|
+
}
|
|
48
|
+
_addFormControl(formControl) {
|
|
49
|
+
this.customFormPanelUi = formControl;
|
|
50
|
+
}
|
|
51
|
+
_setFieldValue(value) {
|
|
52
|
+
this.barcodeValue = value;
|
|
53
|
+
const valueCustomFieldUi = this.context.formControl._dictFieldUi.Value;
|
|
54
|
+
valueCustomFieldUi.value = value;
|
|
55
|
+
valueCustomFieldUi.fireEvent('change', value);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
BarcodeReaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarcodeReaderComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
59
|
+
BarcodeReaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: BarcodeReaderComponent, selector: "bdc-barcode-reader", usesInheritance: true, ngImport: i0, template: "<!-- <fd-input-group\r\n placement=\"after\"\r\n glyph=\"camera\"\r\n [placeholder]=\"'BarcodeReader' | bbbTranslate\"\r\n [button]=\"true\"\r\n ariaLabelledby=\"fd-input-group-button-label-2\"\r\n (addOnButtonClicked)=\"onOpenBarcodeReader()\"\r\n (input)=\"onValueChange($event)\"\r\n>\r\n</fd-input-group> -->\r\n\r\n<fdp-input-group\r\n [placeholder]=\"'BarcodeReader' | bbbTranslate\"\r\n [value]=\"barcodeValue\"\r\n (input)=\"onValueChange($event)\"\r\n [name]=\"'barcode_' + id\"\r\n [contentDensity]=\"(contentDensity$ | async)!!\"\r\n [disabled]=\"(disableOrReadonly$ | async)!!\"\r\n>\r\n <fdp-input-group-input type=\"text\"></fdp-input-group-input>\r\n <fdp-input-group-addon>\r\n <fdp-button glyph=\"camera\" (click)=\"onOpenBarcodeReader()\"></fdp-button>\r\n </fdp-input-group-addon>\r\n</fdp-input-group>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.PlatformContentDensityDeprecationDirective, selector: " fdp-action-bar[contentDensity], fdp-button[contentDensity], fdp-object-list-item[contentDensity], fdp-standard-list-item[contentDensity], fdp-menu[contentDensity], fdp-menu-button[contentDensity], fdp-panel[contentDensity], fdp-search-field[contentDensity], fdp-split-menu-button[contentDensity], fdp-file-uploader[contentDensity], fdp-upload-collection[contentDensity], fdp-table[contentDensity], fdp-multi-input[contentDensity], fdp-list[contentDensity], fdp-slider[contentDensity], fdp-time-picker[contentDensity], fdp-textarea[contentDensity], fdp-switch[contentDensity], fdp-number-step-input[contentDensity], fdp-select[contentDensity], fdp-date-picker[contentDensity], fdp-checkbox[contentDensity], fdp-checkbox-group[contentDensity], fdp-combobox[contentDensity], fdp-datetime-picker[contentDensity], fdp-input[contentDensity], fdp-radio-group[contentDensity], fdp-radio-button[contentDensity], fdp-multi-combobox[contentDensity], fdp-input-group-addon-body[contentDensity], fdp-input-group[contentDensity], fdp-value-help-dialog[contentDensity], fdp-filter-single-select[contentDensity], fdp-filter-multi-select[contentDensity], fdp-filter-custom[contentDensity] " }, { kind: "component", type: i2.ButtonComponent, selector: "fdp-button", inputs: ["glyphPosition", "label", "glyph", "buttonType", "title", "ariaSelected", "ariaDisabled", "ariaExpanded", "ariaControlsId", "ariaPressed", "name", "type", "value"], outputs: ["buttonClicked"] }, { kind: "component", type: i3.InputGroupComponent, selector: "fdp-input-group", inputs: ["value"] }, { kind: "component", type: i3.InputGroupAddonComponent, selector: "fdp-input-group-addon" }, { kind: "component", type: i3.InputGroupInputComponent, selector: "fdp-input-group-input", inputs: ["type"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarcodeReaderComponent, decorators: [{
|
|
61
|
+
type: Component,
|
|
62
|
+
args: [{ selector: 'bdc-barcode-reader', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- <fd-input-group\r\n placement=\"after\"\r\n glyph=\"camera\"\r\n [placeholder]=\"'BarcodeReader' | bbbTranslate\"\r\n [button]=\"true\"\r\n ariaLabelledby=\"fd-input-group-button-label-2\"\r\n (addOnButtonClicked)=\"onOpenBarcodeReader()\"\r\n (input)=\"onValueChange($event)\"\r\n>\r\n</fd-input-group> -->\r\n\r\n<fdp-input-group\r\n [placeholder]=\"'BarcodeReader' | bbbTranslate\"\r\n [value]=\"barcodeValue\"\r\n (input)=\"onValueChange($event)\"\r\n [name]=\"'barcode_' + id\"\r\n [contentDensity]=\"(contentDensity$ | async)!!\"\r\n [disabled]=\"(disableOrReadonly$ | async)!!\"\r\n>\r\n <fdp-input-group-input type=\"text\"></fdp-input-group-input>\r\n <fdp-input-group-addon>\r\n <fdp-button glyph=\"camera\" (click)=\"onOpenBarcodeReader()\"></fdp-button>\r\n </fdp-input-group-addon>\r\n</fdp-input-group>\r\n" }]
|
|
63
|
+
}] });
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyY29kZS1yZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzL3NyYy9saWIvYmFyY29kZS1yZWFkZXIvYmFyY29kZS1yZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzL3NyYy9saWIvYmFyY29kZS1yZWFkZXIvYmFyY29kZS1yZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUUzRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2hELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUUxRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQzs7Ozs7OztBQVF4RyxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsMEJBQTBCO0lBTnRFOztRQU9XLFNBQUksR0FBOEIsT0FBTyxDQUFDO0tBOENwRDtJQXpDRyxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFDeEUsTUFBTSxNQUFNLEdBQVcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLE1BQU0sQ0FBQztRQUNwRSxJQUFJLE1BQU0sRUFBRTtZQUNSLElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTTtpQkFDdEIsS0FBSyxDQUFDLEdBQUcsQ0FBQztpQkFDVixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztpQkFDaEIsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDbEM7UUFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVELG1CQUFtQjtRQUNmLE1BQU0sSUFBSSxHQUFHLEVBQUUsY0FBYyxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNwRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyw0QkFBNEIsRUFBRTtZQUNyRSxJQUFJO1lBQ0osVUFBVSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUM5QyxlQUFlLEVBQUUsSUFBSTtZQUNyQixpQkFBaUIsRUFBRSxJQUFJO1lBQ3ZCLE1BQU0sRUFBRSxJQUFJLENBQUMsY0FBYztZQUMzQixrQkFBa0IsRUFBRSxJQUFJO1NBQzNCLENBQUMsQ0FBQztRQUNILFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN4RSxJQUFJLEtBQUssRUFBRTtnQkFDUCxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzlCO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0QsYUFBYSxDQUFDLENBQUM7UUFDWCxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUNTLGVBQWUsQ0FBQyxXQUFXO1FBQ2pDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxXQUFXLENBQUM7SUFDekMsQ0FBQztJQUNPLGNBQWMsQ0FBQyxLQUFVO1FBQzdCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztRQUN2RSxrQkFBa0IsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ2pDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDbEQsQ0FBQzs7bUhBOUNRLHNCQUFzQjt1R0FBdEIsc0JBQXNCLGlGQ2hCbkMsbzJCQXdCQTsyRkRSYSxzQkFBc0I7a0JBTmxDLFNBQVM7K0JBQ0ksb0JBQW9CLG1CQUdiLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5LCBEeW5hbWljUGFnZVJlc3BvbnNpdmVTaXplIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcblxuaW1wb3J0IHsgQmFyc2FBcGkgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5pbXBvcnQgeyBVaU1vSW5mb1N1YkZvcm1VaUNvbXBvbmVudCB9IGZyb20gJ2JhcnNhLXNhcC11aSc7XG5cbmltcG9ydCB7IEJhcmNvZGVSZWFkZXJEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9iYXJjb2RlLXJlYWRlci1kaWFsb2cvYmFyY29kZS1yZWFkZXItZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYXJjb2RlRm9ybWF0IH0gZnJvbSAnQHp4aW5nL2xpYnJhcnknO1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdiZGMtYmFyY29kZS1yZWFkZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXJjb2RlLXJlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYmFyY29kZS1yZWFkZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBCYXJjb2RlUmVhZGVyQ29tcG9uZW50IGV4dGVuZHMgVWlNb0luZm9TdWJGb3JtVWlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHB1YmxpYyBzaXplOiBEeW5hbWljUGFnZVJlc3BvbnNpdmVTaXplID0gJ2xhcmdlJztcbiAgICBwdWJsaWMgYmFyY29kZVZhbHVlOiBzdHJpbmc7XG4gICAgY29udGVudERlbnNpdHkkOiBPYnNlcnZhYmxlPENvbnRlbnREZW5zaXR5PjtcbiAgICBiYXJjb2RlRm9ybWF0OiBBcnJheTxCYXJjb2RlRm9ybWF0PjtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLmJhcmNvZGVWYWx1ZSA9IHRoaXMuY29udGV4dC5TZXR0aW5nLkZvcm1QYW5lbFNldHRpbmcuRGF0YS5Nby5WYWx1ZTtcbiAgICAgICAgY29uc3QgZm9ybWF0OiBzdHJpbmcgPSB0aGlzLmNvbnRleHQuU2V0dGluZy5DdXN0b21GaWVsZEluZm8/LkZvcm1hdDtcbiAgICAgICAgaWYgKGZvcm1hdCkge1xuICAgICAgICAgICAgdGhpcy5iYXJjb2RlRm9ybWF0ID0gZm9ybWF0XG4gICAgICAgICAgICAgICAgLnNwbGl0KCcsJylcbiAgICAgICAgICAgICAgICAuZmlsdGVyKChjKSA9PiBjKVxuICAgICAgICAgICAgICAgIC5tYXAoKGMpID0+IE51bWJlcihjKSAtIDEpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2l6ZSA9IEJhcnNhQXBpLkJ3LkdldFdpbmRvd1NpemUoKTtcbiAgICB9XG5cbiAgICBvbk9wZW5CYXJjb2RlUmVhZGVyKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBkYXRhID0geyBiYXJjb2RlRm9ybWF0czogdGhpcy5iYXJjb2RlRm9ybWF0IH07XG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuX2RpYWxvZ1NlcnZpY2Uub3BlbihCYXJjb2RlUmVhZGVyRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgZnVsbFNjcmVlbjogdGhpcy5pc01vYmlsZURldmljZSA/IGZhbHNlIDogdHJ1ZSxcbiAgICAgICAgICAgIHZlcnRpY2FsUGFkZGluZzogdHJ1ZSxcbiAgICAgICAgICAgIHJlc3BvbnNpdmVQYWRkaW5nOiB0cnVlLFxuICAgICAgICAgICAgbW9iaWxlOiB0aGlzLmlzTW9iaWxlRGV2aWNlLFxuICAgICAgICAgICAgbW9iaWxlT3V0ZXJTcGFjaW5nOiB0cnVlXG4gICAgICAgIH0pO1xuICAgICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3NldEZpZWxkVmFsdWUodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgb25WYWx1ZUNoYW5nZShlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NldEZpZWxkVmFsdWUoZS50YXJnZXQudmFsdWUpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX2FkZEZvcm1Db250cm9sKGZvcm1Db250cm9sKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3VzdG9tRm9ybVBhbmVsVWkgPSBmb3JtQ29udHJvbDtcbiAgICB9XG4gICAgcHJpdmF0ZSBfc2V0RmllbGRWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuYmFyY29kZVZhbHVlID0gdmFsdWU7XG4gICAgICAgIGNvbnN0IHZhbHVlQ3VzdG9tRmllbGRVaSA9IHRoaXMuY29udGV4dC5mb3JtQ29udHJvbC5fZGljdEZpZWxkVWkuVmFsdWU7XG4gICAgICAgIHZhbHVlQ3VzdG9tRmllbGRVaS52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB2YWx1ZUN1c3RvbUZpZWxkVWkuZmlyZUV2ZW50KCdjaGFuZ2UnLCB2YWx1ZSk7XG4gICAgfVxufVxuIiwiPCEtLSA8ZmQtaW5wdXQtZ3JvdXBcclxuICBwbGFjZW1lbnQ9XCJhZnRlclwiXHJcbiAgZ2x5cGg9XCJjYW1lcmFcIlxyXG4gIFtwbGFjZWhvbGRlcl09XCInQmFyY29kZVJlYWRlcicgfCBiYmJUcmFuc2xhdGVcIlxyXG4gIFtidXR0b25dPVwidHJ1ZVwiXHJcbiAgYXJpYUxhYmVsbGVkYnk9XCJmZC1pbnB1dC1ncm91cC1idXR0b24tbGFiZWwtMlwiXHJcbiAgKGFkZE9uQnV0dG9uQ2xpY2tlZCk9XCJvbk9wZW5CYXJjb2RlUmVhZGVyKClcIlxyXG4gIChpbnB1dCk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxyXG4+XHJcbjwvZmQtaW5wdXQtZ3JvdXA+IC0tPlxyXG5cclxuPGZkcC1pbnB1dC1ncm91cFxyXG4gICAgW3BsYWNlaG9sZGVyXT1cIidCYXJjb2RlUmVhZGVyJyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICBbdmFsdWVdPVwiYmFyY29kZVZhbHVlXCJcclxuICAgIChpbnB1dCk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgW25hbWVdPVwiJ2JhcmNvZGVfJyArIGlkXCJcclxuICAgIFtjb250ZW50RGVuc2l0eV09XCIoY29udGVudERlbnNpdHkkIHwgYXN5bmMpISFcIlxyXG4gICAgW2Rpc2FibGVkXT1cIihkaXNhYmxlT3JSZWFkb25seSQgfCBhc3luYykhIVwiXHJcbj5cclxuICAgIDxmZHAtaW5wdXQtZ3JvdXAtaW5wdXQgdHlwZT1cInRleHRcIj48L2ZkcC1pbnB1dC1ncm91cC1pbnB1dD5cclxuICAgIDxmZHAtaW5wdXQtZ3JvdXAtYWRkb24+XHJcbiAgICAgICAgPGZkcC1idXR0b24gZ2x5cGg9XCJjYW1lcmFcIiAoY2xpY2spPVwib25PcGVuQmFyY29kZVJlYWRlcigpXCI+PC9mZHAtYnV0dG9uPlxyXG4gICAgPC9mZHAtaW5wdXQtZ3JvdXAtYWRkb24+XHJcbjwvZmRwLWlucHV0LWdyb3VwPlxyXG4iXX0=
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
import { of } from 'rxjs';
|
|
3
|
+
import { BaseComponent } from 'barsa-novin-ray-core';
|
|
4
|
+
import { concatMap, delay, exhaustMap, finalize, takeUntil, tap } from 'rxjs/operators';
|
|
5
|
+
import { BarcodeFormat } from '@zxing/library';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@fundamental-ngx/core";
|
|
8
|
+
import * as i2 from "../barcode.service";
|
|
9
|
+
import * as i3 from "@angular/common";
|
|
10
|
+
import * as i4 from "@fundamental-ngx/core/bar";
|
|
11
|
+
import * as i5 from "@fundamental-ngx/core/dialog";
|
|
12
|
+
import * as i6 from "@fundamental-ngx/core/title";
|
|
13
|
+
import * as i7 from "@fundamental-ngx/core/utils";
|
|
14
|
+
import * as i8 from "@fundamental-ngx/core/select";
|
|
15
|
+
import * as i9 from "../barcode-reader-video/barcode-reader-video.component";
|
|
16
|
+
import * as i10 from "barsa-novin-ray-core";
|
|
17
|
+
export class BarcodeReaderDialogComponent extends BaseComponent {
|
|
18
|
+
constructor(_dialogRef, _userMediaService) {
|
|
19
|
+
super();
|
|
20
|
+
this._dialogRef = _dialogRef;
|
|
21
|
+
this._userMediaService = _userMediaService;
|
|
22
|
+
this.value = '';
|
|
23
|
+
this.format = [BarcodeFormat.QR_CODE];
|
|
24
|
+
this.loading = true;
|
|
25
|
+
this._dialogRef.loading(true);
|
|
26
|
+
this.barcodeFormats = this._dialogRef.data?.barcodeFormats ?? [];
|
|
27
|
+
this.selectedFormat = this.barcodeFormats.length > 0 ? this.barcodeFormats[0] : BarcodeFormat.QR_CODE;
|
|
28
|
+
}
|
|
29
|
+
ngAfterViewInit() {
|
|
30
|
+
super.ngAfterViewInit();
|
|
31
|
+
this._initialize();
|
|
32
|
+
}
|
|
33
|
+
onDismiss() {
|
|
34
|
+
this._dialogRef.dismiss();
|
|
35
|
+
}
|
|
36
|
+
onOk() {
|
|
37
|
+
this._close();
|
|
38
|
+
}
|
|
39
|
+
onCameraChange(value) {
|
|
40
|
+
this.selectedCamera = value;
|
|
41
|
+
}
|
|
42
|
+
onFormatChange(format) {
|
|
43
|
+
this.selectedFormat = format;
|
|
44
|
+
}
|
|
45
|
+
onScanSuccess(result) {
|
|
46
|
+
this.value = result;
|
|
47
|
+
this._close();
|
|
48
|
+
}
|
|
49
|
+
onValueChanged(e) {
|
|
50
|
+
this.value = e.target.value;
|
|
51
|
+
}
|
|
52
|
+
_close() {
|
|
53
|
+
this._dialogRef.close(this.value);
|
|
54
|
+
}
|
|
55
|
+
_initialize() {
|
|
56
|
+
of(true)
|
|
57
|
+
.pipe(takeUntil(this._onDestroy$), exhaustMap(() => this._userMediaService.askForPermission()), concatMap((permission) => {
|
|
58
|
+
if (permission) {
|
|
59
|
+
return this._userMediaService.updateVideoInputDevices();
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
return of(true);
|
|
63
|
+
}
|
|
64
|
+
}), finalize(() => {
|
|
65
|
+
this.loading = false;
|
|
66
|
+
this._dialogRef.loading(false);
|
|
67
|
+
}))
|
|
68
|
+
.subscribe();
|
|
69
|
+
this.hasDevice$ = this._userMediaService.hasDevices$;
|
|
70
|
+
this.permission$ = this._userMediaService.permission$;
|
|
71
|
+
this.cameras$ = this._userMediaService.cameras$.pipe(delay(0), tap((cameras) => {
|
|
72
|
+
this.selectedCamera = cameras.find((c) => c.label.indexOf('back') > -1) ?? cameras[0];
|
|
73
|
+
}));
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
BarcodeReaderDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarcodeReaderDialogComponent, deps: [{ token: i1.DialogRef }, { token: i2.UserMediaBaseService }], target: i0.ɵɵFactoryTarget.Component });
|
|
77
|
+
BarcodeReaderDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: BarcodeReaderDialogComponent, selector: "bdc-barcode-reader-dialog", usesInheritance: true, ngImport: i0, template: "<fd-dialog>\r\n <fd-dialog-header>\r\n <h1 fd-title>{{ 'BarcodeReader' | bbbTranslate }} {{ selectedCamera?.label }}</h1>\r\n <button fd-dialog-close-button (click)=\"onDismiss()\"></button>\r\n </fd-dialog-header>\r\n <fd-dialog-body>\r\n <ng-container *ngIf=\"!loading\">\r\n <ng-container *ngIf=\"permission$ | async; else noPermission\">\r\n <ng-container *ngIf=\"hasDevice$ | async; else noDevice\">\r\n <bdc-barcode-reader-video\r\n *ngIf=\"selectedCamera\"\r\n [format]=\"format\"\r\n [selectedCamera]=\"selectedCamera\"\r\n [allFormats]=\"barcodeFormats\"\r\n (scanSuccess)=\"onScanSuccess($event)\"\r\n ></bdc-barcode-reader-video>\r\n </ng-container> </ng-container\r\n ></ng-container>\r\n <ng-template #noDevice>\r\n <p>BrowserNotSupport</p>\r\n </ng-template>\r\n <ng-template #noPermission>\r\n <p>NoPermission</p>\r\n </ng-template>\r\n </fd-dialog-body>\r\n <fd-dialog-footer>\r\n <ng-template fdTemplate=\"footer\">\r\n <ng-container *ngIf=\"cameras$ | async as cameraList\">\r\n <div fd-bar-left>\r\n <fd-select\r\n *ngIf=\"cameraList.length > 1\"\r\n [placeholder]=\"'Camera' | bbbTranslate\"\r\n (valueChange)=\"onCameraChange($event)\"\r\n [value]=\"selectedCamera\"\r\n >\r\n <fd-option *ngFor=\"let camera of cameraList\" [value]=\"camera\">{{ camera.label }}</fd-option>\r\n </fd-select>\r\n </div>\r\n <div fd-bar-right></div>\r\n </ng-container>\r\n </ng-template>\r\n </fd-dialog-footer>\r\n</fd-dialog>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: i4.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "component", type: i5.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i5.DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: i5.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i5.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "component", type: i5.DialogCloseButtonComponent, selector: "[fd-dialog-close-button]", inputs: ["mobile", "title"] }, { kind: "component", type: i6.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: i7.TemplateDirective, selector: "[fdTemplate]", inputs: ["fdTemplate"] }, { kind: "component", type: i8.SelectComponent, selector: "fd-select", inputs: ["controlId", "state", "mobile", "stateMessage", "disabled", "required", "readonly", "placeholder", "value", "extendedBodyTemplate", "maxHeight", "glyph", "closeOnOutsideClick", "fillControlMode", "controlTemplate", "appendTo", "unselectMissingOption", "typeaheadDebounceInterval", "ariaLabelledBy", "ariaLabel", "mobileConfig", "inline"], outputs: ["isOpenChange", "valueChange"] }, { kind: "component", type: i8.OptionComponent, selector: "[fd-option], fd-option", inputs: ["id", "value", "disabled"], outputs: ["selectionChange"] }, { kind: "component", type: i9.BarcodeReaderVideoComponent, selector: "bdc-barcode-reader-video", inputs: ["allFormats", "previewFitMode", "selectedCamera"], outputs: ["scanSuccess"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
78
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarcodeReaderDialogComponent, decorators: [{
|
|
79
|
+
type: Component,
|
|
80
|
+
args: [{ selector: 'bdc-barcode-reader-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-dialog>\r\n <fd-dialog-header>\r\n <h1 fd-title>{{ 'BarcodeReader' | bbbTranslate }} {{ selectedCamera?.label }}</h1>\r\n <button fd-dialog-close-button (click)=\"onDismiss()\"></button>\r\n </fd-dialog-header>\r\n <fd-dialog-body>\r\n <ng-container *ngIf=\"!loading\">\r\n <ng-container *ngIf=\"permission$ | async; else noPermission\">\r\n <ng-container *ngIf=\"hasDevice$ | async; else noDevice\">\r\n <bdc-barcode-reader-video\r\n *ngIf=\"selectedCamera\"\r\n [format]=\"format\"\r\n [selectedCamera]=\"selectedCamera\"\r\n [allFormats]=\"barcodeFormats\"\r\n (scanSuccess)=\"onScanSuccess($event)\"\r\n ></bdc-barcode-reader-video>\r\n </ng-container> </ng-container\r\n ></ng-container>\r\n <ng-template #noDevice>\r\n <p>BrowserNotSupport</p>\r\n </ng-template>\r\n <ng-template #noPermission>\r\n <p>NoPermission</p>\r\n </ng-template>\r\n </fd-dialog-body>\r\n <fd-dialog-footer>\r\n <ng-template fdTemplate=\"footer\">\r\n <ng-container *ngIf=\"cameras$ | async as cameraList\">\r\n <div fd-bar-left>\r\n <fd-select\r\n *ngIf=\"cameraList.length > 1\"\r\n [placeholder]=\"'Camera' | bbbTranslate\"\r\n (valueChange)=\"onCameraChange($event)\"\r\n [value]=\"selectedCamera\"\r\n >\r\n <fd-option *ngFor=\"let camera of cameraList\" [value]=\"camera\">{{ camera.label }}</fd-option>\r\n </fd-select>\r\n </div>\r\n <div fd-bar-right></div>\r\n </ng-container>\r\n </ng-template>\r\n </fd-dialog-footer>\r\n</fd-dialog>\r\n" }]
|
|
81
|
+
}], ctorParameters: function () { return [{ type: i1.DialogRef }, { type: i2.UserMediaBaseService }]; } });
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyY29kZS1yZWFkZXItZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLWRldmVsb3AtY29tcG9uZW50cy9zcmMvbGliL2JhcmNvZGUtcmVhZGVyLWRpYWxvZy9iYXJjb2RlLXJlYWRlci1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzL3NyYy9saWIvYmFyY29kZS1yZWFkZXItZGlhbG9nL2JhcmNvZGUtcmVhZGVyLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVsRixPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXRDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7OztBQU8vQyxNQUFNLE9BQU8sNEJBQTZCLFNBQVEsYUFBYTtJQVUzRCxZQUFvQixVQUFxQixFQUFVLGlCQUF1QztRQUN0RixLQUFLLEVBQUUsQ0FBQztRQURRLGVBQVUsR0FBVixVQUFVLENBQVc7UUFBVSxzQkFBaUIsR0FBakIsaUJBQWlCLENBQXNCO1FBVDFGLFVBQUssR0FBRyxFQUFFLENBQUM7UUFFWCxXQUFNLEdBQUcsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFTN0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxjQUFjLElBQUksRUFBRSxDQUFDO1FBQ2pFLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDO0lBQzFHLENBQUM7SUFFRCxlQUFlO1FBQ1gsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsU0FBUztRQUNMLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUNELElBQUk7UUFDQSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFLO1FBQ2hCLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO0lBQ2hDLENBQUM7SUFDRCxjQUFjLENBQUMsTUFBTTtRQUNqQixJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQztJQUNqQyxDQUFDO0lBQ0QsYUFBYSxDQUFDLE1BQU07UUFDaEIsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUM7UUFDcEIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFDRCxjQUFjLENBQUMsQ0FBQztRQUNaLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDaEMsQ0FBQztJQUNPLE1BQU07UUFDVixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUNPLFdBQVc7UUFDZixFQUFFLENBQUMsSUFBSSxDQUFDO2FBQ0gsSUFBSSxDQUNELFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQzNCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxFQUMzRCxTQUFTLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUNyQixJQUFJLFVBQVUsRUFBRTtnQkFDWixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO2FBQzNEO2lCQUFNO2dCQUNILE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ25CO1FBQ0wsQ0FBQyxDQUFDLEVBQ0YsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNWLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUNMO2FBQ0EsU0FBUyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDO1FBQ3JELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQztRQUN0RCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNoRCxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQ1IsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDWixJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFGLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDOzt5SEF4RVEsNEJBQTRCOzZHQUE1Qiw0QkFBNEIsd0ZDZHpDLDI3REEyQ0E7MkZEN0JhLDRCQUE0QjtrQkFOeEMsU0FBUzsrQkFDSSwyQkFBMkIsbUJBR3BCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEaWFsb2dSZWYgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcbmltcG9ydCB7IFVzZXJNZWRpYUJhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vYmFyY29kZS5zZXJ2aWNlJztcbmltcG9ydCB7IGNvbmNhdE1hcCwgZGVsYXksIGV4aGF1c3RNYXAsIGZpbmFsaXplLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEJhcmNvZGVGb3JtYXQgfSBmcm9tICdAenhpbmcvbGlicmFyeSc7XG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JkYy1iYXJjb2RlLXJlYWRlci1kaWFsb2cnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXJjb2RlLXJlYWRlci1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2JhcmNvZGUtcmVhZGVyLWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEJhcmNvZGVSZWFkZXJEaWFsb2dDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgdmFsdWUgPSAnJztcbiAgICBjYW1lcmFzJDogT2JzZXJ2YWJsZTxNZWRpYURldmljZUluZm9bXT47XG4gICAgZm9ybWF0ID0gW0JhcmNvZGVGb3JtYXQuUVJfQ09ERV07XG4gICAgaGFzRGV2aWNlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBwZXJtaXNzaW9uJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBsb2FkaW5nOiBib29sZWFuO1xuICAgIHNlbGVjdGVkQ2FtZXJhOiBNZWRpYURldmljZUluZm87XG4gICAgYmFyY29kZUZvcm1hdHM6IEFycmF5PEJhcmNvZGVGb3JtYXQ+O1xuICAgIHNlbGVjdGVkRm9ybWF0OiBCYXJjb2RlRm9ybWF0O1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2RpYWxvZ1JlZjogRGlhbG9nUmVmLCBwcml2YXRlIF91c2VyTWVkaWFTZXJ2aWNlOiBVc2VyTWVkaWFCYXNlU2VydmljZSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLl9kaWFsb2dSZWYubG9hZGluZyh0cnVlKTtcbiAgICAgICAgdGhpcy5iYXJjb2RlRm9ybWF0cyA9IHRoaXMuX2RpYWxvZ1JlZi5kYXRhPy5iYXJjb2RlRm9ybWF0cyA/PyBbXTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEZvcm1hdCA9IHRoaXMuYmFyY29kZUZvcm1hdHMubGVuZ3RoID4gMCA/IHRoaXMuYmFyY29kZUZvcm1hdHNbMF0gOiBCYXJjb2RlRm9ybWF0LlFSX0NPREU7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgICAgICAgdGhpcy5faW5pdGlhbGl6ZSgpO1xuICAgIH1cblxuICAgIG9uRGlzbWlzcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZGlhbG9nUmVmLmRpc21pc3MoKTtcbiAgICB9XG4gICAgb25PaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2xvc2UoKTtcbiAgICB9XG5cbiAgICBvbkNhbWVyYUNoYW5nZSh2YWx1ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGVkQ2FtZXJhID0gdmFsdWU7XG4gICAgfVxuICAgIG9uRm9ybWF0Q2hhbmdlKGZvcm1hdCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGVkRm9ybWF0ID0gZm9ybWF0O1xuICAgIH1cbiAgICBvblNjYW5TdWNjZXNzKHJlc3VsdCk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlID0gcmVzdWx0O1xuICAgICAgICB0aGlzLl9jbG9zZSgpO1xuICAgIH1cbiAgICBvblZhbHVlQ2hhbmdlZChlKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSBlLnRhcmdldC52YWx1ZTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfY2xvc2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2RpYWxvZ1JlZi5jbG9zZSh0aGlzLnZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICAgICAgb2YodHJ1ZSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICBleGhhdXN0TWFwKCgpID0+IHRoaXMuX3VzZXJNZWRpYVNlcnZpY2UuYXNrRm9yUGVybWlzc2lvbigpKSxcbiAgICAgICAgICAgICAgICBjb25jYXRNYXAoKHBlcm1pc3Npb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBlcm1pc3Npb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl91c2VyTWVkaWFTZXJ2aWNlLnVwZGF0ZVZpZGVvSW5wdXREZXZpY2VzKCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9kaWFsb2dSZWYubG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5oYXNEZXZpY2UkID0gdGhpcy5fdXNlck1lZGlhU2VydmljZS5oYXNEZXZpY2VzJDtcbiAgICAgICAgdGhpcy5wZXJtaXNzaW9uJCA9IHRoaXMuX3VzZXJNZWRpYVNlcnZpY2UucGVybWlzc2lvbiQ7XG4gICAgICAgIHRoaXMuY2FtZXJhcyQgPSB0aGlzLl91c2VyTWVkaWFTZXJ2aWNlLmNhbWVyYXMkLnBpcGUoXG4gICAgICAgICAgICBkZWxheSgwKSxcbiAgICAgICAgICAgIHRhcCgoY2FtZXJhcykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDYW1lcmEgPSBjYW1lcmFzLmZpbmQoKGMpID0+IGMubGFiZWwuaW5kZXhPZignYmFjaycpID4gLTEpID8/IGNhbWVyYXNbMF07XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cbn1cbiIsIjxmZC1kaWFsb2c+XHJcbiAgICA8ZmQtZGlhbG9nLWhlYWRlcj5cclxuICAgICAgICA8aDEgZmQtdGl0bGU+e3sgJ0JhcmNvZGVSZWFkZXInIHwgYmJiVHJhbnNsYXRlIH19IHt7IHNlbGVjdGVkQ2FtZXJhPy5sYWJlbCB9fTwvaDE+XHJcbiAgICAgICAgPGJ1dHRvbiBmZC1kaWFsb2ctY2xvc2UtYnV0dG9uIChjbGljayk9XCJvbkRpc21pc3MoKVwiPjwvYnV0dG9uPlxyXG4gICAgPC9mZC1kaWFsb2ctaGVhZGVyPlxyXG4gICAgPGZkLWRpYWxvZy1ib2R5PlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9hZGluZ1wiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicGVybWlzc2lvbiQgfCBhc3luYzsgZWxzZSBub1Blcm1pc3Npb25cIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNEZXZpY2UkIHwgYXN5bmM7IGVsc2Ugbm9EZXZpY2VcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YmRjLWJhcmNvZGUtcmVhZGVyLXZpZGVvXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2VsZWN0ZWRDYW1lcmFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZm9ybWF0XT1cImZvcm1hdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZENhbWVyYV09XCJzZWxlY3RlZENhbWVyYVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthbGxGb3JtYXRzXT1cImJhcmNvZGVGb3JtYXRzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHNjYW5TdWNjZXNzKT1cIm9uU2NhblN1Y2Nlc3MoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvYmRjLWJhcmNvZGUtcmVhZGVyLXZpZGVvPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+IDwvbmctY29udGFpbmVyXHJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9EZXZpY2U+XHJcbiAgICAgICAgICAgIDxwPkJyb3dzZXJOb3RTdXBwb3J0PC9wPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNub1Blcm1pc3Npb24+XHJcbiAgICAgICAgICAgIDxwPk5vUGVybWlzc2lvbjwvcD5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9mZC1kaWFsb2ctYm9keT5cclxuICAgIDxmZC1kaWFsb2ctZm9vdGVyPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBmZFRlbXBsYXRlPVwiZm9vdGVyXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjYW1lcmFzJCB8IGFzeW5jIGFzIGNhbWVyYUxpc3RcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgZmQtYmFyLWxlZnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPGZkLXNlbGVjdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNhbWVyYUxpc3QubGVuZ3RoID4gMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInQ2FtZXJhJyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvbkNhbWVyYUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInNlbGVjdGVkQ2FtZXJhXCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1vcHRpb24gKm5nRm9yPVwibGV0IGNhbWVyYSBvZiBjYW1lcmFMaXN0XCIgW3ZhbHVlXT1cImNhbWVyYVwiPnt7IGNhbWVyYS5sYWJlbCB9fTwvZmQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZmQtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhci1yaWdodD48L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvZmQtZGlhbG9nLWZvb3Rlcj5cclxuPC9mZC1kaWFsb2c+XHJcbiJdfQ==
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject } from 'rxjs';
|
|
3
|
+
import { BaseComponent } from 'barsa-novin-ray-core';
|
|
4
|
+
import { debounceTime, filter, takeUntil, tap } from 'rxjs/operators';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../barcode.service";
|
|
7
|
+
import * as i2 from "barsa-novin-ray-core";
|
|
8
|
+
export class BarcodeReaderVideoComponent extends BaseComponent {
|
|
9
|
+
constructor(_webBarcodeService) {
|
|
10
|
+
super();
|
|
11
|
+
this._webBarcodeService = _webBarcodeService;
|
|
12
|
+
this.previewFitMode = 'fill';
|
|
13
|
+
this.scanSuccess = new EventEmitter();
|
|
14
|
+
this._cameraSource = new BehaviorSubject(null);
|
|
15
|
+
}
|
|
16
|
+
set selectedCamera(val) {
|
|
17
|
+
this._cameraSource.next(val);
|
|
18
|
+
}
|
|
19
|
+
ngOnInit() {
|
|
20
|
+
super.ngOnInit();
|
|
21
|
+
this._setFormat(this.allFormats);
|
|
22
|
+
this._cameraSource
|
|
23
|
+
.asObservable()
|
|
24
|
+
.pipe(takeUntil(this._onDestroy$), debounceTime(500), filter((camera) => camera != null), tap((camera) => {
|
|
25
|
+
this._stopScan();
|
|
26
|
+
this._startScan(camera);
|
|
27
|
+
}))
|
|
28
|
+
.subscribe();
|
|
29
|
+
this._webBarcodeService.scanSuccess$.subscribe((result) => {
|
|
30
|
+
this.scanSuccess.emit(result);
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
ngOnDestroy() {
|
|
34
|
+
super.ngOnDestroy();
|
|
35
|
+
this._webBarcodeService.scanStop();
|
|
36
|
+
}
|
|
37
|
+
_setFormat(formats) {
|
|
38
|
+
this._webBarcodeService.setFormat(formats);
|
|
39
|
+
}
|
|
40
|
+
_stopScan() {
|
|
41
|
+
this._webBarcodeService.scanStop();
|
|
42
|
+
}
|
|
43
|
+
_startScan(camera) {
|
|
44
|
+
if (this.videoElement) {
|
|
45
|
+
this._webBarcodeService.startScan(camera, this.videoElement.nativeElement);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
BarcodeReaderVideoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarcodeReaderVideoComponent, deps: [{ token: i1.WebBarcodeService }], target: i0.ɵɵFactoryTarget.Component });
|
|
50
|
+
BarcodeReaderVideoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: BarcodeReaderVideoComponent, selector: "bdc-barcode-reader-video", inputs: { allFormats: "allFormats", previewFitMode: "previewFitMode", selectedCamera: "selectedCamera" }, outputs: { scanSuccess: "scanSuccess" }, viewQueries: [{ propertyName: "videoElement", first: true, predicate: ["videoElement"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<video #videoElement [style.object-fit]=\"previewFitMode\">\r\n <p>{{ 'BrowserNotSupport' | bbbTranslate }}</p>\r\n</video>\r\n", styles: [":host,video{display:block;width:100%;height:100%}\n"], dependencies: [{ kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: BarcodeReaderVideoComponent, decorators: [{
|
|
52
|
+
type: Component,
|
|
53
|
+
args: [{ selector: 'bdc-barcode-reader-video', changeDetection: ChangeDetectionStrategy.OnPush, template: "<video #videoElement [style.object-fit]=\"previewFitMode\">\r\n <p>{{ 'BrowserNotSupport' | bbbTranslate }}</p>\r\n</video>\r\n", styles: [":host,video{display:block;width:100%;height:100%}\n"] }]
|
|
54
|
+
}], ctorParameters: function () { return [{ type: i1.WebBarcodeService }]; }, propDecorators: { allFormats: [{
|
|
55
|
+
type: Input
|
|
56
|
+
}], previewFitMode: [{
|
|
57
|
+
type: Input
|
|
58
|
+
}], scanSuccess: [{
|
|
59
|
+
type: Output
|
|
60
|
+
}], videoElement: [{
|
|
61
|
+
type: ViewChild,
|
|
62
|
+
args: ['videoElement', { static: true }]
|
|
63
|
+
}], selectedCamera: [{
|
|
64
|
+
type: Input
|
|
65
|
+
}] } });
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyY29kZS1yZWFkZXItdmlkZW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzL3NyYy9saWIvYmFyY29kZS1yZWFkZXItdmlkZW8vYmFyY29kZS1yZWFkZXItdmlkZW8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzL3NyYy9saWIvYmFyY29kZS1yZWFkZXItdmlkZW8vYmFyY29kZS1yZWFkZXItdmlkZW8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHdkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXJELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQVF0RSxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsYUFBYTtJQWMxRCxZQUFvQixrQkFBcUM7UUFDckQsS0FBSyxFQUFFLENBQUM7UUFEUSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBWHpELG1CQUFjLEdBQXlELE1BQU0sQ0FBQztRQUVwRSxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFPM0Msa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBeUIsSUFBSSxDQUFDLENBQUM7SUFJMUUsQ0FBQztJQVBELElBQWEsY0FBYyxDQUFDLEdBQW9CO1FBQzVDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFPRCxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRWpDLElBQUksQ0FBQyxhQUFhO2FBQ2IsWUFBWSxFQUFFO2FBQ2QsSUFBSSxDQUNELFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQzNCLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFDakIsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLEVBRWxDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ1gsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQ0w7YUFDQSxTQUFTLEVBQUUsQ0FBQztRQUVqQixJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ3RELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNELFdBQVc7UUFDUCxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFTyxVQUFVLENBQUMsT0FBd0I7UUFDdkMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBQ08sU0FBUztRQUNiLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBQ08sVUFBVSxDQUFDLE1BQU07UUFDckIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ25CLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDOUU7SUFDTCxDQUFDOzt3SEF2RFEsMkJBQTJCOzRHQUEzQiwyQkFBMkIsc1dDeEJ4QyxvSUFHQTsyRkRxQmEsMkJBQTJCO2tCQU52QyxTQUFTOytCQUNJLDBCQUEwQixtQkFHbkIsdUJBQXVCLENBQUMsTUFBTTt3R0FHdEMsVUFBVTtzQkFBbEIsS0FBSztnQkFFTixjQUFjO3NCQURiLEtBQUs7Z0JBR0ksV0FBVztzQkFBcEIsTUFBTTtnQkFHUCxZQUFZO3NCQURYLFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFFOUIsY0FBYztzQkFBMUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQmFyY29kZUZvcm1hdCB9IGZyb20gJ0B6eGluZy9saWJyYXJ5JztcblxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcbmltcG9ydCB7IFdlYkJhcmNvZGVTZXJ2aWNlIH0gZnJvbSAnLi4vYmFyY29kZS5zZXJ2aWNlJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZmlsdGVyLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdiZGMtYmFyY29kZS1yZWFkZXItdmlkZW8nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXJjb2RlLXJlYWRlci12aWRlby5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYmFyY29kZS1yZWFkZXItdmlkZW8uY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBCYXJjb2RlUmVhZGVyVmlkZW9Db21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpIGFsbEZvcm1hdHM6IEJhcmNvZGVGb3JtYXRbXTtcbiAgICBASW5wdXQoKVxuICAgIHByZXZpZXdGaXRNb2RlOiAnZmlsbCcgfCAnY29udGFpbicgfCAnY292ZXInIHwgJ3NjYWxlLWRvd24nIHwgJ25vbmUnID0gJ2ZpbGwnO1xuXG4gICAgQE91dHB1dCgpIHNjYW5TdWNjZXNzID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICBAVmlld0NoaWxkKCd2aWRlb0VsZW1lbnQnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIHZpZGVvRWxlbWVudDogRWxlbWVudFJlZjxIVE1MVmlkZW9FbGVtZW50PjtcbiAgICBASW5wdXQoKSBzZXQgc2VsZWN0ZWRDYW1lcmEodmFsOiBNZWRpYURldmljZUluZm8pIHtcbiAgICAgICAgdGhpcy5fY2FtZXJhU291cmNlLm5leHQodmFsKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfY2FtZXJhU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNZWRpYURldmljZUluZm8gfCBudWxsPihudWxsKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX3dlYkJhcmNvZGVTZXJ2aWNlOiBXZWJCYXJjb2RlU2VydmljZSkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLl9zZXRGb3JtYXQodGhpcy5hbGxGb3JtYXRzKTtcblxuICAgICAgICB0aGlzLl9jYW1lcmFTb3VyY2VcbiAgICAgICAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpLFxuICAgICAgICAgICAgICAgIGRlYm91bmNlVGltZSg1MDApLFxuICAgICAgICAgICAgICAgIGZpbHRlcigoY2FtZXJhKSA9PiBjYW1lcmEgIT0gbnVsbCksXG5cbiAgICAgICAgICAgICAgICB0YXAoKGNhbWVyYSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdG9wU2NhbigpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdGFydFNjYW4oY2FtZXJhKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgICAgIHRoaXMuX3dlYkJhcmNvZGVTZXJ2aWNlLnNjYW5TdWNjZXNzJC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zY2FuU3VjY2Vzcy5lbWl0KHJlc3VsdCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5fd2ViQmFyY29kZVNlcnZpY2Uuc2NhblN0b3AoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zZXRGb3JtYXQoZm9ybWF0czogQmFyY29kZUZvcm1hdFtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3dlYkJhcmNvZGVTZXJ2aWNlLnNldEZvcm1hdChmb3JtYXRzKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfc3RvcFNjYW4oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3dlYkJhcmNvZGVTZXJ2aWNlLnNjYW5TdG9wKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX3N0YXJ0U2NhbihjYW1lcmEpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMudmlkZW9FbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLl93ZWJCYXJjb2RlU2VydmljZS5zdGFydFNjYW4oY2FtZXJhLCB0aGlzLnZpZGVvRWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjx2aWRlbyAjdmlkZW9FbGVtZW50IFtzdHlsZS5vYmplY3QtZml0XT1cInByZXZpZXdGaXRNb2RlXCI+XHJcbiAgICA8cD57eyAnQnJvd3Nlck5vdFN1cHBvcnQnIHwgYmJiVHJhbnNsYXRlIH19PC9wPlxyXG48L3ZpZGVvPlxyXG4iXX0=
|