@ajf/material 13.1.3 → 13.2.0

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.
@@ -20,10 +20,12 @@
20
20
  *
21
21
  */
22
22
  import { AjfBaseWidgetComponent, AjfReportWidget as CoreComponent, AjfWidgetService as CoreService, AjfWidgetType as wt, } from '@ajf/core/reports';
23
- import { ChangeDetectionStrategy, Component, Injectable, ViewEncapsulation, } from '@angular/core';
23
+ import { ChangeDetectionStrategy, Component, Injectable, TemplateRef, ViewChild, ViewEncapsulation, } from '@angular/core';
24
24
  import { BehaviorSubject } from 'rxjs';
25
25
  import { AjfChartWidgetComponent } from './chart-widget';
26
26
  import { AjfFormulaWidgetComponent } from './formula-widget';
27
+ import { AjfGraphWidgetComponent } from './graph-widget';
28
+ import { AjfHeatMapWidgetComponent } from './heat-map-widget';
27
29
  import { AjfImageContainerWidgetComponent } from './image-container-widget';
28
30
  import { AjfImageWidgetComponent } from './image-widget';
29
31
  import { AjfMapWidgetComponent } from './map-widget';
@@ -34,6 +36,7 @@ import * as i0 from "@angular/core";
34
36
  import * as i1 from "./filter-widget";
35
37
  import * as i2 from "@angular/common";
36
38
  import * as i3 from "@ajf/core/reports";
39
+ import * as i4 from "@angular/material/dialog";
37
40
  const defaultWidgetsFactory = () => {
38
41
  const defaultWidgets = {};
39
42
  defaultWidgets[wt.Layout] = { component: AjfLayoutWidgetComponent };
@@ -47,6 +50,10 @@ const defaultWidgetsFactory = () => {
47
50
  defaultWidgets[wt.Column] = { component: AjfColumnWidgetComponent };
48
51
  defaultWidgets[wt.Formula] = { component: AjfFormulaWidgetComponent };
49
52
  defaultWidgets[wt.ImageContainer] = { component: AjfImageContainerWidgetComponent };
53
+ defaultWidgets[wt.Graph] = { component: AjfGraphWidgetComponent };
54
+ defaultWidgets[wt.PaginatedList] = { component: AjfPaginatedListWidgetComponent };
55
+ defaultWidgets[wt.Dialog] = { component: AjfDialogWidgetComponent };
56
+ defaultWidgets[wt.HeatMap] = { component: AjfHeatMapWidgetComponent };
50
57
  return defaultWidgets;
51
58
  };
52
59
  export class AjfWidgetService extends CoreService {
@@ -100,4 +107,98 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImpor
100
107
  type: Component,
101
108
  args: [{ changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div *ngIf=\"instance\" class=\"ajf-columns\">\n <div\n *ngFor=\"let column of instance.widget.columns; let idx = index\"\n [ngStyle]=\"{'flex-grow': column > -1 ? 1 : null, 'flex-basis' : column > -1 ? (column * 100) + '%' : null}\"\n class=\"ajf-column\"\n >\n <ng-container *ngIf=\"allcolumnsRendered$|async\">\n <ajf-widget *ngIf=\"(instance|ajfGetColumnContent:idx) as cc\" [instance]=\"cc!\">\n </ajf-widget>\n </ng-container>\n </div>\n</div>\n", styles: [".ajf-columns{flex:1 1 auto;display:flex;align-items:inherit;box-sizing:border-box}.ajf-columns>.ajf-column{box-sizing:border-box;display:flex;align-items:inherit;flex-shrink:1}\n"] }]
102
109
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }]; } });
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwvcmVwb3J0cy9zcmMvd2lkZ2V0LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwvcmVwb3J0cy9zcmMvd2lkZ2V0Lmh0bWwiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC9yZXBvcnRzL3NyYy9jb2x1bW4td2lkZ2V0Lmh0bWwiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC9yZXBvcnRzL3NyYy9sYXlvdXQtd2lkZ2V0Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBRUgsT0FBTyxFQUNMLHNCQUFzQixFQUd0QixlQUFlLElBQUksYUFBYSxFQUVoQyxnQkFBZ0IsSUFBSSxXQUFXLEVBQy9CLGFBQWEsSUFBSSxFQUFFLEdBQ3BCLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsVUFBVSxFQUVWLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsZUFBZSxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBRWpELE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzNELE9BQU8sRUFBQyxnQ0FBZ0MsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQzFFLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUNuRCxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFP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LENBQUMsQ0FBQztRQUNwRix3QkFBbUIsR0FBd0IsSUFBSTthQUNyRCxvQkFBMkMsQ0FBQztJQUkvQyxDQUFDO0lBQ0QscUJBQXFCO1FBQ25CLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQzs7cUhBYlUsd0JBQXdCO3lHQUF4Qix3QkFBd0IsMkVHN0dyQyw4ZEFZQSx1TkhzRWEsZUFBZTsyRkEyQmYsd0JBQXdCO2tCQU5wQyxTQUFTO3NDQUdTLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgKEMpIEdudWNvb3Agc29jLiBjb29wLlxuICpcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBBZHZhbmNlZCBKU09OIGZvcm1zIChhamYpLlxuICpcbiAqIEFkdmFuY2VkIEpTT04gZm9ybXMgKGFqZikgaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yXG4gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXNcbiAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLFxuICogb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBBZHZhbmNlZCBKU09OIGZvcm1zIChhamYpIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBBZmZlcm9cbiAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggQWR2YW5jZWQgSlNPTiBmb3JtcyAoYWpmKS5cbiAqIElmIG5vdCwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8uXG4gKlxuICovXG5cbmltcG9ydCB7XG4gIEFqZkJhc2VXaWRnZXRDb21wb25lbnQsXG4gIEFqZkNvbHVtbldpZGdldEluc3RhbmNlLFxuICBBamZMYXlvdXRXaWRnZXRJbnN0YW5jZSxcbiAgQWpmUmVwb3J0V2lkZ2V0IGFzIENvcmVDb21wb25lbnQsXG4gIEFqZldpZGdldENvbXBvbmVudHNNYXAsXG4gIEFqZldpZGdldFNlcnZpY2UgYXMgQ29yZVNlcnZpY2UsXG4gIEFqZldpZGdldFR5cGUgYXMgd3QsXG59IGZyb20gJ0BhamYvY29yZS9yZXBvcnRzJztcbmltcG9ydCB7XG4gIEFmdGVyQ29udGVudENoZWNrZWQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbmplY3RhYmxlLFxuICBSZW5kZXJlcjIsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtBamZDaGFydFdpZGdldENvbXBvbmVudH0gZnJvbSAnLi9jaGFydC13aWRnZXQnO1xuaW1wb3J0IHtBamZGb3JtdWxhV2lkZ2V0Q29tcG9uZW50fSBmcm9tICcuL2Zvcm11bGEtd2lkZ2V0JztcbmltcG9ydCB7QWpmSW1hZ2VDb250YWluZXJXaWRnZXRDb21wb25lbnR9IGZyb20gJy4vaW1hZ2UtY29udGFpbmVyLXdpZGdldCc7XG5pbXBvcnQge0FqZkltYWdlV2lkZ2V0Q29tcG9uZW50fSBmcm9tICcuL2ltYWdlLXdpZGdldCc7XG5pbXBvcnQge0FqZk1hcFdpZGdldENvbXBvbmVudH0gZnJvbSAnLi9tYXAtd2lkZ2V0JztcbmltcG9ydCB7QWpmUGFnZUJyZWFrV2lkZ2V0Q29tcG9uZW50fSBmcm9tICcuL3BhZ2UtYnJlYWstd2lkZ2V0JztcbmltcG9ydCB7QWpmVGFibGVXaWRnZXRDb21wb25lbnR9IGZyb20gJy4vdGFibGUtd2lkZ2V0JztcbmltcG9ydCB7QWpmVGV4dFdpZGdldENvbXBvbmVudH0gZnJvbSAnLi90ZXh0LXdpZGdldCc7XG5cbmNvbnN0IGRlZmF1bHRXaWRnZXRzRmFjdG9yeSA9ICgpOiBBamZXaWRnZXRDb21wb25lbnRzTWFwID0+IHtcbiAgY29uc3QgZGVmYXVsdFdpZGdldHM6IEFqZldpZGdldENvbXBvbmVudHNNYXAgPSB7fTtcbiAgZGVmYXVsdFdpZGdldHNbd3QuTGF5b3V0XSA9IHtjb21wb25lbnQ6IEFqZkxheW91dFdpZGdldENvbXBvbmVudH07XG4gIGRlZmF1bHRXaWRnZXRzW3d0LlBhZ2VCcmVha10gPSB7Y29tcG9uZW50OiBBamZQYWdlQnJlYWtXaWRnZXRDb21wb25lbnR9O1xuICBkZWZhdWx0V2lkZ2V0c1t3dC5JbWFnZV0gPSB7Y29tcG9uZW50OiBBamZJbWFnZVdpZGdldENvbXBvbmVudH07XG4gIGRlZmF1bHRXaWRnZXRzW3d0LlRleHRdID0ge2NvbXBvbmVudDogQWpmVGV4dFdpZGdldENvbXBvbmVudH07XG4gIGRlZmF1bHRXaWRnZXRzW3d0LkNoYXJ0XSA9IHtjb21wb25lbnQ6IEFqZkNoYXJ0V2lkZ2V0Q29tcG9uZW50fTtcbiAgZGVmYXVsdFdpZGdldHNbd3QuVGFibGVdID0ge2NvbXBvbmVudDogQWpmVGFibGVXaWRnZXRDb21wb25lbnR9O1xuICBkZWZhdWx0V2lkZ2V0c1t3dC5EeW5hbWljVGFibGVdID0ge2NvbXBvbmVudDogQWpmVGFibGVXaWRnZXRDb21wb25lbnR9O1xuICBkZWZhdWx0V2lkZ2V0c1t3dC5NYXBdID0ge2NvbXBvbmVudDogQWpmTWFwV2lkZ2V0Q29tcG9uZW50fTtcbiAgZGVmYXVsdFdpZGdldHNbd3QuQ29sdW1uXSA9IHtjb21wb25lbnQ6IEFqZkNvbHVtbldpZGdldENvbXBvbmVudH07XG4gIGRlZmF1bHRXaWRnZXRzW3d0LkZvcm11bGFdID0ge2NvbXBvbmVudDogQWpmRm9ybXVsYVdpZGdldENvbXBvbmVudH07XG4gIGRlZmF1bHRXaWRnZXRzW3d0LkltYWdlQ29udGFpbmVyXSA9IHtjb21wb25lbnQ6IEFqZkltYWdlQ29udGFpbmVyV2lkZ2V0Q29tcG9uZW50fTtcbiAgcmV0dXJuIGRlZmF1bHRXaWRnZXRzO1xufTtcblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgQWpmV2lkZ2V0U2VydmljZSBleHRlbmRzIENvcmVTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoZGVmYXVsdFdpZGdldHNGYWN0b3J5KCkpO1xuICB9XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FqZi13aWRnZXQnLFxuICB0ZW1wbGF0ZVVybDogJ3dpZGdldC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ3dpZGdldC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBBamZSZXBvcnRXaWRnZXQgZXh0ZW5kcyBDb3JlQ29tcG9uZW50IHtcbiAgcmVhZG9ubHkgd2lkZ2V0c01hcDogQWpmV2lkZ2V0Q29tcG9uZW50c01hcDtcblxuICBjb25zdHJ1Y3RvcihyZW5kZXJlcjogUmVuZGVyZXIyLCB3aWRnZXRTZXJ2aWNlOiBBamZXaWRnZXRTZXJ2aWNlKSB7XG4gICAgc3VwZXIocmVuZGVyZXIpO1xuICAgIHRoaXMud2lkZ2V0c01hcCA9IHdpZGdldFNlcnZpY2UuY29tcG9uZW50c01hcDtcbiAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICdjb2x1bW4td2lkZ2V0Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnY29sdW1uLXdpZGdldC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBBamZDb2x1bW5XaWRnZXRDb21wb25lbnQgZXh0ZW5kcyBBamZCYXNlV2lkZ2V0Q29tcG9uZW50PEFqZkNvbHVtbldpZGdldEluc3RhbmNlPiB7XG4gIGNvbnN0cnVjdG9yKGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIGVsOiBFbGVtZW50UmVmKSB7XG4gICAgc3VwZXIoY2RyLCBlbCk7XG4gIH1cbn1cblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnbGF5b3V0LXdpZGdldC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ2xheW91dC13aWRnZXQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgQWpmTGF5b3V0V2lkZ2V0Q29tcG9uZW50XG4gIGV4dGVuZHMgQWpmQmFzZVdpZGdldENvbXBvbmVudDxBamZMYXlvdXRXaWRnZXRJbnN0YW5jZT5cbiAgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRDaGVja2VkXG57XG4gIHByaXZhdGUgX2FsbGNvbHVtbnNSZW5kZXJlZCQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBhbGxjb2x1bW5zUmVuZGVyZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpc1xuICAgIC5fYWxsY29sdW1uc1JlbmRlcmVkJCBhcyBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIGNvbnN0cnVjdG9yKGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIGVsOiBFbGVtZW50UmVmKSB7XG4gICAgc3VwZXIoY2RyLCBlbCk7XG4gIH1cbiAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuX2FsbGNvbHVtbnNSZW5kZXJlZCQubmV4dCh0cnVlKTtcbiAgfVxufVxuIiwiPGFqZi1maWx0ZXItd2lkZ2V0XG4gICpuZ0lmPVwiaW5zdGFuY2UgJiYgaW5zdGFuY2UuZmlsdGVyXCJcbiAgW2luc3RhbmNlXT1cImluc3RhbmNlXCJcbiAgKGZpbHRlcmVkSW5zdGFuY2UpPVwiaW5zdGFuY2UgPSAkZXZlbnRcIlxuPlxuPC9hamYtZmlsdGVyLXdpZGdldD5cbjxuZy10ZW1wbGF0ZSBhamYtd2lkZ2V0LWhvc3Q+PC9uZy10ZW1wbGF0ZT5cbiIsIjxkaXYgKm5nSWY9XCJpbnN0YW5jZVwiIGNsYXNzPVwiYWpmLWNvbHVtbi1jb250YWluZXJcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdyBvZiBpbnN0YW5jZS5jb250ZW50XCI+XG4gICAgPGFqZi13aWRnZXQgW2luc3RhbmNlXT1cIndcIj5cbiAgICA8L2FqZi13aWRnZXQ+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4iLCI8ZGl2ICpuZ0lmPVwiaW5zdGFuY2VcIiBjbGFzcz1cImFqZi1jb2x1bW5zXCI+XG4gIDxkaXZcbiAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgaW5zdGFuY2Uud2lkZ2V0LmNvbHVtbnM7IGxldCBpZHggPSBpbmRleFwiXG4gICAgICBbbmdTdHlsZV09XCJ7J2ZsZXgtZ3Jvdyc6IGNvbHVtbiA+IC0xID8gMSA6IG51bGwsICdmbGV4LWJhc2lzJyA6IGNvbHVtbiA+IC0xID8gKGNvbHVtbiAqIDEwMCkgKyAnJScgOiBudWxsfVwiXG4gICAgICBjbGFzcz1cImFqZi1jb2x1bW5cIlxuICA+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJhbGxjb2x1bW5zUmVuZGVyZWQkfGFzeW5jXCI+XG4gICAgPGFqZi13aWRnZXQgKm5nSWY9XCIoaW5zdGFuY2V8YWpmR2V0Q29sdW1uQ29udGVudDppZHgpIGFzIGNjXCIgW2luc3RhbmNlXT1cImNjIVwiPlxuICAgIDwvYWpmLXdpZGdldD5cbiAgPC9uZy1jb250YWluZXI+XG4gPC9kaXY+XG48L2Rpdj5cbiJdfQ==
110
+ export class AjfDialogWidgetComponent extends AjfBaseWidgetComponent {
111
+ constructor(cdr, el, _dialog) {
112
+ super(cdr, el);
113
+ this._dialog = _dialog;
114
+ }
115
+ openDialog() {
116
+ this._dialog.open(this.dialogContent);
117
+ }
118
+ }
119
+ AjfDialogWidgetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfDialogWidgetComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i4.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
120
+ AjfDialogWidgetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: AjfDialogWidgetComponent, selector: "ng-component", viewQueries: [{ propertyName: "dialogContent", first: true, predicate: ["dialogContent"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<a *ngIf=\"instance\" class=\"ajf-dialog-toggle\" (click)=\"openDialog()\">\n <ajf-widget [instance]=\"instance.toggle\"></ajf-widget>\n</a>\n<ng-template #dialogContent>\n <ng-container *ngIf=\"instance\">\n <ng-container *ngFor=\"let item of instance.content\">\n <ajf-widget [instance]=\"item\"></ajf-widget>\n </ng-container>\n </ng-container>\n</ng-template>\n", styles: [".ajf-dialog-toggle{display:block;cursor:pointer}\n"], components: [{ type: AjfReportWidget, selector: "ajf-widget" }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
121
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfDialogWidgetComponent, decorators: [{
122
+ type: Component,
123
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<a *ngIf=\"instance\" class=\"ajf-dialog-toggle\" (click)=\"openDialog()\">\n <ajf-widget [instance]=\"instance.toggle\"></ajf-widget>\n</a>\n<ng-template #dialogContent>\n <ng-container *ngIf=\"instance\">\n <ng-container *ngFor=\"let item of instance.content\">\n <ajf-widget [instance]=\"item\"></ajf-widget>\n </ng-container>\n </ng-container>\n</ng-template>\n", styles: [".ajf-dialog-toggle{display:block;cursor:pointer}\n"] }]
124
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i4.MatDialog }]; }, propDecorators: { dialogContent: [{
125
+ type: ViewChild,
126
+ args: ['dialogContent', { read: TemplateRef }]
127
+ }] } });
128
+ export class AjfPaginatedListWidgetComponent extends AjfBaseWidgetComponent {
129
+ constructor(cdr, el) {
130
+ super(cdr, el);
131
+ this._currentPage = 0;
132
+ this._pages = 0;
133
+ this._currentContent = [];
134
+ this._canGoForward = false;
135
+ this._canGoBackward = false;
136
+ }
137
+ get currentPage() {
138
+ return this._currentPage;
139
+ }
140
+ get pages() {
141
+ return this._pages;
142
+ }
143
+ get currentContent() {
144
+ return this._currentContent;
145
+ }
146
+ get canGoForward() {
147
+ return this._canGoForward;
148
+ }
149
+ get canGoBackward() {
150
+ return this._canGoBackward;
151
+ }
152
+ ngOnChanges(changes) {
153
+ if (changes['instance']) {
154
+ this._updateCurrentContent();
155
+ }
156
+ }
157
+ ngOnInit() {
158
+ this._updateCurrentContent();
159
+ }
160
+ goToPage(direction) {
161
+ const diff = direction === 'next' ? 1 : -1;
162
+ const newPage = this._currentPage + diff;
163
+ if (newPage <= 0 || newPage > this._pages) {
164
+ return;
165
+ }
166
+ this._currentPage = newPage;
167
+ this._canGoForward = newPage < this._pages;
168
+ this._canGoBackward = newPage > 1;
169
+ this._fillCurrentContent();
170
+ }
171
+ _updateCurrentContent() {
172
+ this._canGoBackward = false;
173
+ if (this.instance == null || this.instance.content.length === 0) {
174
+ this._currentPage = 0;
175
+ this._pages = 0;
176
+ }
177
+ else {
178
+ this._currentPage = 1;
179
+ const { content } = this.instance;
180
+ const { pageSize } = this.instance.widget;
181
+ this._pages = Math.ceil(content.length / pageSize);
182
+ this._canGoForward = this._pages > 1;
183
+ }
184
+ this._fillCurrentContent();
185
+ }
186
+ _fillCurrentContent() {
187
+ if (this.instance == null || this.instance.content.length === 0) {
188
+ this._currentContent = [];
189
+ return;
190
+ }
191
+ const { content } = this.instance;
192
+ const { pageSize } = this.instance.widget;
193
+ const start = (this._currentPage - 1) * pageSize;
194
+ this._currentContent = content.slice(start, start + pageSize);
195
+ this._cdr.markForCheck();
196
+ }
197
+ }
198
+ AjfPaginatedListWidgetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfPaginatedListWidgetComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
199
+ AjfPaginatedListWidgetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: AjfPaginatedListWidgetComponent, selector: "ng-component", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"ajf-paginated-list\" *ngIf=\"instance && pages > 0\">\n <div class=\"ajf-paginated-list-title-container\">\n <div class=\"ajf-paginated-list-title\">{{ instance.widget.title }}</div>\n <div class=\"ajf-spacer\"></div>\n <div class=\"ajf-paginated-list-paginator\">\n <a (click)=\"goToPage('previous')\" class=\"ajf-paginated-list-btn ajf-paginated-list-back-btn\"\n [class.ajf-paginated-list-btn-disabled]=\"canGoBackward === false\"></a>\n <div class=\"ajf-paginated-list-paginator-page\">{{ currentPage }}</div>\n <div class=\"ajf-paginated-list-paginator-separator\"></div>\n <div class=\"ajf-paginated-list-paginator-pages\">{{ pages }}</div>\n <a (click)=\"goToPage('next')\" class=\"ajf-paginated-list-btn ajf-paginated-list-forward-btn\"\n [class.ajf-paginated-list-btn-disabled]=\"canGoForward === false\"></a>\n </div>\n </div>\n <div class=\"ajf-paginated-list-item\" *ngFor=\"let item of currentContent\">\n <ajf-widget [instance]=\"item\"></ajf-widget>\n </div>\n</div>\n", styles: [".ajf-paginated-list-title-container{display:flex;align-items:center}.ajf-spacer{flex:1 0 auto}.ajf-paginated-list-btn{cursor:pointer;display:block;width:32px;height:32px;position:relative}.ajf-paginated-list-btn:after{width:100%;height:100%;display:flex;justify-content:center;align-items:center}.ajf-paginated-list-paginator-separator{width:16px;height:32px;position:relative}.ajf-paginated-list-paginator-separator:after{width:100%;height:100%;display:flex;justify-content:center;align-items:center;content:\"/\"}.ajf-paginated-list-btn-disabled{opacity:.5;cursor:default}.ajf-paginated-list-back-btn:after{content:\"<\"}.ajf-paginated-list-forward-btn:after{content:\">\"}.ajf-paginated-list-paginator{display:flex;align-items:center}.ajf-paginated-list-paginator>*{margin:0 .5em}\n"], components: [{ type: AjfReportWidget, selector: "ajf-widget" }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
200
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfPaginatedListWidgetComponent, decorators: [{
201
+ type: Component,
202
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"ajf-paginated-list\" *ngIf=\"instance && pages > 0\">\n <div class=\"ajf-paginated-list-title-container\">\n <div class=\"ajf-paginated-list-title\">{{ instance.widget.title }}</div>\n <div class=\"ajf-spacer\"></div>\n <div class=\"ajf-paginated-list-paginator\">\n <a (click)=\"goToPage('previous')\" class=\"ajf-paginated-list-btn ajf-paginated-list-back-btn\"\n [class.ajf-paginated-list-btn-disabled]=\"canGoBackward === false\"></a>\n <div class=\"ajf-paginated-list-paginator-page\">{{ currentPage }}</div>\n <div class=\"ajf-paginated-list-paginator-separator\"></div>\n <div class=\"ajf-paginated-list-paginator-pages\">{{ pages }}</div>\n <a (click)=\"goToPage('next')\" class=\"ajf-paginated-list-btn ajf-paginated-list-forward-btn\"\n [class.ajf-paginated-list-btn-disabled]=\"canGoForward === false\"></a>\n </div>\n </div>\n <div class=\"ajf-paginated-list-item\" *ngFor=\"let item of currentContent\">\n <ajf-widget [instance]=\"item\"></ajf-widget>\n </div>\n</div>\n", styles: [".ajf-paginated-list-title-container{display:flex;align-items:center}.ajf-spacer{flex:1 0 auto}.ajf-paginated-list-btn{cursor:pointer;display:block;width:32px;height:32px;position:relative}.ajf-paginated-list-btn:after{width:100%;height:100%;display:flex;justify-content:center;align-items:center}.ajf-paginated-list-paginator-separator{width:16px;height:32px;position:relative}.ajf-paginated-list-paginator-separator:after{width:100%;height:100%;display:flex;justify-content:center;align-items:center;content:\"/\"}.ajf-paginated-list-btn-disabled{opacity:.5;cursor:default}.ajf-paginated-list-back-btn:after{content:\"<\"}.ajf-paginated-list-forward-btn:after{content:\">\"}.ajf-paginated-list-paginator{display:flex;align-items:center}.ajf-paginated-list-paginator>*{margin:0 .5em}\n"] }]
203
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }]; } });
204
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwvcmVwb3J0cy9zcmMvd2lkZ2V0LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwvcmVwb3J0cy9zcmMvd2lkZ2V0Lmh0bWwiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC9yZXBvcnRzL3NyYy9jb2x1bW4td2lkZ2V0Lmh0bWwiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC9yZXBvcnRzL3NyYy9sYXlvdXQtd2lkZ2V0Lmh0bWwiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC9yZXBvcnRzL3NyYy9kaWFsb2ctd2lkZ2V0Lmh0bWwiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC9yZXBvcnRzL3NyYy9wYWdpbmF0ZWQtbGlzdC13aWRnZXQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFFSCxPQUFPLEVBQ0wsc0JBQXNCLEVBS3RCLGVBQWUsSUFBSSxhQUFhLEVBR2hDLGdCQUFnQixJQUFJLFdBQVcsRUFDL0IsYUFBYSxJQUFJLEVBQUUsR0FDcEIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxVQUFVLEVBS1YsV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLGVBQWUsRUFBYSxNQUFNLE1BQU0sQ0FBQztBQUVqRCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUMzRCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxt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LENBQUMsTUFBTSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxDQUFDO1lBQ25ELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7U0FDdEM7UUFDRCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU8sbUJBQW1CO1FBQ3pCLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUMvRCxJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztZQUMxQixPQUFPO1NBQ1I7UUFDRCxNQUFNLEVBQUMsT0FBTyxFQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUNoQyxNQUFNLEVBQUMsUUFBUSxFQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFDeEMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQztRQUNqRCxJQUFJLENBQUMsZUFBZSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssR0FBRyxRQUFRLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzNCLENBQUM7OzRIQWhGVSwrQkFBK0I7Z0hBQS9CLCtCQUErQixnR0twSzVDLGtpQ0FrQkEsc3pCTCtFYSxlQUFlOzJGQW1FZiwrQkFBK0I7a0JBTjNDLFNBQVM7c0NBR1MsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAoQykgR251Y29vcCBzb2MuIGNvb3AuXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFkdmFuY2VkIEpTT04gZm9ybXMgKGFqZikuXG4gKlxuICogQWR2YW5jZWQgSlNPTiBmb3JtcyAoYWpmKSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3JcbiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhc1xuICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsXG4gKiBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIEFkdmFuY2VkIEpTT04gZm9ybXMgKGFqZikgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEFmZmVyb1xuICogR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBBZHZhbmNlZCBKU09OIGZvcm1zIChhamYpLlxuICogSWYgbm90LCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLy5cbiAqXG4gKi9cblxuaW1wb3J0IHtcbiAgQWpmQmFzZVdpZGdldENvbXBvbmVudCxcbiAgQWpmQ29sdW1uV2lkZ2V0SW5zdGFuY2UsXG4gIEFqZkRpYWxvZ1dpZGdldEluc3RhbmNlLFxuICBBamZMYXlvdXRXaWRnZXRJbnN0YW5jZSxcbiAgQWpmUGFnaW5hdGVkTGlzdFdpZGdldEluc3RhbmNlLFxuICBBamZSZXBvcnRXaWRnZXQgYXMgQ29yZUNvbXBvbmVudCxcbiAgQWpmV2lkZ2V0Q29tcG9uZW50c01hcCxcbiAgQWpmV2lkZ2V0SW5zdGFuY2UsXG4gIEFqZldpZGdldFNlcnZpY2UgYXMgQ29yZVNlcnZpY2UsXG4gIEFqZldpZGdldFR5cGUgYXMgd3QsXG59IGZyb20gJ0BhamYvY29yZS9yZXBvcnRzJztcbmltcG9ydCB7XG4gIEFmdGVyQ29udGVudENoZWNrZWQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbmplY3RhYmxlLFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgUmVuZGVyZXIyLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01hdERpYWxvZ30gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtBamZDaGFydFdpZGdldENvbXBvbmVudH0gZnJvbSAnLi9jaGFydC13aWRnZXQnO1xuaW1wb3J0IHtBamZGb3JtdWxhV2lkZ2V0Q29tcG9uZW50fSBmcm9tICcuL2Zvcm11bGEtd2lkZ2V0JztcbmltcG9ydCB7QWpmR3JhcGhXaWRnZXRDb21wb25lbnR9IGZyb20gJy4vZ3JhcGgtd2lkZ2V0JztcbmltcG9ydCB7QWpmSGVhdE1hcFdpZGdldENvbXBvbmVudH0gZnJvbSAnLi9oZWF0LW1hcC13aWRnZXQnO1xuaW1wb3J0IHtBamZJbWFnZUNvbnRhaW5lcldpZGdldENvbXBvbmVudH0gZnJvbSAnLi9pbWFnZS1jb250YWluZXItd2lkZ2V0JztcbmltcG9ydCB7QWpmSW1hZ2VXaWRnZXRDb21wb25lbnR9IGZyb20gJy4vaW1hZ2Utd2lkZ2V0JztcbmltcG9ydCB7QWpmTWFwV2lkZ2V0Q29tcG9uZW50fSBmcm9tICcuL21hcC13aWRnZXQnO1xuaW1wb3J0IHtBamZQYWdlQnJlYWtXaWRnZXRDb21wb25lbnR9IGZyb20gJy4vcGFnZS1icmVhay13aWRnZXQnO1xuaW1wb3J0IHtBamZUYWJsZVdpZGdldENvbXBvbmVudH0gZnJvbSAnLi90YWJsZS13aWRnZXQnO1xuaW1wb3J0IHtBamZUZXh0V2lkZ2V0Q29tcG9uZW50fSBmcm9tICcuL3RleHQtd2lkZ2V0JztcblxuY29uc3QgZGVmYXVsdFdpZGdldHNGYWN0b3J5ID0gKCk6IEFqZldpZGdldENvbXBvbmVudHNNYXAgPT4ge1xuICBjb25zdCBkZWZhdWx0V2lkZ2V0czogQWpmV2lkZ2V0Q29tcG9uZW50c01hcCA9IHt9O1xuICBkZWZhdWx0V2lkZ2V0c1t3dC5MYXlvdXRdID0ge2NvbXBvbmVudDogQWpmTGF5b3V0V2lkZ2V0Q29tcG9uZW50fTtcbiAgZGVmYXVsdFdpZGdldHNbd3QuUGFnZUJyZWFrXSA9IHtjb21wb25lbnQ6IEFqZlBhZ2VCcmVha1dpZGdldENvbXBvbmVudH07XG4gIGRlZmF1bHRXaWRnZXRzW3d0LkltYWdlXSA9IHtjb21wb25lbnQ6IEFqZkltYWdlV2lkZ2V0Q29tcG9uZW50fTtcbiAgZGVmYXVsdFdpZGdldHNbd3QuVGV4dF0gPSB7Y29tcG9uZW50OiBBamZUZXh0V2lkZ2V0Q29tcG9uZW50fTtcbiAgZGVmYXVsdFdpZGdldHNbd3QuQ2hhcnRdID0ge2NvbXBvbmVudDogQWpmQ2hhcnRXaWRnZXRDb21wb25lbnR9O1xuICBkZWZhdWx0V2lkZ2V0c1t3dC5UYWJsZV0gPSB7Y29tcG9uZW50OiBBamZUYWJsZVdpZGdldENvbXBvbmVudH07XG4gIGRlZmF1bHRXaWRnZXRzW3d0LkR5bmFtaWNUYWJsZV0gPSB7Y29tcG9uZW50OiBBamZUYWJsZVdpZGdldENvbXBvbmVudH07XG4gIGRlZmF1bHRXaWRnZXRzW3d0Lk1hcF0gPSB7Y29tcG9uZW50OiBBamZNYXBXaWRnZXRDb21wb25lbnR9O1xuICBkZWZhdWx0V2lkZ2V0c1t3dC5Db2x1bW5dID0ge2NvbXBvbmVudDogQWpmQ29sdW1uV2lkZ2V0Q29tcG9uZW50fTtcbiAgZGVmYXVsdFdpZGdldHNbd3QuRm9ybXVsYV0gPSB7Y29tcG9uZW50OiBBamZGb3JtdWxhV2lkZ2V0Q29tcG9uZW50fTtcbiAgZGVmYXVsdFdpZGdldHNbd3QuSW1hZ2VDb250YWluZXJdID0ge2NvbXBvbmVudDogQWpmSW1hZ2VDb250YWluZXJXaWRnZXRDb21wb25lbnR9O1xuICBkZWZhdWx0V2lkZ2V0c1t3dC5HcmFwaF0gPSB7Y29tcG9uZW50OiBBamZHcmFwaFdpZGdldENvbXBvbmVudH07XG4gIGRlZmF1bHRXaWRnZXRzW3d0LlBhZ2luYXRlZExpc3RdID0ge2NvbXBvbmVudDogQWpmUGFnaW5hdGVkTGlzdFdpZGdldENvbXBvbmVudH07XG4gIGRlZmF1bHRXaWRnZXRzW3d0LkRpYWxvZ10gPSB7Y29tcG9uZW50OiBBamZEaWFsb2dXaWRnZXRDb21wb25lbnR9O1xuICBkZWZhdWx0V2lkZ2V0c1t3dC5IZWF0TWFwXSA9IHtjb21wb25lbnQ6IEFqZkhlYXRNYXBXaWRnZXRDb21wb25lbnR9O1xuICByZXR1cm4gZGVmYXVsdFdpZGdldHM7XG59O1xuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBBamZXaWRnZXRTZXJ2aWNlIGV4dGVuZHMgQ29yZVNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihkZWZhdWx0V2lkZ2V0c0ZhY3RvcnkoKSk7XG4gIH1cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWpmLXdpZGdldCcsXG4gIHRlbXBsYXRlVXJsOiAnd2lkZ2V0Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnd2lkZ2V0LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEFqZlJlcG9ydFdpZGdldCBleHRlbmRzIENvcmVDb21wb25lbnQge1xuICByZWFkb25seSB3aWRnZXRzTWFwOiBBamZXaWRnZXRDb21wb25lbnRzTWFwO1xuXG4gIGNvbnN0cnVjdG9yKHJlbmRlcmVyOiBSZW5kZXJlcjIsIHdpZGdldFNlcnZpY2U6IEFqZldpZGdldFNlcnZpY2UpIHtcbiAgICBzdXBlcihyZW5kZXJlcik7XG4gICAgdGhpcy53aWRnZXRzTWFwID0gd2lkZ2V0U2VydmljZS5jb21wb25lbnRzTWFwO1xuICB9XG59XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJ2NvbHVtbi13aWRnZXQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydjb2x1bW4td2lkZ2V0LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEFqZkNvbHVtbldpZGdldENvbXBvbmVudCBleHRlbmRzIEFqZkJhc2VXaWRnZXRDb21wb25lbnQ8QWpmQ29sdW1uV2lkZ2V0SW5zdGFuY2U+IHtcbiAgY29uc3RydWN0b3IoY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgZWw6IEVsZW1lbnRSZWYpIHtcbiAgICBzdXBlcihjZHIsIGVsKTtcbiAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICdsYXlvdXQtd2lkZ2V0Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnbGF5b3V0LXdpZGdldC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBBamZMYXlvdXRXaWRnZXRDb21wb25lbnRcbiAgZXh0ZW5kcyBBamZCYXNlV2lkZ2V0Q29tcG9uZW50PEFqZkxheW91dFdpZGdldEluc3RhbmNlPlxuICBpbXBsZW1lbnRzIEFmdGVyQ29udGVudENoZWNrZWRcbntcbiAgcHJpdmF0ZSBfYWxsY29sdW1uc1JlbmRlcmVkJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IGFsbGNvbHVtbnNSZW5kZXJlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzXG4gICAgLl9hbGxjb2x1bW5zUmVuZGVyZWQkIGFzIE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgY29uc3RydWN0b3IoY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgZWw6IEVsZW1lbnRSZWYpIHtcbiAgICBzdXBlcihjZHIsIGVsKTtcbiAgfVxuICBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XG4gICAgdGhpcy5fYWxsY29sdW1uc1JlbmRlcmVkJC5uZXh0KHRydWUpO1xuICB9XG59XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJ2RpYWxvZy13aWRnZXQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydkaWFsb2ctd2lkZ2V0LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEFqZkRpYWxvZ1dpZGdldENvbXBvbmVudCBleHRlbmRzIEFqZkJhc2VXaWRnZXRDb21wb25lbnQ8QWpmRGlhbG9nV2lkZ2V0SW5zdGFuY2U+IHtcbiAgQFZpZXdDaGlsZCgnZGlhbG9nQ29udGVudCcsIHtyZWFkOiBUZW1wbGF0ZVJlZn0pIGRpYWxvZ0NvbnRlbnQhOiBUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD47XG5cbiAgY29uc3RydWN0b3IoY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgZWw6IEVsZW1lbnRSZWYsIHByaXZhdGUgX2RpYWxvZzogTWF0RGlhbG9nKSB7XG4gICAgc3VwZXIoY2RyLCBlbCk7XG4gIH1cblxuICBvcGVuRGlhbG9nKCk6IHZvaWQge1xuICAgIHRoaXMuX2RpYWxvZy5vcGVuKHRoaXMuZGlhbG9nQ29udGVudCk7XG4gIH1cbn1cblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAncGFnaW5hdGVkLWxpc3Qtd2lkZ2V0Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsncGFnaW5hdGVkLWxpc3Qtd2lkZ2V0LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEFqZlBhZ2luYXRlZExpc3RXaWRnZXRDb21wb25lbnRcbiAgZXh0ZW5kcyBBamZCYXNlV2lkZ2V0Q29tcG9uZW50PEFqZlBhZ2luYXRlZExpc3RXaWRnZXRJbnN0YW5jZT5cbiAgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdFxue1xuICBnZXQgY3VycmVudFBhZ2UoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudFBhZ2U7XG4gIH1cbiAgcHJpdmF0ZSBfY3VycmVudFBhZ2UgPSAwO1xuXG4gIGdldCBwYWdlcygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9wYWdlcztcbiAgfVxuICBwcml2YXRlIF9wYWdlcyA9IDA7XG5cbiAgZ2V0IGN1cnJlbnRDb250ZW50KCk6IEFqZldpZGdldEluc3RhbmNlW10ge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50Q29udGVudDtcbiAgfVxuICBwcml2YXRlIF9jdXJyZW50Q29udGVudDogQWpmV2lkZ2V0SW5zdGFuY2VbXSA9IFtdO1xuXG4gIGdldCBjYW5Hb0ZvcndhcmQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2NhbkdvRm9yd2FyZDtcbiAgfVxuICBwcml2YXRlIF9jYW5Hb0ZvcndhcmQgPSBmYWxzZTtcblxuICBnZXQgY2FuR29CYWNrd2FyZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fY2FuR29CYWNrd2FyZDtcbiAgfVxuICBwcml2YXRlIF9jYW5Hb0JhY2t3YXJkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgZWw6IEVsZW1lbnRSZWYpIHtcbiAgICBzdXBlcihjZHIsIGVsKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snaW5zdGFuY2UnXSkge1xuICAgICAgdGhpcy5fdXBkYXRlQ3VycmVudENvbnRlbnQoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl91cGRhdGVDdXJyZW50Q29udGVudCgpO1xuICB9XG5cbiAgZ29Ub1BhZ2UoZGlyZWN0aW9uOiAnbmV4dCcgfCAncHJldmlvdXMnKTogdm9pZCB7XG4gICAgY29uc3QgZGlmZiA9IGRpcmVjdGlvbiA9PT0gJ25leHQnID8gMSA6IC0xO1xuICAgIGNvbnN0IG5ld1BhZ2UgPSB0aGlzLl9jdXJyZW50UGFnZSArIGRpZmY7XG4gICAgaWYgKG5ld1BhZ2UgPD0gMCB8fCBuZXdQYWdlID4gdGhpcy5fcGFnZXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fY3VycmVudFBhZ2UgPSBuZXdQYWdlO1xuICAgIHRoaXMuX2NhbkdvRm9yd2FyZCA9IG5ld1BhZ2UgPCB0aGlzLl9wYWdlcztcbiAgICB0aGlzLl9jYW5Hb0JhY2t3YXJkID0gbmV3UGFnZSA+IDE7XG4gICAgdGhpcy5fZmlsbEN1cnJlbnRDb250ZW50KCk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVDdXJyZW50Q29udGVudCgpOiB2b2lkIHtcbiAgICB0aGlzLl9jYW5Hb0JhY2t3YXJkID0gZmFsc2U7XG4gICAgaWYgKHRoaXMuaW5zdGFuY2UgPT0gbnVsbCB8fCB0aGlzLmluc3RhbmNlLmNvbnRlbnQubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLl9jdXJyZW50UGFnZSA9IDA7XG4gICAgICB0aGlzLl9wYWdlcyA9IDA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2N1cnJlbnRQYWdlID0gMTtcbiAgICAgIGNvbnN0IHtjb250ZW50fSA9IHRoaXMuaW5zdGFuY2U7XG4gICAgICBjb25zdCB7cGFnZVNpemV9ID0gdGhpcy5pbnN0YW5jZS53aWRnZXQ7XG4gICAgICB0aGlzLl9wYWdlcyA9IE1hdGguY2VpbChjb250ZW50Lmxlbmd0aCAvIHBhZ2VTaXplKTtcbiAgICAgIHRoaXMuX2NhbkdvRm9yd2FyZCA9IHRoaXMuX3BhZ2VzID4gMTtcbiAgICB9XG4gICAgdGhpcy5fZmlsbEN1cnJlbnRDb250ZW50KCk7XG4gIH1cblxuICBwcml2YXRlIF9maWxsQ3VycmVudENvbnRlbnQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaW5zdGFuY2UgPT0gbnVsbCB8fCB0aGlzLmluc3RhbmNlLmNvbnRlbnQubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLl9jdXJyZW50Q29udGVudCA9IFtdO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB7Y29udGVudH0gPSB0aGlzLmluc3RhbmNlO1xuICAgIGNvbnN0IHtwYWdlU2l6ZX0gPSB0aGlzLmluc3RhbmNlLndpZGdldDtcbiAgICBjb25zdCBzdGFydCA9ICh0aGlzLl9jdXJyZW50UGFnZSAtIDEpICogcGFnZVNpemU7XG4gICAgdGhpcy5fY3VycmVudENvbnRlbnQgPSBjb250ZW50LnNsaWNlKHN0YXJ0LCBzdGFydCArIHBhZ2VTaXplKTtcbiAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cbn1cbiIsIjxhamYtZmlsdGVyLXdpZGdldFxuICAqbmdJZj1cImluc3RhbmNlICYmIGluc3RhbmNlLmZpbHRlclwiXG4gIFtpbnN0YW5jZV09XCJpbnN0YW5jZVwiXG4gIChmaWx0ZXJlZEluc3RhbmNlKT1cImluc3RhbmNlID0gJGV2ZW50XCJcbj5cbjwvYWpmLWZpbHRlci13aWRnZXQ+XG48bmctdGVtcGxhdGUgYWpmLXdpZGdldC1ob3N0PjwvbmctdGVtcGxhdGU+XG4iLCI8ZGl2ICpuZ0lmPVwiaW5zdGFuY2VcIiBjbGFzcz1cImFqZi1jb2x1bW4tY29udGFpbmVyXCI+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHcgb2YgaW5zdGFuY2UuY29udGVudFwiPlxuICAgIDxhamYtd2lkZ2V0IFtpbnN0YW5jZV09XCJ3XCI+XG4gICAgPC9hamYtd2lkZ2V0PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIiwiPGRpdiAqbmdJZj1cImluc3RhbmNlXCIgY2xhc3M9XCJhamYtY29sdW1uc1wiPlxuICA8ZGl2XG4gICAgICAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGluc3RhbmNlLndpZGdldC5jb2x1bW5zOyBsZXQgaWR4ID0gaW5kZXhcIlxuICAgICAgW25nU3R5bGVdPVwieydmbGV4LWdyb3cnOiBjb2x1bW4gPiAtMSA/IDEgOiBudWxsLCAnZmxleC1iYXNpcycgOiBjb2x1bW4gPiAtMSA/IChjb2x1bW4gKiAxMDApICsgJyUnIDogbnVsbH1cIlxuICAgICAgY2xhc3M9XCJhamYtY29sdW1uXCJcbiAgPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWxsY29sdW1uc1JlbmRlcmVkJHxhc3luY1wiPlxuICAgIDxhamYtd2lkZ2V0ICpuZ0lmPVwiKGluc3RhbmNlfGFqZkdldENvbHVtbkNvbnRlbnQ6aWR4KSBhcyBjY1wiIFtpbnN0YW5jZV09XCJjYyFcIj5cbiAgICA8L2FqZi13aWRnZXQ+XG4gIDwvbmctY29udGFpbmVyPlxuIDwvZGl2PlxuPC9kaXY+XG4iLCI8YSAqbmdJZj1cImluc3RhbmNlXCIgY2xhc3M9XCJhamYtZGlhbG9nLXRvZ2dsZVwiIChjbGljayk9XCJvcGVuRGlhbG9nKClcIj5cbiAgPGFqZi13aWRnZXQgW2luc3RhbmNlXT1cImluc3RhbmNlLnRvZ2dsZVwiPjwvYWpmLXdpZGdldD5cbjwvYT5cbjxuZy10ZW1wbGF0ZSAjZGlhbG9nQ29udGVudD5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImluc3RhbmNlXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpbnN0YW5jZS5jb250ZW50XCI+XG4gICAgICA8YWpmLXdpZGdldCBbaW5zdGFuY2VdPVwiaXRlbVwiPjwvYWpmLXdpZGdldD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuIiwiPGRpdiBjbGFzcz1cImFqZi1wYWdpbmF0ZWQtbGlzdFwiICpuZ0lmPVwiaW5zdGFuY2UgJiYgcGFnZXMgPiAwXCI+XG4gIDxkaXYgY2xhc3M9XCJhamYtcGFnaW5hdGVkLWxpc3QtdGl0bGUtY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImFqZi1wYWdpbmF0ZWQtbGlzdC10aXRsZVwiPnt7IGluc3RhbmNlLndpZGdldC50aXRsZSB9fTwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJhamYtc3BhY2VyXCI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImFqZi1wYWdpbmF0ZWQtbGlzdC1wYWdpbmF0b3JcIj5cbiAgICAgIDxhIChjbGljayk9XCJnb1RvUGFnZSgncHJldmlvdXMnKVwiIGNsYXNzPVwiYWpmLXBhZ2luYXRlZC1saXN0LWJ0biBhamYtcGFnaW5hdGVkLWxpc3QtYmFjay1idG5cIlxuICAgICAgICAgIFtjbGFzcy5hamYtcGFnaW5hdGVkLWxpc3QtYnRuLWRpc2FibGVkXT1cImNhbkdvQmFja3dhcmQgPT09IGZhbHNlXCI+PC9hPlxuICAgICAgPGRpdiBjbGFzcz1cImFqZi1wYWdpbmF0ZWQtbGlzdC1wYWdpbmF0b3ItcGFnZVwiPnt7IGN1cnJlbnRQYWdlIH19PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiYWpmLXBhZ2luYXRlZC1saXN0LXBhZ2luYXRvci1zZXBhcmF0b3JcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJhamYtcGFnaW5hdGVkLWxpc3QtcGFnaW5hdG9yLXBhZ2VzXCI+e3sgcGFnZXMgfX08L2Rpdj5cbiAgICAgIDxhIChjbGljayk9XCJnb1RvUGFnZSgnbmV4dCcpXCIgY2xhc3M9XCJhamYtcGFnaW5hdGVkLWxpc3QtYnRuIGFqZi1wYWdpbmF0ZWQtbGlzdC1mb3J3YXJkLWJ0blwiXG4gICAgICAgIFtjbGFzcy5hamYtcGFnaW5hdGVkLWxpc3QtYnRuLWRpc2FibGVkXT1cImNhbkdvRm9yd2FyZCA9PT0gZmFsc2VcIj48L2E+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiYWpmLXBhZ2luYXRlZC1saXN0LWl0ZW1cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjdXJyZW50Q29udGVudFwiPlxuICAgIDxhamYtd2lkZ2V0IFtpbnN0YW5jZV09XCJpdGVtXCI+PC9hamYtd2lkZ2V0PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -6,8 +6,8 @@ import * as i1 from '@angular/material/button';
6
6
  import { MatButtonModule } from '@angular/material/button';
7
7
  import * as i2 from '@angular/material/icon';
8
8
  import { MatIconModule } from '@angular/material/icon';
9
- import * as i3 from '@angular/material/button-toggle';
10
- import { MatButtonToggleModule } from '@angular/material/button-toggle';
9
+ import * as i3 from '@angular/material/tabs';
10
+ import { MatTabsModule } from '@angular/material/tabs';
11
11
  import * as i4 from '@angular/common';
12
12
  import { CommonModule } from '@angular/common';
13
13
  import * as i5 from '@ajf/core/common';
@@ -50,10 +50,10 @@ class AjfBarcodeComponent extends AjfBarcode {
50
50
  }
51
51
  }
52
52
  AjfBarcodeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfBarcodeComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
53
- AjfBarcodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: AjfBarcodeComponent, selector: "ajf-barcode", providers: [BARCODE_CONTROL_VALUE_ACCESSOR], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"value; else barcode\">\n <div class=\"ajf-code-container\">\n <span>{{ value }}</span>\n <button mat-raised-button (click)=\"reset()\">\n <mat-icon style=\"transform: rotate(90deg)\">format_align_justify</mat-icon>\n </button>\n </div>\n</ng-container>\n<ng-template #barcode>\n <mat-button-toggle-group [value]=\"toggle\">\n <mat-button-toggle (click)=\"toggle = 'drop'; fileInput.click()\">\n <span>{{'Upload image'|transloco}}</span>\n <mat-icon>add_circle_outline</mat-icon>\n <input\n #fileInput\n type=\"file\"\n (change)=\"onSelectFile($event)\"\n multiple\n style=\"display: none\"\n />\n </mat-button-toggle>\n <mat-button-toggle (click)=\"toggle = 'drop'\">\n <span>{{'Drop image'|transloco}}</span>\n </mat-button-toggle>\n <mat-button-toggle (click)=\"toggle = 'camera'\">\n <span>{{'Camera'|transloco}}</span>\n </mat-button-toggle>\n </mat-button-toggle-group>\n <ng-container [ngSwitch]=\"toggle\">\n <ng-container *ngSwitchCase=\"'drop'\">\n <div class=\"ajf-drop-container\">\n <div class=\"ajf-dropzone\" ajfDnd (file)=\"onSelectDrop($event)\">\n <div class=\"ajf-text-wrapper\">\n <div class=\"ajf-centered\">\n {{'Drop your image here!'|transloco}}\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'camera'\">\n <div\n ajfVideoDirective\n [source]=\"videoSource\"\n class=\"left\"\n (isInit)=\"takeSnapshot()\"\n ></div>\n </ng-container>\n </ng-container>\n</ng-template>\n", styles: ["ajf-barcode .ajf-code-container{display:inline-flex;flex-direction:row;flex-wrap:wrap;justify-content:center;align-content:stretch;align-items:center}ajf-barcode .ajf-code-container button{margin-left:10px}ajf-barcode .ajf-drop-container{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;align-content:stretch;align-items:stretch}ajf-barcode .ajf-drop-container .ajf-dropzone{order:0;flex:1 1 auto;align-self:auto;min-height:480px;display:table;background-color:#eee;border:dotted 1px #aaa}ajf-barcode .ajf-drop-container .ajf-dropzone .ajf-text-wrapper{display:table-cell;vertical-align:middle}ajf-barcode .ajf-drop-container .ajf-dropzone .ajf-centered{font-family:sans-serif;font-size:1.3em;font-weight:700;text-align:center}\n"], components: [{ type: i1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3.MatButtonToggle, selector: "mat-button-toggle", inputs: ["disableRipple", "aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i5.AjfDndDirective, selector: "[ajfDnd]", outputs: ["file"] }, { type: i5.AjfVideoDirective, selector: "[ajfVideoDirective]", inputs: ["source"], outputs: ["isInit"] }], pipes: { "transloco": i6.TranslocoPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
53
+ AjfBarcodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: AjfBarcodeComponent, selector: "ajf-barcode", providers: [BARCODE_CONTROL_VALUE_ACCESSOR], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"value; else barcode\">\n <div class=\"ajf-code-container\">\n <span>{{ value }}</span>\n <button mat-raised-button (click)=\"reset()\">\n <mat-icon style=\"transform: rotate(90deg)\">format_align_justify</mat-icon>\n </button>\n </div>\n</ng-container>\n<ng-template #barcode>\n <mat-tab-group (selectedIndexChange)=\"onTabChange($event)\">\n <mat-tab [label]=\"'Image'| transloco\">\n <div class=\"ajf-drop-container\">\n <div class=\"ajf-dropzone\" ajfDnd (file)=\"onSelectDrop($event)\">\n <div class=\"ajf-text-wrapper\">\n <div class=\"ajf-centered\">\n <a mat-button (click)=\"fileInput.click()\">{{'Drop your image here or click to select'|transloco}}</a>\n </div>\n </div>\n </div>\n <div #barcodeImagePreview class=\"ajf-barcode-image-preview\"></div>\n </div>\n <input\n #fileInput\n type=\"file\"\n (change)=\"onSelectFile($event)\"\n multiple\n style=\"display: none\"\n />\n </mat-tab>\n <mat-tab [label]=\"'Camera'|transloco\">\n <div class=\"ajf-barcode-video\">\n <ng-container *ngIf=\"supportsVideoStream; else noVideo\">\n <div *ngIf=\"showSwitchButton\" class=\"ajf-barcode-switch-camera\">\n <button mat-icon-button (click)=\"switchCamera()\"><mat-icon>switch_camera</mat-icon></button>\n </div>\n <div #barcodeVideoPreview class=\"ajf-video-preview ajf-video-preview-hidden\">\n <div *ngIf=\"value && value.length > 0\">{{ value }}</div>\n </div>\n <video #barcodeVideo autoplay playsinline muted></video>\n </ng-container>\n <ng-template #noVideo>\n\n </ng-template>\n </div>\n </mat-tab>\n </mat-tab-group>\n</ng-template>\n", styles: ["ajf-barcode{display:block}ajf-barcode .ajf-code-container{display:inline-flex;flex-direction:row;flex-wrap:wrap;justify-content:center;align-content:stretch;align-items:center}ajf-barcode .ajf-code-container button{margin-left:10px}ajf-barcode .ajf-drop-container{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;align-content:stretch;align-items:stretch;position:relative}ajf-barcode .ajf-drop-container .ajf-barcode-image-preview{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;background-size:contain;background-repeat:no-repeat;background-position:center}ajf-barcode .ajf-drop-container .ajf-dropzone{z-index:2;order:0;flex:1 1 auto;align-self:auto;height:50vh;display:table;background-color:#eeeeee80;border:dotted 1px #aaa;overflow:hidden}ajf-barcode .ajf-drop-container .ajf-dropzone .ajf-text-wrapper{display:table-cell;vertical-align:middle}ajf-barcode .ajf-drop-container .ajf-dropzone .ajf-centered{font-family:sans-serif;font-size:1.3em;font-weight:700;text-align:center}ajf-barcode .ajf-barcode-video{height:50vh;position:relative}ajf-barcode .ajf-barcode-video>video{width:100%;height:100%}ajf-barcode .ajf-barcode-video>.ajf-video-preview{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:5;border:3px solid #000000}ajf-barcode .ajf-barcode-video>.ajf-video-preview.ajf-video-preview-hidden{display:none;position:relative}ajf-barcode .ajf-barcode-video>.ajf-video-preview.ajf-video-preview-hidden>div{position:absolute;right:0;left:0;bottom:-1em;height:2em;box-sizing:border-box;padding:.5em;background-color:#fff;border-radius:.5em}ajf-barcode .ajf-barcode-video>.ajf-barcode-switch-camera{position:absolute;top:1em;right:1em;z-index:10;padding:.5em;border-radius:.5em;background-color:#fff}\n"], components: [{ type: i1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple"], exportAs: ["matTabGroup"] }, { type: i3.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { type: i1.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab], a[mat-mini-fab], a[mat-stroked-button], a[mat-flat-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.AjfDndDirective, selector: "[ajfDnd]", outputs: ["file"] }], pipes: { "transloco": i6.TranslocoPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
54
54
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfBarcodeComponent, decorators: [{
55
55
  type: Component,
56
- args: [{ selector: 'ajf-barcode', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [BARCODE_CONTROL_VALUE_ACCESSOR], template: "<ng-container *ngIf=\"value; else barcode\">\n <div class=\"ajf-code-container\">\n <span>{{ value }}</span>\n <button mat-raised-button (click)=\"reset()\">\n <mat-icon style=\"transform: rotate(90deg)\">format_align_justify</mat-icon>\n </button>\n </div>\n</ng-container>\n<ng-template #barcode>\n <mat-button-toggle-group [value]=\"toggle\">\n <mat-button-toggle (click)=\"toggle = 'drop'; fileInput.click()\">\n <span>{{'Upload image'|transloco}}</span>\n <mat-icon>add_circle_outline</mat-icon>\n <input\n #fileInput\n type=\"file\"\n (change)=\"onSelectFile($event)\"\n multiple\n style=\"display: none\"\n />\n </mat-button-toggle>\n <mat-button-toggle (click)=\"toggle = 'drop'\">\n <span>{{'Drop image'|transloco}}</span>\n </mat-button-toggle>\n <mat-button-toggle (click)=\"toggle = 'camera'\">\n <span>{{'Camera'|transloco}}</span>\n </mat-button-toggle>\n </mat-button-toggle-group>\n <ng-container [ngSwitch]=\"toggle\">\n <ng-container *ngSwitchCase=\"'drop'\">\n <div class=\"ajf-drop-container\">\n <div class=\"ajf-dropzone\" ajfDnd (file)=\"onSelectDrop($event)\">\n <div class=\"ajf-text-wrapper\">\n <div class=\"ajf-centered\">\n {{'Drop your image here!'|transloco}}\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'camera'\">\n <div\n ajfVideoDirective\n [source]=\"videoSource\"\n class=\"left\"\n (isInit)=\"takeSnapshot()\"\n ></div>\n </ng-container>\n </ng-container>\n</ng-template>\n", styles: ["ajf-barcode .ajf-code-container{display:inline-flex;flex-direction:row;flex-wrap:wrap;justify-content:center;align-content:stretch;align-items:center}ajf-barcode .ajf-code-container button{margin-left:10px}ajf-barcode .ajf-drop-container{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;align-content:stretch;align-items:stretch}ajf-barcode .ajf-drop-container .ajf-dropzone{order:0;flex:1 1 auto;align-self:auto;min-height:480px;display:table;background-color:#eee;border:dotted 1px #aaa}ajf-barcode .ajf-drop-container .ajf-dropzone .ajf-text-wrapper{display:table-cell;vertical-align:middle}ajf-barcode .ajf-drop-container .ajf-dropzone .ajf-centered{font-family:sans-serif;font-size:1.3em;font-weight:700;text-align:center}\n"] }]
56
+ args: [{ selector: 'ajf-barcode', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [BARCODE_CONTROL_VALUE_ACCESSOR], template: "<ng-container *ngIf=\"value; else barcode\">\n <div class=\"ajf-code-container\">\n <span>{{ value }}</span>\n <button mat-raised-button (click)=\"reset()\">\n <mat-icon style=\"transform: rotate(90deg)\">format_align_justify</mat-icon>\n </button>\n </div>\n</ng-container>\n<ng-template #barcode>\n <mat-tab-group (selectedIndexChange)=\"onTabChange($event)\">\n <mat-tab [label]=\"'Image'| transloco\">\n <div class=\"ajf-drop-container\">\n <div class=\"ajf-dropzone\" ajfDnd (file)=\"onSelectDrop($event)\">\n <div class=\"ajf-text-wrapper\">\n <div class=\"ajf-centered\">\n <a mat-button (click)=\"fileInput.click()\">{{'Drop your image here or click to select'|transloco}}</a>\n </div>\n </div>\n </div>\n <div #barcodeImagePreview class=\"ajf-barcode-image-preview\"></div>\n </div>\n <input\n #fileInput\n type=\"file\"\n (change)=\"onSelectFile($event)\"\n multiple\n style=\"display: none\"\n />\n </mat-tab>\n <mat-tab [label]=\"'Camera'|transloco\">\n <div class=\"ajf-barcode-video\">\n <ng-container *ngIf=\"supportsVideoStream; else noVideo\">\n <div *ngIf=\"showSwitchButton\" class=\"ajf-barcode-switch-camera\">\n <button mat-icon-button (click)=\"switchCamera()\"><mat-icon>switch_camera</mat-icon></button>\n </div>\n <div #barcodeVideoPreview class=\"ajf-video-preview ajf-video-preview-hidden\">\n <div *ngIf=\"value && value.length > 0\">{{ value }}</div>\n </div>\n <video #barcodeVideo autoplay playsinline muted></video>\n </ng-container>\n <ng-template #noVideo>\n\n </ng-template>\n </div>\n </mat-tab>\n </mat-tab-group>\n</ng-template>\n", styles: ["ajf-barcode{display:block}ajf-barcode .ajf-code-container{display:inline-flex;flex-direction:row;flex-wrap:wrap;justify-content:center;align-content:stretch;align-items:center}ajf-barcode .ajf-code-container button{margin-left:10px}ajf-barcode .ajf-drop-container{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;align-content:stretch;align-items:stretch;position:relative}ajf-barcode .ajf-drop-container .ajf-barcode-image-preview{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;background-size:contain;background-repeat:no-repeat;background-position:center}ajf-barcode .ajf-drop-container .ajf-dropzone{z-index:2;order:0;flex:1 1 auto;align-self:auto;height:50vh;display:table;background-color:#eeeeee80;border:dotted 1px #aaa;overflow:hidden}ajf-barcode .ajf-drop-container .ajf-dropzone .ajf-text-wrapper{display:table-cell;vertical-align:middle}ajf-barcode .ajf-drop-container .ajf-dropzone .ajf-centered{font-family:sans-serif;font-size:1.3em;font-weight:700;text-align:center}ajf-barcode .ajf-barcode-video{height:50vh;position:relative}ajf-barcode .ajf-barcode-video>video{width:100%;height:100%}ajf-barcode .ajf-barcode-video>.ajf-video-preview{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:5;border:3px solid #000000}ajf-barcode .ajf-barcode-video>.ajf-video-preview.ajf-video-preview-hidden{display:none;position:relative}ajf-barcode .ajf-barcode-video>.ajf-video-preview.ajf-video-preview-hidden>div{position:absolute;right:0;left:0;bottom:-1em;height:2em;box-sizing:border-box;padding:.5em;background-color:#fff;border-radius:.5em}ajf-barcode .ajf-barcode-video>.ajf-barcode-switch-camera{position:absolute;top:1em;right:1em;z-index:10;padding:.5em;border-radius:.5em;background-color:#fff}\n"] }]
57
57
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }]; } });
58
58
 
59
59
  /**
@@ -81,29 +81,29 @@ class AjfBarcodeModule {
81
81
  }
82
82
  AjfBarcodeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfBarcodeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
83
83
  AjfBarcodeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfBarcodeModule, declarations: [AjfBarcodeComponent], imports: [AjfCommonModule,
84
+ AjfTranslocoModule,
84
85
  CommonModule,
85
86
  MatButtonModule,
86
- MatButtonToggleModule,
87
87
  MatIconModule,
88
- AjfTranslocoModule], exports: [AjfBarcodeComponent] });
88
+ MatTabsModule], exports: [AjfBarcodeComponent] });
89
89
  AjfBarcodeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfBarcodeModule, imports: [[
90
90
  AjfCommonModule,
91
+ AjfTranslocoModule,
91
92
  CommonModule,
92
93
  MatButtonModule,
93
- MatButtonToggleModule,
94
94
  MatIconModule,
95
- AjfTranslocoModule,
95
+ MatTabsModule,
96
96
  ]] });
97
97
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfBarcodeModule, decorators: [{
98
98
  type: NgModule,
99
99
  args: [{
100
100
  imports: [
101
101
  AjfCommonModule,
102
+ AjfTranslocoModule,
102
103
  CommonModule,
103
104
  MatButtonModule,
104
- MatButtonToggleModule,
105
105
  MatIconModule,
106
- AjfTranslocoModule,
106
+ MatTabsModule,
107
107
  ],
108
108
  declarations: [AjfBarcodeComponent],
109
109
  exports: [AjfBarcodeComponent],
@@ -1 +1 @@
1
- {"version":3,"file":"ajf-material-barcode.mjs","sources":["../../../projects/material/barcode/src/barcode.ts","../../../projects/material/barcode/src/barcode.html","../../../projects/material/barcode/src/barcode-module.ts","../../../projects/material/barcode/src/public_api.ts","../../../projects/material/barcode/src/ajf-material-barcode.ts"],"sourcesContent":["/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {AjfBarcode} from '@ajf/core/barcode';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n forwardRef,\n Renderer2,\n ViewEncapsulation,\n} from '@angular/core';\nimport {NG_VALUE_ACCESSOR} from '@angular/forms';\n\nexport const BARCODE_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AjfBarcodeComponent),\n multi: true,\n};\n\n/**\n * Ajf barcode component.\n */\n@Component({\n selector: 'ajf-barcode',\n templateUrl: 'barcode.html',\n styleUrls: ['barcode.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [BARCODE_CONTROL_VALUE_ACCESSOR],\n})\nexport class AjfBarcodeComponent extends AjfBarcode {\n constructor(cdr: ChangeDetectorRef, renderer: Renderer2) {\n super(cdr, renderer);\n }\n}\n","<ng-container *ngIf=\"value; else barcode\">\n <div class=\"ajf-code-container\">\n <span>{{ value }}</span>\n <button mat-raised-button (click)=\"reset()\">\n <mat-icon style=\"transform: rotate(90deg)\">format_align_justify</mat-icon>\n </button>\n </div>\n</ng-container>\n<ng-template #barcode>\n <mat-button-toggle-group [value]=\"toggle\">\n <mat-button-toggle (click)=\"toggle = 'drop'; fileInput.click()\">\n <span>{{'Upload image'|transloco}}</span>\n <mat-icon>add_circle_outline</mat-icon>\n <input\n #fileInput\n type=\"file\"\n (change)=\"onSelectFile($event)\"\n multiple\n style=\"display: none\"\n />\n </mat-button-toggle>\n <mat-button-toggle (click)=\"toggle = 'drop'\">\n <span>{{'Drop image'|transloco}}</span>\n </mat-button-toggle>\n <mat-button-toggle (click)=\"toggle = 'camera'\">\n <span>{{'Camera'|transloco}}</span>\n </mat-button-toggle>\n </mat-button-toggle-group>\n <ng-container [ngSwitch]=\"toggle\">\n <ng-container *ngSwitchCase=\"'drop'\">\n <div class=\"ajf-drop-container\">\n <div class=\"ajf-dropzone\" ajfDnd (file)=\"onSelectDrop($event)\">\n <div class=\"ajf-text-wrapper\">\n <div class=\"ajf-centered\">\n {{'Drop your image here!'|transloco}}\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'camera'\">\n <div\n ajfVideoDirective\n [source]=\"videoSource\"\n class=\"left\"\n (isInit)=\"takeSnapshot()\"\n ></div>\n </ng-container>\n </ng-container>\n</ng-template>\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {AjfCommonModule} from '@ajf/core/common';\nimport {AjfTranslocoModule} from '@ajf/core/transloco';\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {MatButtonModule} from '@angular/material/button';\nimport {MatButtonToggleModule} from '@angular/material/button-toggle';\nimport {MatIconModule} from '@angular/material/icon';\n\nimport {AjfBarcodeComponent} from './barcode';\n\n@NgModule({\n imports: [\n AjfCommonModule,\n CommonModule,\n MatButtonModule,\n MatButtonToggleModule,\n MatIconModule,\n AjfTranslocoModule,\n ],\n declarations: [AjfBarcodeComponent],\n exports: [AjfBarcodeComponent],\n})\nexport class AjfBarcodeModule {}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nexport * from './barcode';\nexport * from './barcode-module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ajf-material-barcode.mjs","sources":["../../../projects/material/barcode/src/barcode.ts","../../../projects/material/barcode/src/barcode.html","../../../projects/material/barcode/src/barcode-module.ts","../../../projects/material/barcode/src/public_api.ts","../../../projects/material/barcode/src/ajf-material-barcode.ts"],"sourcesContent":["/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {AjfBarcode} from '@ajf/core/barcode';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n forwardRef,\n Renderer2,\n ViewEncapsulation,\n} from '@angular/core';\nimport {NG_VALUE_ACCESSOR} from '@angular/forms';\n\nexport const BARCODE_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AjfBarcodeComponent),\n multi: true,\n};\n\n/**\n * Ajf barcode component.\n */\n@Component({\n selector: 'ajf-barcode',\n templateUrl: 'barcode.html',\n styleUrls: ['barcode.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [BARCODE_CONTROL_VALUE_ACCESSOR],\n})\nexport class AjfBarcodeComponent extends AjfBarcode {\n constructor(cdr: ChangeDetectorRef, renderer: Renderer2) {\n super(cdr, renderer);\n }\n}\n","<ng-container *ngIf=\"value; else barcode\">\n <div class=\"ajf-code-container\">\n <span>{{ value }}</span>\n <button mat-raised-button (click)=\"reset()\">\n <mat-icon style=\"transform: rotate(90deg)\">format_align_justify</mat-icon>\n </button>\n </div>\n</ng-container>\n<ng-template #barcode>\n <mat-tab-group (selectedIndexChange)=\"onTabChange($event)\">\n <mat-tab [label]=\"'Image'| transloco\">\n <div class=\"ajf-drop-container\">\n <div class=\"ajf-dropzone\" ajfDnd (file)=\"onSelectDrop($event)\">\n <div class=\"ajf-text-wrapper\">\n <div class=\"ajf-centered\">\n <a mat-button (click)=\"fileInput.click()\">{{'Drop your image here or click to select'|transloco}}</a>\n </div>\n </div>\n </div>\n <div #barcodeImagePreview class=\"ajf-barcode-image-preview\"></div>\n </div>\n <input\n #fileInput\n type=\"file\"\n (change)=\"onSelectFile($event)\"\n multiple\n style=\"display: none\"\n />\n </mat-tab>\n <mat-tab [label]=\"'Camera'|transloco\">\n <div class=\"ajf-barcode-video\">\n <ng-container *ngIf=\"supportsVideoStream; else noVideo\">\n <div *ngIf=\"showSwitchButton\" class=\"ajf-barcode-switch-camera\">\n <button mat-icon-button (click)=\"switchCamera()\"><mat-icon>switch_camera</mat-icon></button>\n </div>\n <div #barcodeVideoPreview class=\"ajf-video-preview ajf-video-preview-hidden\">\n <div *ngIf=\"value && value.length > 0\">{{ value }}</div>\n </div>\n <video #barcodeVideo autoplay playsinline muted></video>\n </ng-container>\n <ng-template #noVideo>\n\n </ng-template>\n </div>\n </mat-tab>\n </mat-tab-group>\n</ng-template>\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nimport {AjfCommonModule} from '@ajf/core/common';\nimport {AjfTranslocoModule} from '@ajf/core/transloco';\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {MatButtonModule} from '@angular/material/button';\nimport {MatIconModule} from '@angular/material/icon';\nimport {MatTabsModule} from '@angular/material/tabs';\n\nimport {AjfBarcodeComponent} from './barcode';\n\n@NgModule({\n imports: [\n AjfCommonModule,\n AjfTranslocoModule,\n CommonModule,\n MatButtonModule,\n MatIconModule,\n MatTabsModule,\n ],\n declarations: [AjfBarcodeComponent],\n exports: [AjfBarcodeComponent],\n})\nexport class AjfBarcodeModule {}\n","/**\n * @license\n * Copyright (C) Gnucoop soc. coop.\n *\n * This file is part of the Advanced JSON forms (ajf).\n *\n * Advanced JSON forms (ajf) is free software: you can redistribute it and/or\n * modify it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * Advanced JSON forms (ajf) is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero\n * General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with Advanced JSON forms (ajf).\n * If not, see http://www.gnu.org/licenses/.\n *\n */\n\nexport * from './barcode';\nexport * from './barcode-module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}