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.
Files changed (108) hide show
  1. package/README.md +25 -0
  2. package/esm2020/barsa-develop-components.mjs +5 -0
  3. package/esm2020/lib/avatar/avatar.component.mjs +19 -0
  4. package/esm2020/lib/barcode-format-pipe.mjs +24 -0
  5. package/esm2020/lib/barcode-reader/barcode-reader.component.mjs +64 -0
  6. package/esm2020/lib/barcode-reader-dialog/barcode-reader-dialog.component.mjs +82 -0
  7. package/esm2020/lib/barcode-reader-video/barcode-reader-video.component.mjs +66 -0
  8. package/esm2020/lib/barcode.service.mjs +330 -0
  9. package/esm2020/lib/barsa-develop-components.module.mjs +224 -0
  10. package/esm2020/lib/card-content-image-and-title/card-content-image-and-title.component.mjs +50 -0
  11. package/esm2020/lib/card-content-line-chart/card-content-line-chart.component.mjs +38 -0
  12. package/esm2020/lib/card-header-big-image-title-and-subtitle/card-header-big-image-title-and-subtitle.component.mjs +20 -0
  13. package/esm2020/lib/card-header-kpi/card-header-kpi.component.mjs +36 -0
  14. package/esm2020/lib/card-header-logo-title-subtitle/card-header-logo-title-subtitle.component.mjs +46 -0
  15. package/esm2020/lib/checkbox-button/checkbox-button.component.mjs +23 -0
  16. package/esm2020/lib/enum-info-micro-proccess-flow/enum-info-micro-proccess-flow.component.mjs +17 -0
  17. package/esm2020/lib/form-chart-content/form-chart-content.component.mjs +38 -0
  18. package/esm2020/lib/form-content-quick-view/form-content-quick-view.component.mjs +51 -0
  19. package/esm2020/lib/g4b-details/g4b-details.component.mjs +28 -0
  20. package/esm2020/lib/g4b-estelam/g4b-estelam.component.mjs +30 -0
  21. package/esm2020/lib/login-form/login-form.component.mjs +49 -0
  22. package/esm2020/lib/login-social-conncetions/login-social-conncetions.component.mjs +30 -0
  23. package/esm2020/lib/micro-proccess-flow/micro-proccess-flow.component.mjs +48 -0
  24. package/esm2020/lib/micro-process-flow-view/micro-process-flow-view.component.mjs +24 -0
  25. package/esm2020/lib/mo-info-micro-proccess-flow/mo-info-micro-proccess-flow.component.mjs +23 -0
  26. package/esm2020/lib/models/models.mjs +2 -0
  27. package/esm2020/lib/models/person.mjs +2 -0
  28. package/esm2020/lib/pipes/datasource-to-flow-item.mjs +22 -0
  29. package/esm2020/lib/pipes/index.mjs +3 -0
  30. package/esm2020/lib/pipes/mo-list-to-flow-item.pipe.mjs +22 -0
  31. package/esm2020/lib/query-string-form-observable/query-string-form-observable.component.mjs +37 -0
  32. package/esm2020/lib/query-string-observable/query-string-observable.component.mjs +22 -0
  33. package/esm2020/lib/report-line-chart-view/report-line-chart-view.component.mjs +13 -0
  34. package/esm2020/lib/report-tab-view/report-tab-view.component.mjs +27 -0
  35. package/esm2020/lib/resend-verification-code/resend-verification-code.component.mjs +59 -0
  36. package/esm2020/lib/service-desk-card-content-mojavezhay-akhz-shode/service-desk-card-content-mojavezhay-akhz-shode.component.mjs +28 -0
  37. package/esm2020/lib/service-desk-form-layout-content-mojavez/service-desk-form-layout-content-mojavez.component.mjs +110 -0
  38. package/esm2020/lib/service-desk-header/service-desk-header.component.mjs +229 -0
  39. package/esm2020/lib/service-desk-servcie-detail/service-desk-servcie-detail.component.mjs +147 -0
  40. package/esm2020/lib/service-desk-view-of-services/service-desk-view-of-services.component.mjs +22 -0
  41. package/esm2020/lib/setting-form/setting-form.component.mjs +66 -0
  42. package/esm2020/lib/tab-process-view/tab-process-view.component.mjs +41 -0
  43. package/esm2020/lib/table-view-vertical-columns/table-view-vertical-columns.component.mjs +15 -0
  44. package/esm2020/lib/timer-count-down/timer-count-down.component.mjs +79 -0
  45. package/esm2020/lib/ui-enum-segmented-button/ui-enum-segmented-button.component.mjs +25 -0
  46. package/esm2020/lib/ui-num-rate/ui-num-rate.component.mjs +18 -0
  47. package/esm2020/lib/ui-person/ui-person.component.mjs +160 -0
  48. package/esm2020/lib/ui-person/ui-person.pipe.mjs +40 -0
  49. package/esm2020/lib/ui-pictures-carousel/ui-pictures-carousel.component.mjs +17 -0
  50. package/esm2020/lib/ui-text-field-search/ui-text-field-search.component.mjs +30 -0
  51. package/esm2020/lib/ulv-context-menu-item-show-file-content/ulv-context-menu-item-show-file-content.component.mjs +70 -0
  52. package/esm2020/public-api.mjs +47 -0
  53. package/fesm2015/barsa-develop-components.mjs +2368 -0
  54. package/fesm2015/barsa-develop-components.mjs.map +1 -0
  55. package/fesm2020/barsa-develop-components.mjs +2344 -0
  56. package/fesm2020/barsa-develop-components.mjs.map +1 -0
  57. package/index.d.ts +5 -0
  58. package/lib/avatar/avatar.component.d.ts +9 -0
  59. package/lib/barcode-format-pipe.d.ts +7 -0
  60. package/lib/barcode-reader/barcode-reader.component.d.ts +19 -0
  61. package/lib/barcode-reader-dialog/barcode-reader-dialog.component.d.ts +32 -0
  62. package/lib/barcode-reader-video/barcode-reader-video.component.d.ts +22 -0
  63. package/lib/barcode.service.d.ts +98 -0
  64. package/lib/barsa-develop-components.module.d.ts +94 -0
  65. package/lib/card-content-image-and-title/card-content-image-and-title.component.d.ts +21 -0
  66. package/lib/card-content-line-chart/card-content-line-chart.component.d.ts +9 -0
  67. package/lib/card-header-big-image-title-and-subtitle/card-header-big-image-title-and-subtitle.component.d.ts +6 -0
  68. package/lib/card-header-kpi/card-header-kpi.component.d.ts +14 -0
  69. package/lib/card-header-logo-title-subtitle/card-header-logo-title-subtitle.component.d.ts +23 -0
  70. package/lib/checkbox-button/checkbox-button.component.d.ts +13 -0
  71. package/lib/enum-info-micro-proccess-flow/enum-info-micro-proccess-flow.component.d.ts +8 -0
  72. package/lib/form-chart-content/form-chart-content.component.d.ts +9 -0
  73. package/lib/form-content-quick-view/form-content-quick-view.component.d.ts +13 -0
  74. package/lib/g4b-details/g4b-details.component.d.ts +9 -0
  75. package/lib/g4b-estelam/g4b-estelam.component.d.ts +11 -0
  76. package/lib/login-form/login-form.component.d.ts +15 -0
  77. package/lib/login-social-conncetions/login-social-conncetions.component.d.ts +12 -0
  78. package/lib/micro-proccess-flow/micro-proccess-flow.component.d.ts +22 -0
  79. package/lib/micro-process-flow-view/micro-process-flow-view.component.d.ts +14 -0
  80. package/lib/mo-info-micro-proccess-flow/mo-info-micro-proccess-flow.component.d.ts +9 -0
  81. package/lib/models/models.d.ts +19 -0
  82. package/lib/models/person.d.ts +10 -0
  83. package/lib/pipes/datasource-to-flow-item.d.ts +10 -0
  84. package/lib/pipes/index.d.ts +2 -0
  85. package/lib/pipes/mo-list-to-flow-item.pipe.d.ts +10 -0
  86. package/lib/query-string-form-observable/query-string-form-observable.component.d.ts +13 -0
  87. package/lib/query-string-observable/query-string-observable.component.d.ts +9 -0
  88. package/lib/report-line-chart-view/report-line-chart-view.component.d.ts +7 -0
  89. package/lib/report-tab-view/report-tab-view.component.d.ts +15 -0
  90. package/lib/resend-verification-code/resend-verification-code.component.d.ts +18 -0
  91. package/lib/service-desk-card-content-mojavezhay-akhz-shode/service-desk-card-content-mojavezhay-akhz-shode.component.d.ts +15 -0
  92. package/lib/service-desk-form-layout-content-mojavez/service-desk-form-layout-content-mojavez.component.d.ts +26 -0
  93. package/lib/service-desk-header/service-desk-header.component.d.ts +57 -0
  94. package/lib/service-desk-servcie-detail/service-desk-servcie-detail.component.d.ts +39 -0
  95. package/lib/service-desk-view-of-services/service-desk-view-of-services.component.d.ts +12 -0
  96. package/lib/setting-form/setting-form.component.d.ts +23 -0
  97. package/lib/tab-process-view/tab-process-view.component.d.ts +19 -0
  98. package/lib/table-view-vertical-columns/table-view-vertical-columns.component.d.ts +6 -0
  99. package/lib/timer-count-down/timer-count-down.component.d.ts +15 -0
  100. package/lib/ui-enum-segmented-button/ui-enum-segmented-button.component.d.ts +9 -0
  101. package/lib/ui-num-rate/ui-num-rate.component.d.ts +8 -0
  102. package/lib/ui-person/ui-person.component.d.ts +31 -0
  103. package/lib/ui-person/ui-person.pipe.d.ts +7 -0
  104. package/lib/ui-pictures-carousel/ui-pictures-carousel.component.d.ts +6 -0
  105. package/lib/ui-text-field-search/ui-text-field-search.component.d.ts +14 -0
  106. package/lib/ulv-context-menu-item-show-file-content/ulv-context-menu-item-show-file-content.component.d.ts +25 -0
  107. package/package.json +31 -0
  108. 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=