@ajf/material 13.0.0-next.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.
- package/LICENSE +661 -0
- package/README.md +6 -0
- package/barcode/_barcode.scss +0 -0
- package/barcode/barcode-module.d.ts +23 -0
- package/barcode/barcode.d.ts +30 -0
- package/barcode/index.d.ts +4 -0
- package/barcode/index.metadata.json +1 -0
- package/barcode/package.json +9 -0
- package/barcode/public-api.d.ts +23 -0
- package/bundles/material-barcode.umd.js +433 -0
- package/bundles/material-barcode.umd.js.map +1 -0
- package/bundles/material-calendar.umd.js +435 -0
- package/bundles/material-calendar.umd.js.map +1 -0
- package/bundles/material-checkbox-group.umd.js +432 -0
- package/bundles/material-checkbox-group.umd.js.map +1 -0
- package/bundles/material-form-builder.umd.js +3558 -0
- package/bundles/material-form-builder.umd.js.map +1 -0
- package/bundles/material-forms.umd.js +968 -0
- package/bundles/material-forms.umd.js.map +1 -0
- package/bundles/material-image.umd.js +420 -0
- package/bundles/material-image.umd.js.map +1 -0
- package/bundles/material-monaco-editor.umd.js +755 -0
- package/bundles/material-monaco-editor.umd.js.map +1 -0
- package/bundles/material-node-icon.umd.js +415 -0
- package/bundles/material-node-icon.umd.js.map +1 -0
- package/bundles/material-page-slider.umd.js +424 -0
- package/bundles/material-page-slider.umd.js.map +1 -0
- package/bundles/material-report-builder.umd.js +5814 -0
- package/bundles/material-report-builder.umd.js.map +1 -0
- package/bundles/material-reports.umd.js +731 -0
- package/bundles/material-reports.umd.js.map +1 -0
- package/bundles/material-time.umd.js +424 -0
- package/bundles/material-time.umd.js.map +1 -0
- package/bundles/material.umd.js +40 -0
- package/bundles/material.umd.js.map +1 -0
- package/calendar/_calendar.scss +0 -0
- package/calendar/calendar-module.d.ts +23 -0
- package/calendar/calendar.d.ts +30 -0
- package/calendar/index.d.ts +4 -0
- package/calendar/index.metadata.json +1 -0
- package/calendar/package.json +9 -0
- package/calendar/public-api.d.ts +23 -0
- package/checkbox-group/_checkbox-group.scss +0 -0
- package/checkbox-group/checkbox-group-item.d.ts +25 -0
- package/checkbox-group/checkbox-group-module.d.ts +23 -0
- package/checkbox-group/index.d.ts +4 -0
- package/checkbox-group/index.metadata.json +1 -0
- package/checkbox-group/package.json +9 -0
- package/checkbox-group/public-api.d.ts +23 -0
- package/esm2015/barcode/barcode-module.js +50 -0
- package/esm2015/barcode/barcode.externs.js +6 -0
- package/esm2015/barcode/barcode.js +52 -0
- package/esm2015/barcode/index.js +5 -0
- package/esm2015/barcode/public-api.js +24 -0
- package/esm2015/calendar/calendar-module.js +48 -0
- package/esm2015/calendar/calendar.externs.js +6 -0
- package/esm2015/calendar/calendar.js +55 -0
- package/esm2015/calendar/index.js +5 -0
- package/esm2015/calendar/public-api.js +24 -0
- package/esm2015/checkbox-group/checkbox-group-item.js +51 -0
- package/esm2015/checkbox-group/checkbox-group-module.js +47 -0
- package/esm2015/checkbox-group/checkbox-group.externs.js +6 -0
- package/esm2015/checkbox-group/index.js +5 -0
- package/esm2015/checkbox-group/public-api.js +24 -0
- package/esm2015/form-builder/branch-line.js +73 -0
- package/esm2015/form-builder/choices-origin-data-source.js +38 -0
- package/esm2015/form-builder/choices-origin-editor-dialog.js +57 -0
- package/esm2015/form-builder/choices-origin-editor.js +78 -0
- package/esm2015/form-builder/condition-editor-dialog.js +59 -0
- package/esm2015/form-builder/condition-editor.js +143 -0
- package/esm2015/form-builder/form-builder-module.js +96 -0
- package/esm2015/form-builder/form-builder-service.js +764 -0
- package/esm2015/form-builder/form-builder-utils.js +63 -0
- package/esm2015/form-builder/form-builder.externs.js +6 -0
- package/esm2015/form-builder/form-builder.js +187 -0
- package/esm2015/form-builder/index.js +16 -0
- package/esm2015/form-builder/node-entry.js +245 -0
- package/esm2015/form-builder/node-properties.js +968 -0
- package/esm2015/form-builder/node-type-entry.js +50 -0
- package/esm2015/form-builder/operations.js +23 -0
- package/esm2015/form-builder/public-api.js +26 -0
- package/esm2015/form-builder/string-identifier-dialog.js +94 -0
- package/esm2015/form-builder/validation-condition-editor-dialog.js +59 -0
- package/esm2015/form-builder/warning-condition-editor-dialog.js +59 -0
- package/esm2015/forms/barcode-field.js +43 -0
- package/esm2015/forms/boolean-field.js +43 -0
- package/esm2015/forms/date-field.js +43 -0
- package/esm2015/forms/date-input-field.js +65 -0
- package/esm2015/forms/empty-field.js +43 -0
- package/esm2015/forms/field-service.js +115 -0
- package/esm2015/forms/field-warning-dialog.js +32 -0
- package/esm2015/forms/field.js +45 -0
- package/esm2015/forms/form.js +46 -0
- package/esm2015/forms/forms-module.js +107 -0
- package/esm2015/forms/forms.externs.js +6 -0
- package/esm2015/forms/index.js +9 -0
- package/esm2015/forms/input-field.js +43 -0
- package/esm2015/forms/multiple-choice-field.js +44 -0
- package/esm2015/forms/public-api.js +37 -0
- package/esm2015/forms/range-field.js +45 -0
- package/esm2015/forms/single-choice-field.js +44 -0
- package/esm2015/forms/table-field.js +43 -0
- package/esm2015/forms/text-field.js +43 -0
- package/esm2015/forms/time-field.js +43 -0
- package/esm2015/forms/video-url-field.js +47 -0
- package/esm2015/forms/warning-alert-service.js +42 -0
- package/esm2015/image/image-module.js +42 -0
- package/esm2015/image/image.externs.js +6 -0
- package/esm2015/image/image.js +44 -0
- package/esm2015/image/index.js +5 -0
- package/esm2015/image/public-api.js +24 -0
- package/esm2015/index.js +28 -0
- package/esm2015/material.externs.js +0 -0
- package/esm2015/monaco-editor/auto-complete-item-model.js +44 -0
- package/esm2015/monaco-editor/autocomplete-singleton-model.js +134 -0
- package/esm2015/monaco-editor/editor-language-model.js +60 -0
- package/esm2015/monaco-editor/editor-options-model.js +27 -0
- package/esm2015/monaco-editor/editor-scrollbar-options.js +23 -0
- package/esm2015/monaco-editor/editor-theme.js +30 -0
- package/esm2015/monaco-editor/index.js +5 -0
- package/esm2015/monaco-editor/monaco-editor-module.js +36 -0
- package/esm2015/monaco-editor/monaco-editor.externs.js +6 -0
- package/esm2015/monaco-editor/monaco-editor.js +389 -0
- package/esm2015/monaco-editor/public-api.js +24 -0
- package/esm2015/node-icon/index.js +5 -0
- package/esm2015/node-icon/node-icon-module.js +42 -0
- package/esm2015/node-icon/node-icon.externs.js +6 -0
- package/esm2015/node-icon/node-icon.js +35 -0
- package/esm2015/node-icon/public-api.js +24 -0
- package/esm2015/page-slider/index.js +5 -0
- package/esm2015/page-slider/page-slider-module.js +49 -0
- package/esm2015/page-slider/page-slider.externs.js +6 -0
- package/esm2015/page-slider/page-slider.js +44 -0
- package/esm2015/page-slider/public-api.js +24 -0
- package/esm2015/report-builder/column.js +97 -0
- package/esm2015/report-builder/condition-editor.js +159 -0
- package/esm2015/report-builder/content.js +255 -0
- package/esm2015/report-builder/custom-widget-dialog.js +51 -0
- package/esm2015/report-builder/custom-widget-toolbar-button.js +70 -0
- package/esm2015/report-builder/custom-widgets-toolbar.js +124 -0
- package/esm2015/report-builder/forms-analyzer-dialog.js +315 -0
- package/esm2015/report-builder/forms-analyzer.js +264 -0
- package/esm2015/report-builder/image-filter.js +32 -0
- package/esm2015/report-builder/image-group.js +106 -0
- package/esm2015/report-builder/index.js +25 -0
- package/esm2015/report-builder/models.js +23 -0
- package/esm2015/report-builder/operations.js +23 -0
- package/esm2015/report-builder/properties.js +765 -0
- package/esm2015/report-builder/public-api.js +26 -0
- package/esm2015/report-builder/quill-editor.js +299 -0
- package/esm2015/report-builder/renderer-widget.js +238 -0
- package/esm2015/report-builder/report-builder-drag-data.js +23 -0
- package/esm2015/report-builder/report-builder-module.js +114 -0
- package/esm2015/report-builder/report-builder-service.js +1685 -0
- package/esm2015/report-builder/report-builder.externs.js +6 -0
- package/esm2015/report-builder/report-builder.js +69 -0
- package/esm2015/report-builder/theme-color-dialog.js +90 -0
- package/esm2015/report-builder/theme-color.js +215 -0
- package/esm2015/report-builder/tokens.js +24 -0
- package/esm2015/report-builder/toolbar-dialog.js +56 -0
- package/esm2015/report-builder/toolbar.js +90 -0
- package/esm2015/report-builder/utils.js +48 -0
- package/esm2015/report-builder/widget-toolbar-button.js +47 -0
- package/esm2015/report-builder/widgets-row-buttons.js +133 -0
- package/esm2015/report-builder/widgets-toolbar.js +79 -0
- package/esm2015/reports/chart-widget.js +41 -0
- package/esm2015/reports/formula-widget.js +41 -0
- package/esm2015/reports/image-container-widget.js +43 -0
- package/esm2015/reports/image-widget.js +41 -0
- package/esm2015/reports/index.js +5 -0
- package/esm2015/reports/layout-widget.js +22 -0
- package/esm2015/reports/map-widget.js +41 -0
- package/esm2015/reports/page-break-widget.js +41 -0
- package/esm2015/reports/public-api.js +33 -0
- package/esm2015/reports/report.js +41 -0
- package/esm2015/reports/reports-module.js +79 -0
- package/esm2015/reports/reports.externs.js +6 -0
- package/esm2015/reports/table-widget.js +41 -0
- package/esm2015/reports/text-widget.js +41 -0
- package/esm2015/reports/widget.js +120 -0
- package/esm2015/time/index.js +5 -0
- package/esm2015/time/public-api.js +24 -0
- package/esm2015/time/time-module.js +44 -0
- package/esm2015/time/time.externs.js +6 -0
- package/esm2015/time/time.js +46 -0
- package/fesm2015/barcode.js +129 -0
- package/fesm2015/barcode.js.map +1 -0
- package/fesm2015/calendar.js +128 -0
- package/fesm2015/calendar.js.map +1 -0
- package/fesm2015/checkbox-group.js +124 -0
- package/fesm2015/checkbox-group.js.map +1 -0
- package/fesm2015/form-builder.js +2987 -0
- package/fesm2015/form-builder.js.map +1 -0
- package/fesm2015/forms.js +923 -0
- package/fesm2015/forms.js.map +1 -0
- package/fesm2015/image.js +113 -0
- package/fesm2015/image.js.map +1 -0
- package/fesm2015/material.js +30 -0
- package/fesm2015/material.js.map +1 -0
- package/fesm2015/monaco-editor.js +741 -0
- package/fesm2015/monaco-editor.js.map +1 -0
- package/fesm2015/node-icon.js +104 -0
- package/fesm2015/node-icon.js.map +1 -0
- package/fesm2015/page-slider.js +119 -0
- package/fesm2015/page-slider.js.map +1 -0
- package/fesm2015/report-builder.js +5332 -0
- package/fesm2015/report-builder.js.map +1 -0
- package/fesm2015/reports.js +560 -0
- package/fesm2015/reports.js.map +1 -0
- package/fesm2015/time.js +116 -0
- package/fesm2015/time.js.map +1 -0
- package/form-builder/_form-builder.scss +0 -0
- package/form-builder/branch-line.d.ts +36 -0
- package/form-builder/choices-origin-data-source.d.ts +35 -0
- package/form-builder/choices-origin-editor-dialog.d.ts +34 -0
- package/form-builder/choices-origin-editor.d.ts +43 -0
- package/form-builder/condition-editor-dialog.d.ts +35 -0
- package/form-builder/condition-editor.d.ts +37 -0
- package/form-builder/form-builder-module.d.ts +23 -0
- package/form-builder/form-builder-service.d.ts +191 -0
- package/form-builder/form-builder-utils.d.ts +41 -0
- package/form-builder/form-builder.d.ts +78 -0
- package/form-builder/index.d.ts +15 -0
- package/form-builder/index.metadata.json +1 -0
- package/form-builder/node-entry.d.ts +93 -0
- package/form-builder/node-properties.d.ts +184 -0
- package/form-builder/node-type-entry.d.ts +30 -0
- package/form-builder/operations.d.ts +31 -0
- package/form-builder/package.json +9 -0
- package/form-builder/public-api.d.ts +25 -0
- package/form-builder/string-identifier-dialog.d.ts +45 -0
- package/form-builder/validation-condition-editor-dialog.d.ts +36 -0
- package/form-builder/warning-condition-editor-dialog.d.ts +36 -0
- package/forms/_forms.scss +0 -0
- package/forms/barcode-field.d.ts +27 -0
- package/forms/boolean-field.d.ts +27 -0
- package/forms/date-field.d.ts +27 -0
- package/forms/date-input-field.d.ts +34 -0
- package/forms/empty-field.d.ts +27 -0
- package/forms/field-service.d.ts +25 -0
- package/forms/field-warning-dialog.d.ts +24 -0
- package/forms/field.d.ts +30 -0
- package/forms/form.d.ts +36 -0
- package/forms/forms-module.d.ts +25 -0
- package/forms/index.d.ts +8 -0
- package/forms/index.metadata.json +1 -0
- package/forms/input-field.d.ts +27 -0
- package/forms/multiple-choice-field.d.ts +27 -0
- package/forms/package.json +9 -0
- package/forms/public-api.d.ts +36 -0
- package/forms/range-field.d.ts +28 -0
- package/forms/single-choice-field.d.ts +27 -0
- package/forms/table-field.d.ts +27 -0
- package/forms/text-field.d.ts +27 -0
- package/forms/time-field.d.ts +27 -0
- package/forms/video-url-field.d.ts +29 -0
- package/forms/warning-alert-service.d.ts +29 -0
- package/image/_image.scss +0 -0
- package/image/image-module.d.ts +23 -0
- package/image/image.d.ts +27 -0
- package/image/index.d.ts +4 -0
- package/image/index.metadata.json +1 -0
- package/image/package.json +9 -0
- package/image/public-api.d.ts +23 -0
- package/index.d.ts +22 -0
- package/monaco-editor/_monaco-editor.scss +0 -0
- package/monaco-editor/auto-complete-item-model.d.ts +35 -0
- package/monaco-editor/autocomplete-singleton-model.d.ts +55 -0
- package/monaco-editor/editor-language-model.d.ts +59 -0
- package/monaco-editor/editor-options-model.d.ts +334 -0
- package/monaco-editor/editor-scrollbar-options.d.ts +83 -0
- package/monaco-editor/editor-theme.d.ts +29 -0
- package/monaco-editor/index.d.ts +4 -0
- package/monaco-editor/index.metadata.json +1 -0
- package/monaco-editor/monaco-editor-module.d.ts +23 -0
- package/monaco-editor/monaco-editor.d.ts +152 -0
- package/monaco-editor/package.json +9 -0
- package/monaco-editor/public-api.d.ts +23 -0
- package/node-icon/_node-icon.scss +0 -0
- package/node-icon/index.d.ts +4 -0
- package/node-icon/index.metadata.json +1 -0
- package/node-icon/node-icon-module.d.ts +23 -0
- package/node-icon/node-icon.d.ts +24 -0
- package/node-icon/package.json +9 -0
- package/node-icon/public-api.d.ts +23 -0
- package/package.json +38 -0
- package/page-slider/_page-slider.scss +0 -0
- package/page-slider/index.d.ts +4 -0
- package/page-slider/index.metadata.json +1 -0
- package/page-slider/package.json +9 -0
- package/page-slider/page-slider-module.d.ts +23 -0
- package/page-slider/page-slider.d.ts +30 -0
- package/page-slider/public-api.d.ts +23 -0
- package/report-builder/_report-builder.scss +0 -0
- package/report-builder/column.d.ts +63 -0
- package/report-builder/condition-editor.d.ts +67 -0
- package/report-builder/content.d.ts +142 -0
- package/report-builder/custom-widget-dialog.d.ts +31 -0
- package/report-builder/custom-widget-toolbar-button.d.ts +45 -0
- package/report-builder/custom-widgets-toolbar.d.ts +71 -0
- package/report-builder/forms-analyzer-dialog.d.ts +91 -0
- package/report-builder/forms-analyzer.d.ts +102 -0
- package/report-builder/image-filter.d.ts +25 -0
- package/report-builder/image-group.d.ts +69 -0
- package/report-builder/index.d.ts +24 -0
- package/report-builder/index.metadata.json +1 -0
- package/report-builder/models.d.ts +43 -0
- package/report-builder/operations.d.ts +45 -0
- package/report-builder/package.json +9 -0
- package/report-builder/properties.d.ts +365 -0
- package/report-builder/public-api.d.ts +26 -0
- package/report-builder/quill-editor.d.ts +113 -0
- package/report-builder/renderer-widget.d.ts +80 -0
- package/report-builder/report-builder-drag-data.d.ts +32 -0
- package/report-builder/report-builder-module.d.ts +23 -0
- package/report-builder/report-builder-service.d.ts +722 -0
- package/report-builder/report-builder.d.ts +36 -0
- package/report-builder/theme-color-dialog.d.ts +42 -0
- package/report-builder/theme-color.d.ts +108 -0
- package/report-builder/tokens.d.ts +24 -0
- package/report-builder/toolbar-dialog.d.ts +30 -0
- package/report-builder/toolbar.d.ts +48 -0
- package/report-builder/utils.d.ts +29 -0
- package/report-builder/widget-toolbar-button.d.ts +28 -0
- package/report-builder/widgets-row-buttons.d.ts +57 -0
- package/report-builder/widgets-toolbar.d.ts +44 -0
- package/reports/_reports.scss +0 -0
- package/reports/chart-widget.d.ts +26 -0
- package/reports/formula-widget.d.ts +26 -0
- package/reports/image-container-widget.d.ts +28 -0
- package/reports/image-widget.d.ts +26 -0
- package/reports/index.d.ts +4 -0
- package/reports/index.metadata.json +1 -0
- package/reports/layout-widget.d.ts +21 -0
- package/reports/map-widget.d.ts +26 -0
- package/reports/package.json +9 -0
- package/reports/page-break-widget.d.ts +26 -0
- package/reports/public-api.d.ts +32 -0
- package/reports/report.d.ts +26 -0
- package/reports/reports-module.d.ts +23 -0
- package/reports/table-widget.d.ts +26 -0
- package/reports/text-widget.d.ts +26 -0
- package/reports/widget.d.ts +40 -0
- package/time/_time.scss +0 -0
- package/time/index.d.ts +4 -0
- package/time/index.metadata.json +1 -0
- package/time/package.json +9 -0
- package/time/public-api.d.ts +23 -0
- package/time/time-module.d.ts +23 -0
- package/time/time.d.ts +28 -0
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright (C) Gnucoop soc. coop.
|
|
4
|
+
*
|
|
5
|
+
* This file is part of the Advanced JSON forms (ajf).
|
|
6
|
+
*
|
|
7
|
+
* Advanced JSON forms (ajf) is free software: you can redistribute it and/or
|
|
8
|
+
* modify it under the terms of the GNU Affero General Public License as
|
|
9
|
+
* published by the Free Software Foundation, either version 3 of the License,
|
|
10
|
+
* or (at your option) any later version.
|
|
11
|
+
*
|
|
12
|
+
* Advanced JSON forms (ajf) is distributed in the hope that it will be useful,
|
|
13
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
14
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero
|
|
15
|
+
* General Public License for more details.
|
|
16
|
+
*
|
|
17
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
18
|
+
* along with Advanced JSON forms (ajf).
|
|
19
|
+
* If not, see http://www.gnu.org/licenses/.
|
|
20
|
+
*
|
|
21
|
+
*/
|
|
22
|
+
import { AjfAggregationType, AjfChartType, AjfWidgetType } from '@ajf/core/reports';
|
|
23
|
+
import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';
|
|
24
|
+
import { MatDialog } from '@angular/material/dialog';
|
|
25
|
+
import { Subscription } from 'rxjs';
|
|
26
|
+
import { AjfReportBuilderFormsAnalyzerDialog } from './forms-analyzer-dialog';
|
|
27
|
+
import { AjfReportBuilderService } from './report-builder-service';
|
|
28
|
+
/**
|
|
29
|
+
* this component provides the support for connect the form fields with the report
|
|
30
|
+
*
|
|
31
|
+
* @export
|
|
32
|
+
*/
|
|
33
|
+
export class AjfReportBuilderFormsAnalyzer {
|
|
34
|
+
constructor(_service, dialog) {
|
|
35
|
+
this._service = _service;
|
|
36
|
+
this.dialog = dialog;
|
|
37
|
+
this.currentWidget = null;
|
|
38
|
+
this.forms = [];
|
|
39
|
+
this.choicesOrigins = {};
|
|
40
|
+
this.currentMainDataIndex = -1;
|
|
41
|
+
this._dataset = [];
|
|
42
|
+
this._currentWidgetSub = Subscription.EMPTY;
|
|
43
|
+
this._formAnalyzerSub = Subscription.EMPTY;
|
|
44
|
+
this._currentWidgetSub = this._service.currentWidget.subscribe(x => {
|
|
45
|
+
if (x != null) {
|
|
46
|
+
this.currentWidget = x;
|
|
47
|
+
// this._dataset = myObj.dataset;
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
this.currentWidget = null;
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
this._formAnalyzerSub = this._service.formsVariables.subscribe((x) => {
|
|
54
|
+
if (x != null) {
|
|
55
|
+
this.formsVariables = x;
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
setCurrentIndex(index) {
|
|
60
|
+
this.currentMainDataIndex = index;
|
|
61
|
+
}
|
|
62
|
+
isSelected(index) {
|
|
63
|
+
if (index === this.currentMainDataIndex) {
|
|
64
|
+
return 'primary';
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
return undefined;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* get the X components label of the chart.
|
|
72
|
+
* they are contained in the first row of dataset
|
|
73
|
+
*
|
|
74
|
+
*
|
|
75
|
+
* @memberof AjfReportBuilderFormsAnalyzer
|
|
76
|
+
*/
|
|
77
|
+
getMainData() {
|
|
78
|
+
if (this._dataset[0] != null) {
|
|
79
|
+
let mainData = [];
|
|
80
|
+
for (let i = 0; i < this._dataset[0].length; i++) {
|
|
81
|
+
mainData.push(this._dataset[0][i].label || '');
|
|
82
|
+
}
|
|
83
|
+
return mainData;
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
return [];
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* get the Y components label of the chart.
|
|
91
|
+
* they are contained in the first column of dataset
|
|
92
|
+
*
|
|
93
|
+
*
|
|
94
|
+
* @memberof AjfReportBuilderFormsAnalyzer
|
|
95
|
+
*/
|
|
96
|
+
getDataset() {
|
|
97
|
+
let dataset = [];
|
|
98
|
+
if (this._dataset[0] != null) {
|
|
99
|
+
for (let i = 1; i < this._dataset.length; i++) {
|
|
100
|
+
dataset.push(this._dataset[i][0].label || '');
|
|
101
|
+
}
|
|
102
|
+
return dataset;
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
return [];
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* get the related data label of the chart.
|
|
110
|
+
* they are contained in the row of the Y component
|
|
111
|
+
*
|
|
112
|
+
*
|
|
113
|
+
* @memberof AjfReportBuilderFormsAnalyzer
|
|
114
|
+
*/
|
|
115
|
+
getRelatedData() {
|
|
116
|
+
if (this._dataset[this.currentMainDataIndex + 1] != null) {
|
|
117
|
+
let relatedData = [];
|
|
118
|
+
for (let i = 1; i < this._dataset[this.currentMainDataIndex + 1].length; i++) {
|
|
119
|
+
relatedData.push(this._dataset[this.currentMainDataIndex + 1][i].label || '');
|
|
120
|
+
}
|
|
121
|
+
return relatedData;
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
return [];
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
getTableHeader() {
|
|
128
|
+
let mainData = [];
|
|
129
|
+
if (this._dataset != null) {
|
|
130
|
+
for (let i = 0; i < this._dataset.length; i++) {
|
|
131
|
+
if (this._dataset[i][0] != null) {
|
|
132
|
+
mainData.push(this._dataset[i][0].label || '');
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
return mainData;
|
|
137
|
+
}
|
|
138
|
+
getTableData() {
|
|
139
|
+
if (this._dataset[this.currentMainDataIndex] != null) {
|
|
140
|
+
let tableData = [];
|
|
141
|
+
for (let i = 1; i < this._dataset[this.currentMainDataIndex].length; i++) {
|
|
142
|
+
if (this._dataset[this.currentMainDataIndex][i] != null) {
|
|
143
|
+
tableData.push(this._dataset[this.currentMainDataIndex][i].label || '');
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
return tableData;
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
return [];
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
needMainData() {
|
|
153
|
+
let myObj = this.currentWidget;
|
|
154
|
+
if (myObj.chartType === AjfChartType.Scatter || myObj.chartType === AjfChartType.Bubble) {
|
|
155
|
+
return false;
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
return true;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
removeMainData(index) {
|
|
162
|
+
this._service.removeMainData(index);
|
|
163
|
+
}
|
|
164
|
+
removeDataset(index) {
|
|
165
|
+
this.currentMainDataIndex = index;
|
|
166
|
+
this._service.removeRelatedData(this.currentMainDataIndex, -1);
|
|
167
|
+
}
|
|
168
|
+
removeTableMainData(index) {
|
|
169
|
+
this._service.removeTableMainData(index);
|
|
170
|
+
}
|
|
171
|
+
removeRelatedData(index) {
|
|
172
|
+
this._service.removeRelatedData(this.currentMainDataIndex, index);
|
|
173
|
+
}
|
|
174
|
+
removeData(mainIndex, index) {
|
|
175
|
+
this._service.removeData(mainIndex, index);
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
*
|
|
179
|
+
*
|
|
180
|
+
*
|
|
181
|
+
* @param index
|
|
182
|
+
* @param editMode
|
|
183
|
+
*
|
|
184
|
+
* @memberof AjfReportBuilderFormsAnalyzer
|
|
185
|
+
*/
|
|
186
|
+
openDialog(level, mainIndex, index, editMode) {
|
|
187
|
+
this.dialogRef = this.dialog.open(AjfReportBuilderFormsAnalyzerDialog);
|
|
188
|
+
if (editMode) {
|
|
189
|
+
if (level === 1 && index === -1) {
|
|
190
|
+
index = 0;
|
|
191
|
+
}
|
|
192
|
+
if (level === 1) {
|
|
193
|
+
if (this.currentWidget != null && this.currentWidget.widgetType == AjfWidgetType.Chart) {
|
|
194
|
+
mainIndex++;
|
|
195
|
+
}
|
|
196
|
+
index++;
|
|
197
|
+
}
|
|
198
|
+
this.dialogRef.componentInstance.labelText =
|
|
199
|
+
this._dataset[mainIndex] && this._dataset[mainIndex][index].label || '';
|
|
200
|
+
/* this.dialogRef.componentInstance.formula =
|
|
201
|
+
this._dataset[mainIndex] &&
|
|
202
|
+
this._dataset[mainIndex][index].formula.formula || ''; */
|
|
203
|
+
this.dialogRef.componentInstance.aggregation =
|
|
204
|
+
this._dataset[mainIndex] && this._dataset[mainIndex][index].aggregation.aggregation ||
|
|
205
|
+
AjfAggregationType.None;
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
this.dialogRef.componentInstance.labelText = '';
|
|
209
|
+
this.dialogRef.componentInstance.formula = '';
|
|
210
|
+
this.dialogRef.componentInstance.aggregation = 0;
|
|
211
|
+
}
|
|
212
|
+
// this.dialogRef.componentInstance.formsVariables = this.formsVariables;
|
|
213
|
+
this.dialogRef.componentInstance.currentWidget = this.currentWidget;
|
|
214
|
+
this.dialogRef.componentInstance.level = level;
|
|
215
|
+
this.dialogRef.componentInstance.mainIndex = mainIndex;
|
|
216
|
+
this.dialogRef.componentInstance.index = index;
|
|
217
|
+
this.dialogRef.componentInstance.init = false;
|
|
218
|
+
}
|
|
219
|
+
openDialogAddMainData() {
|
|
220
|
+
this.openDialog(0, -1, -1, false);
|
|
221
|
+
}
|
|
222
|
+
openDialogChartEditMainData() {
|
|
223
|
+
this.openDialog(0, 0, this.currentMainDataIndex, true);
|
|
224
|
+
}
|
|
225
|
+
openDialogTableEditMainData() {
|
|
226
|
+
this.openDialog(0, this.currentMainDataIndex, 0, true);
|
|
227
|
+
}
|
|
228
|
+
openDialogChartAddDataset() {
|
|
229
|
+
this.openDialog(1, -1, -1, false);
|
|
230
|
+
}
|
|
231
|
+
openDialogTableAddDataset() {
|
|
232
|
+
this.openDialog(1, this.currentMainDataIndex, -1, false);
|
|
233
|
+
}
|
|
234
|
+
openDialogChartAddDataOfDataset() {
|
|
235
|
+
this.openDialog(1, this.currentMainDataIndex, -1, false);
|
|
236
|
+
}
|
|
237
|
+
openDialogChartEditDataset() {
|
|
238
|
+
this.openDialog(1, this.currentMainDataIndex, -1, true);
|
|
239
|
+
}
|
|
240
|
+
openDialogTableEditDataset(index) {
|
|
241
|
+
this.openDialog(1, this.currentMainDataIndex, index, true);
|
|
242
|
+
}
|
|
243
|
+
openDialogChartEditDataOfDataset(index) {
|
|
244
|
+
this.openDialog(1, this.currentMainDataIndex, index, true);
|
|
245
|
+
}
|
|
246
|
+
ngOnDestroy() {
|
|
247
|
+
this._currentWidgetSub.unsubscribe();
|
|
248
|
+
this._formAnalyzerSub.unsubscribe();
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
AjfReportBuilderFormsAnalyzer.decorators = [
|
|
252
|
+
{ type: Component, args: [{
|
|
253
|
+
selector: 'ajf-report-builder-forms-analyzer',
|
|
254
|
+
template: "<ng-template [ngIf]=\"currentWidget != null && formsVariables != null\">\n <ng-template [ngIf]=\"currentWidget.widgetType == 4\">\n <ng-template [ngIf]=\"needMainData()\">\n <mat-tab-group>\n <mat-tab [label]=\"'Main Data' | transloco\">\n <button\n mat-button\n (click)=\"openDialogAddMainData()\"\n style=\"width: 100%\"\n >\n Add Main Data\n </button>\n <mat-grid-list rowHeight=\"50px\" cols=\"3\">\n <ng-template\n ngFor\n let-label\n [ngForOf]=\"getMainData()\"\n let-idx=\"index\"\n >\n <mat-grid-tile> {{ label }} </mat-grid-tile>\n <mat-grid-tile>\n <button\n mat-button\n (click)=\"setCurrentIndex(idx);openDialogChartEditMainData()\"\n >\n {{'Edit'|transloco}}\n </button>\n </mat-grid-tile>\n <mat-grid-tile>\n <button mat-button (click)=\"removeMainData(idx)\">\n {{'Remove'|transloco}}\n </button>\n </mat-grid-tile>\n </ng-template>\n </mat-grid-list>\n <div class=\"ajf-ui ajf-divider\"></div>\n </mat-tab>\n </mat-tab-group>\n </ng-template>\n <mat-tab-group>\n <mat-tab label=\"dataset\">\n <button\n mat-button\n (click)=\"openDialogChartAddDataset()\"\n style=\"width: 100%\"\n >\n {{'add dataset'|transloco}}\n </button>\n <mat-grid-list rowHeight=\"50px\" cols=\"4\">\n <ng-template ngFor let-label [ngForOf]=\"getDataset()\" let-idx=\"index\">\n <mat-grid-tile>\n <button\n mat-button\n [color]=\"isSelected(idx)\"\n (click)=\"setCurrentIndex(idx)\"\n >\n {{ label|transloco }}\n </button>\n </mat-grid-tile>\n <mat-grid-tile>\n <button\n mat-button\n (click)=\"setCurrentIndex(idx);openDialogChartAddDataOfDataset()\"\n style=\"width: 100%\"\n >\n {{'add data'|transloco}}\n </button>\n </mat-grid-tile>\n <mat-grid-tile>\n <button\n mat-button\n (click)=\"setCurrentIndex(idx);openDialogChartEditDataset()\"\n >\n {{'Edit'|transloco}}\n </button>\n </mat-grid-tile>\n <mat-grid-tile>\n <button mat-button (click)=\"removeDataset(idx)\">\n {{'Remove'|transloco}}\n </button>\n </mat-grid-tile>\n </ng-template>\n </mat-grid-list>\n </mat-tab>\n <mat-tab label=\"data\">\n <mat-grid-list rowHeight=\"50px\" cols=\"3\">\n <ng-template\n ngFor\n let-label\n [ngForOf]=\"getRelatedData()\"\n let-idx=\"index\"\n >\n <mat-grid-tile> {{ label|transloco }} </mat-grid-tile>\n <mat-grid-tile>\n <button\n mat-button\n (click)=\"openDialogChartEditDataOfDataset(idx)\"\n >\n {{'Edit'|transloco}}\n </button>\n </mat-grid-tile>\n <mat-grid-tile>\n <button mat-button (click)=\"removeRelatedData(idx)\">\n {{'Remove'|transloco}}\n </button>\n </mat-grid-tile>\n </ng-template>\n </mat-grid-list>\n <div class=\"ajf-ui ajf-divider\"></div>\n </mat-tab>\n </mat-tab-group>\n </ng-template>\n <ng-template [ngIf]=\"currentWidget.widgetType == 5\">\n <ng-template [ngIf]=\"needMainData()\">\n <mat-tab-group>\n <mat-tab [label]=\"'Main Data' | transloco\">\n <button\n mat-button\n (click)=\"openDialogAddMainData()\"\n style=\"width: 100%\"\n >\n {{'Add Main Data'|transloco}}\n </button>\n <mat-grid-list rowHeight=\"50px\" cols=\"4\">\n <ng-template\n ngFor\n let-label\n [ngForOf]=\"getTableHeader()\"\n let-idx=\"index\"\n >\n <mat-grid-tile>\n <button\n mat-button\n [color]=\"isSelected(idx)\"\n (click)=\"setCurrentIndex(idx)\"\n >\n {{ label }}\n </button>\n </mat-grid-tile>\n <mat-grid-tile>\n <button\n mat-button\n (click)=\"setCurrentIndex(idx);openDialogTableAddDataset()\"\n style=\"width: 100%\"\n >\n {{'add data'|transloco}}\n </button>\n </mat-grid-tile>\n <mat-grid-tile>\n <button\n mat-button\n (click)=\"setCurrentIndex(idx);openDialogTableEditMainData()\"\n >\n {{'Edit'|transloco}}\n </button>\n </mat-grid-tile>\n <mat-grid-tile>\n <button mat-button (click)=\"removeTableMainData(idx)\">\n {{'Remove'|transloco}}\n </button>\n </mat-grid-tile>\n </ng-template>\n </mat-grid-list>\n <div class=\"ajf-ui ajf-divider\"></div>\n </mat-tab>\n <mat-tab [label]=\"'data' | transloco\">\n <mat-grid-list rowHeight=\"50px\" cols=\"3\">\n <ng-template\n ngFor\n let-label\n [ngForOf]=\"getTableData()\"\n let-idx=\"index\"\n >\n <mat-grid-tile> {{ label|transloco }} </mat-grid-tile>\n <mat-grid-tile>\n <button mat-button (click)=\"openDialogTableEditDataset(idx)\">\n {{'Edit'|transloco}}\n </button>\n </mat-grid-tile>\n <mat-grid-tile>\n <button\n mat-button\n (click)=\"removeData(currentMainDataIndex, idx + 1)\"\n >\n {{'Remove'|transloco}}\n </button>\n </mat-grid-tile>\n </ng-template>\n </mat-grid-list>\n <div class=\"ajf-ui ajf-divider\"></div>\n </mat-tab>\n </mat-tab-group>\n </ng-template>\n </ng-template>\n</ng-template>\n",
|
|
255
|
+
encapsulation: ViewEncapsulation.None,
|
|
256
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
257
|
+
styles: ["ajf-report-builder-forms-analyzer{min-height:512px}ajf-report-builder-forms-analyzer .ajf-editor{flex:.75 0 auto;display:flex;flex-direction:row;align-items:stretch}ajf-report-builder-forms-analyzer .ajf-editor monaco-editor{flex:1 0 auto;min-width:512px;min-height:256px}ajf-report-builder-forms-analyzer mat-dialog-container{flex:1 0 auto;min-width:512px;min-height:256px}ajf-report-builder-forms-analyzer .ajf-editor-panel{flex:.25 0 auto;overflow-y:auto}ajf-report-builder-forms-analyzer .mat-list-item-content{position:normal !important;display:block !important;height:350px !important}ajf-report-builder-forms-analyzer mat-tab-group .mat-tab-body-wrapper,ajf-report-builder-forms-analyzer mat-tab-group .mat-list-item-content{position:normal !important;display:block !important;height:350px !important}\n"]
|
|
258
|
+
},] }
|
|
259
|
+
];
|
|
260
|
+
AjfReportBuilderFormsAnalyzer.ctorParameters = () => [
|
|
261
|
+
{ type: AjfReportBuilderService },
|
|
262
|
+
{ type: MatDialog }
|
|
263
|
+
];
|
|
264
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXMtYW5hbHl6ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbWF0ZXJpYWwvcmVwb3J0LWJ1aWxkZXIvZm9ybXMtYW5hbHl6ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBR0gsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixZQUFZLEVBS1osYUFBYSxFQUNkLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBYSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUUvRixPQUFPLEVBQUMsU0FBUyxFQUFlLE1BQU0sMEJBQTBCLENBQUM7QUFDakUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUVsQyxPQUFPLEVBQUMsbUNBQW1DLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUU1RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUVqRTs7OztHQUlHO0FBUUgsTUFBTSxPQUFPLDZCQUE2QjtJQWV4QyxZQUFvQixRQUFpQyxFQUFTLE1BQWlCO1FBQTNELGFBQVEsR0FBUixRQUFRLENBQXlCO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQWQvRSxrQkFBYSxHQUFtQixJQUFJLENBQUM7UUFFckMsVUFBSyxHQUFjLEVBQUUsQ0FBQztRQUd0QixtQkFBYyxHQUFRLEVBQUUsQ0FBQztRQUl6Qix5QkFBb0IsR0FBVyxDQUFDLENBQUMsQ0FBQztRQUMxQixhQUFRLEdBQW1CLEVBQUUsQ0FBQztRQUM5QixzQkFBaUIsR0FBaUIsWUFBWSxDQUFDLEtBQUssQ0FBQztRQUNyRCxxQkFBZ0IsR0FBaUIsWUFBWSxDQUFDLEtBQUssQ0FBQztRQUcxRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMs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QW9CLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNELDBCQUEwQixDQUFDLEtBQWE7UUFDdEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBQ0QsZ0NBQWdDLENBQUMsS0FBYTtRQUM1QyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN0QyxDQUFDOzs7WUF0UEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxtQ0FBbUM7Z0JBQzdDLG1rTkFBa0M7Z0JBRWxDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2dCQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7YUFDaEQ7OztZQWJPLHVCQUF1QjtZQUx2QixTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IChDKSBHbnVjb29wIHNvYy4gY29vcC5cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWR2YW5jZWQgSlNPTiBmb3JtcyAoYWpmKS5cbiAqXG4gKiBBZHZhbmNlZCBKU09OIGZvcm1zIChhamYpIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vclxuICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzXG4gKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSxcbiAqIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogQWR2YW5jZWQgSlNPTiBmb3JtcyAoYWpmKSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBHTlUgQWZmZXJvXG4gKiBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIEFkdmFuY2VkIEpTT04gZm9ybXMgKGFqZikuXG4gKiBJZiBub3QsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvLlxuICpcbiAqL1xuXG5pbXBvcnQge0FqZkZvcm19IGZyb20gJ0BhamYvY29yZS9mb3Jtcyc7XG5pbXBvcnQge1xuICBBamZBZ2dyZWdhdGlvblR5cGUsXG4gIEFqZkNoYXJ0VHlwZSxcbiAgQWpmQ2hhcnRXaWRnZXQsXG4gIEFqZkRhdGFzZXQsXG4gIEFqZkRhdGFXaWRnZXQsXG4gIEFqZldpZGdldCxcbiAgQWpmV2lkZ2V0VHlwZVxufSBmcm9tICdAYWpmL2NvcmUvcmVwb3J0cyc7XG5pbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uRGVzdHJveSwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUaGVtZVBhbGV0dGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHtNYXREaWFsb2csIE1hdERpYWxvZ1JlZn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtBamZSZXBvcnRCdWlsZGVyRm9ybXNBbmFseXplckRpYWxvZ30gZnJvbSAnLi9mb3Jtcy1hbmFseXplci1kaWFsb2cnO1xuaW1wb3J0IHtBamZGb3JtVmFyaWFibGVzfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQge0FqZlJlcG9ydEJ1aWxkZXJTZXJ2aWNlfSBmcm9tICcuL3JlcG9ydC1idWlsZGVyLXNlcnZpY2UnO1xuXG4vKipcbiAqIHRoaXMgY29tcG9uZW50IHByb3ZpZGVzIHRoZSBzdXBwb3J0IGZvciBjb25uZWN0IHRoZSBmb3JtIGZpZWxkcyB3aXRoIHRoZSByZXBvcnRcbiAqXG4gKiBAZXhwb3J0XG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FqZi1yZXBvcnQtYnVpbGRlci1mb3Jtcy1hbmFseXplcicsXG4gIHRlbXBsYXRlVXJsOiAnZm9ybXMtYW5hbHl6ZXIuaHRtbCcsXG4gIHN0eWxlVXJsczogWydmb3Jtcy1hbmFseXplci5jc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQWpmUmVwb3J0QnVpbGRlckZvcm1zQW5hbHl6ZXIgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBjdXJyZW50V2lkZ2V0OiBBamZXaWRnZXR8bnVsbCA9IG51bGw7XG5cbiAgZm9ybXM6IEFqZkZvcm1bXSA9IFtdO1xuXG4gIGZvcm1zVmFyaWFibGVzOiBBamZGb3JtVmFyaWFibGVzW107XG4gIGNob2ljZXNPcmlnaW5zOiBhbnkgPSB7fTtcblxuICBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxBamZSZXBvcnRCdWlsZGVyRm9ybXNBbmFseXplckRpYWxvZz47XG5cbiAgY3VycmVudE1haW5EYXRhSW5kZXg6IG51bWJlciA9IC0xO1xuICBwcml2YXRlIF9kYXRhc2V0OiBBamZEYXRhc2V0W11bXSA9IFtdO1xuICBwcml2YXRlIF9jdXJyZW50V2lkZ2V0U3ViOiBTdWJzY3JpcHRpb24gPSBTdWJzY3JpcHRpb24uRU1QVFk7XG4gIHByaXZhdGUgX2Zvcm1BbmFseXplclN1YjogU3Vic2NyaXB0aW9uID0gU3Vic2NyaXB0aW9uLkVNUFRZO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3NlcnZpY2U6IEFqZlJlcG9ydEJ1aWxkZXJTZXJ2aWNlLCBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2cpIHtcbiAgICB0aGlzLl9jdXJyZW50V2lkZ2V0U3ViID0gdGhpcy5fc2VydmljZS5jdXJyZW50V2lkZ2V0LnN1YnNjcmliZSh4ID0+IHtcbiAgICAgIGlmICh4ICE9IG51bGwpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50V2lkZ2V0ID0geDtcbiAgICAgICAgLy8gdGhpcy5fZGF0YXNldCA9IG15T2JqLmRhdGFzZXQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmN1cnJlbnRXaWRnZXQgPSBudWxsO1xuICAgICAgfVxuICAgIH0pO1xuXG5cbiAgICB0aGlzLl9mb3JtQW5hbHl6ZXJTdWIgPSB0aGlzLl9zZXJ2aWNlLmZvcm1zVmFyaWFibGVzLnN1YnNjcmliZSgoeCkgPT4ge1xuICAgICAgaWYgKHggIT0gbnVsbCkge1xuICAgICAgICB0aGlzLmZvcm1zVmFyaWFibGVzID0geDtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHNldEN1cnJlbnRJbmRleChpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5jdXJyZW50TWFpbkRhdGFJbmRleCA9IGluZGV4O1xuICB9XG5cbiAgaXNTZWxlY3RlZChpbmRleDogbnVtYmVyKTogVGhlbWVQYWxldHRlIHtcbiAgICBpZiAoaW5kZXggPT09IHRoaXMuY3VycmVudE1haW5EYXRhSW5kZXgpIHtcbiAgICAgIHJldHVybiAncHJpbWFyeSc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqICBnZXQgdGhlIFggY29tcG9uZW50cyBsYWJlbCBvZiB0aGUgY2hhcnQuXG4gICAqICB0aGV5IGFyZSBjb250YWluZWQgaW4gdGhlIGZpcnN0IHJvdyBvZiBkYXRhc2V0XG4gICAqXG4gICAqXG4gICAqIEBtZW1iZXJvZiBBamZSZXBvcnRCdWlsZGVyRm9ybXNBbmFseXplclxuICAgKi9cbiAgZ2V0TWFpbkRhdGEoKTogc3RyaW5nW10ge1xuICAgIGlmICh0aGlzLl9kYXRhc2V0WzBdICE9IG51bGwpIHtcbiAgICAgIGxldCBtYWluRGF0YTogc3RyaW5nW10gPSBbXTtcblxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9kYXRhc2V0WzBdLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIG1haW5EYXRhLnB1c2godGhpcy5fZGF0YXNldFswXVtpXS5sYWJlbCB8fCAnJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbWFpbkRhdGE7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogIGdldCB0aGUgWSBjb21wb25lbnRzIGxhYmVsIG9mIHRoZSBjaGFydC5cbiAgICogIHRoZXkgYXJlIGNvbnRhaW5lZCBpbiB0aGUgZmlyc3QgY29sdW1uIG9mIGRhdGFzZXRcbiAgICpcbiAgICpcbiAgICogQG1lbWJlcm9mIEFqZlJlcG9ydEJ1aWxkZXJGb3Jtc0FuYWx5emVyXG4gICAqL1xuICBnZXREYXRhc2V0KCk6IHN0cmluZ1tdIHtcbiAgICBsZXQgZGF0YXNldDogc3RyaW5nW10gPSBbXTtcbiAgICBpZiAodGhpcy5fZGF0YXNldFswXSAhPSBudWxsKSB7XG4gICAgICBmb3IgKGxldCBpID0gMTsgaSA8IHRoaXMuX2RhdGFzZXQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgZGF0YXNldC5wdXNoKHRoaXMuX2RhdGFzZXRbaV1bMF0ubGFiZWwgfHwgJycpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGRhdGFzZXQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogZ2V0IHRoZSByZWxhdGVkIGRhdGEgbGFiZWwgb2YgdGhlIGNoYXJ0LlxuICAgKiB0aGV5IGFyZSBjb250YWluZWQgaW4gdGhlIHJvdyBvZiB0aGUgWSBjb21wb25lbnRcbiAgICpcbiAgICpcbiAgICogQG1lbWJlcm9mIEFqZlJlcG9ydEJ1aWxkZXJGb3Jtc0FuYWx5emVyXG4gICAqL1xuICBnZXRSZWxhdGVkRGF0YSgpOiBzdHJpbmdbXSB7XG4gICAgaWYgKHRoaXMuX2RhdGFzZXRbdGhpcy5jdXJyZW50TWFpbkRhdGFJbmRleCArIDFdICE9IG51bGwpIHtcbiAgICAgIGxldCByZWxhdGVkRGF0YTogc3RyaW5nW10gPSBbXTtcblxuICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCB0aGlzLl9kYXRhc2V0W3RoaXMuY3VycmVudE1haW5EYXRhSW5kZXggKyAxXS5sZW5ndGg7IGkrKykge1xuICAgICAgICByZWxhdGVkRGF0YS5wdXNoKHRoaXMuX2RhdGFzZXRbdGhpcy5jdXJyZW50TWFpbkRhdGFJbmRleCArIDFdW2ldLmxhYmVsIHx8ICcnKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZWxhdGVkRGF0YTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgfVxuXG4gIGdldFRhYmxlSGVhZGVyKCk6IHN0cmluZ1tdIHtcbiAgICBsZXQgbWFpbkRhdGE6IHN0cmluZ1tdID0gW107XG4gICAgaWYgKHRoaXMuX2RhdGFzZXQgIT0gbnVsbCkge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9kYXRhc2V0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmICh0aGlzLl9kYXRhc2V0W2ldWzBdICE9IG51bGwpIHtcbiAgICAgICAgICBtYWluRGF0YS5wdXNoKHRoaXMuX2RhdGFzZXRbaV1bMF0ubGFiZWwgfHwgJycpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBtYWluRGF0YTtcbiAgfVxuXG4gIGdldFRhYmxlRGF0YSgpOiBzdHJpbmdbXSB7XG4gICAgaWYgKHRoaXMuX2RhdGFzZXRbdGhpcy5jdXJyZW50TWFpbkRhdGFJbmRleF0gIT0gbnVsbCkge1xuICAgICAgbGV0IHRhYmxlRGF0YTogc3RyaW5nW10gPSBbXTtcblxuICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCB0aGlzLl9kYXRhc2V0W3RoaXMuY3VycmVudE1haW5EYXRhSW5kZXhdLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmICh0aGlzLl9kYXRhc2V0W3RoaXMuY3VycmVudE1haW5EYXRhSW5kZXhdW2ldICE9IG51bGwpIHtcbiAgICAgICAgICB0YWJsZURhdGEucHVzaCh0aGlzLl9kYXRhc2V0W3RoaXMuY3VycmVudE1haW5EYXRhSW5kZXhdW2ldLmxhYmVsIHx8ICcnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRhYmxlRGF0YTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgfVxuXG4gIG5lZWRNYWluRGF0YSgpOiBib29sZWFuIHtcbiAgICBsZXQgbXlPYmogPSA8QWpmQ2hhcnRXaWRnZXQ+dGhpcy5jdXJyZW50V2lkZ2V0O1xuICAgIGlmIChteU9iai5jaGFydFR5cGUgPT09IEFqZkNoYXJ0VHlwZS5TY2F0dGVyIHx8IG15T2JqLmNoYXJ0VHlwZSA9PT0gQWpmQ2hhcnRUeXBlLkJ1YmJsZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZW1vdmVNYWluRGF0YShpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5fc2VydmljZS5yZW1vdmVNYWluRGF0YShpbmRleCk7XG4gIH1cblxuICByZW1vdmVEYXRhc2V0KGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLmN1cnJlbnRNYWluRGF0YUluZGV4ID0gaW5kZXg7XG4gICAgdGhpcy5fc2VydmljZS5yZW1vdmVSZWxhdGVkRGF0YSh0aGlzLmN1cnJlbnRNYWluRGF0YUluZGV4LCAtMSk7XG4gIH1cbiAgcmVtb3ZlVGFibGVNYWluRGF0YShpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5fc2VydmljZS5yZW1vdmVUYWJsZU1haW5EYXRhKGluZGV4KTtcbiAgfVxuXG4gIHJlbW92ZVJlbGF0ZWREYXRhKGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLl9zZXJ2aWNlLnJlbW92ZVJlbGF0ZWREYXRhKHRoaXMuY3VycmVudE1haW5EYXRhSW5kZXgsIGluZGV4KTtcbiAgfVxuXG4gIHJlbW92ZURhdGEobWFpbkluZGV4OiBudW1iZXIsIGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLl9zZXJ2aWNlLnJlbW92ZURhdGEobWFpbkluZGV4LCBpbmRleCk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICpcbiAgICpcbiAgICogQHBhcmFtIGluZGV4XG4gICAqIEBwYXJhbSBlZGl0TW9kZVxuICAgKlxuICAgKiBAbWVtYmVyb2YgQWpmUmVwb3J0QnVpbGRlckZvcm1zQW5hbHl6ZXJcbiAgICovXG4gIG9wZW5EaWFsb2cobGV2ZWw6IG51bWJlciwgbWFpbkluZGV4OiBudW1iZXIsIGluZGV4OiBudW1iZXIsIGVkaXRNb2RlOiBib29sZWFuKSB7XG4gICAgdGhpcy5kaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEFqZlJlcG9ydEJ1aWxkZXJGb3Jtc0FuYWx5emVyRGlhbG9nKTtcblxuICAgIGlmIChlZGl0TW9kZSkge1xuICAgICAgaWYgKGxldmVsID09PSAxICYmIGluZGV4ID09PSAtMSkge1xuICAgICAgICBpbmRleCA9IDA7XG4gICAgICB9XG4gICAgICBpZiAobGV2ZWwgPT09IDEpIHtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudFdpZGdldCAhPSBudWxsICYmIHRoaXMuY3VycmVudFdpZGdldC53aWRnZXRUeXBlID09IEFqZldpZGdldFR5cGUuQ2hhcnQpIHtcbiAgICAgICAgICBtYWluSW5kZXgrKztcbiAgICAgICAgfVxuICAgICAgICBpbmRleCsrO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5sYWJlbFRleHQgPVxuICAgICAgICAgIHRoaXMuX2RhdGFzZXRbbWFpbkluZGV4XSAmJiB0aGlzLl9kYXRhc2V0W21haW5JbmRleF1baW5kZXhdLmxhYmVsIHx8ICcnO1xuICAgICAgLyogdGhpcy5kaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuZm9ybXVsYSA9XG4gICAgICAgIHRoaXMuX2RhdGFzZXRbbWFpbkluZGV4XSAmJlxuICAgICAgICB0aGlzLl9kYXRhc2V0W21haW5JbmRleF1baW5kZXhdLmZvcm11bGEuZm9ybXVsYSB8fCAnJzsgKi9cbiAgICAgIHRoaXMuZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmFnZ3JlZ2F0aW9uID1cbiAgICAgICAgICB0aGlzLl9kYXRhc2V0W21haW5JbmRleF0gJiYgdGhpcy5fZGF0YXNldFttYWluSW5kZXhdW2luZGV4XS5hZ2dyZWdhdGlvbi5hZ2dyZWdhdGlvbiB8fFxuICAgICAgICAgIEFqZkFnZ3JlZ2F0aW9uVHlwZS5Ob25lO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5sYWJlbFRleHQgPSAnJztcbiAgICAgIHRoaXMuZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmZvcm11bGEgPSAnJztcbiAgICAgIHRoaXMuZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmFnZ3JlZ2F0aW9uID0gMDtcbiAgICB9XG5cbiAgICAvLyB0aGlzLmRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5mb3Jtc1ZhcmlhYmxlcyA9IHRoaXMuZm9ybXNWYXJpYWJsZXM7XG4gICAgdGhpcy5kaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuY3VycmVudFdpZGdldCA9IDxBamZEYXRhV2lkZ2V0PnRoaXMuY3VycmVudFdpZGdldDtcbiAgICB0aGlzLmRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5sZXZlbCA9IGxldmVsO1xuICAgIHRoaXMuZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLm1haW5JbmRleCA9IG1haW5JbmRleDtcbiAgICB0aGlzLmRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5pbmRleCA9IGluZGV4O1xuICAgIHRoaXMuZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmluaXQgPSBmYWxzZTtcbiAgfVxuXG4gIG9wZW5EaWFsb2dBZGRNYWluRGF0YSgpIHtcbiAgICB0aGlzLm9wZW5EaWFsb2coMCwgLTEsIC0xLCBmYWxzZSk7XG4gIH1cblxuICBvcGVuRGlhbG9nQ2hhcnRFZGl0TWFpbkRhdGEoKSB7XG4gICAgdGhpcy5vcGVuRGlhbG9nKDAsIDAsIHRoaXMuY3VycmVudE1haW5EYXRhSW5kZXgsIHRydWUpO1xuICB9XG5cbiAgb3BlbkRpYWxvZ1RhYmxlRWRpdE1haW5EYXRhKCkge1xuICAgIHRoaXMub3BlbkRpYWxvZygwLCB0aGlzLmN1cnJlbnRNYWluRGF0YUluZGV4LCAwLCB0cnVlKTtcbiAgfVxuXG4gIG9wZW5EaWFsb2dDaGFydEFkZERhdGFzZXQoKSB7XG4gICAgdGhpcy5vcGVuRGlhbG9nKDEsIC0xLCAtMSwgZmFsc2UpO1xuICB9XG4gIG9wZW5EaWFsb2dUYWJsZUFkZERhdGFzZXQoKSB7XG4gICAgdGhpcy5vcGVuRGlhbG9nKDEsIHRoaXMuY3VycmVudE1haW5EYXRhSW5kZXgsIC0xLCBmYWxzZSk7XG4gIH1cbiAgb3BlbkRpYWxvZ0NoYXJ0QWRkRGF0YU9mRGF0YXNldCgpIHtcbiAgICB0aGlzLm9wZW5EaWFsb2coMSwgdGhpcy5jdXJyZW50TWFpbkRhdGFJbmRleCwgLTEsIGZhbHNlKTtcbiAgfVxuICBvcGVuRGlhbG9nQ2hhcnRFZGl0RGF0YXNldCgpIHtcbiAgICB0aGlzLm9wZW5EaWFsb2coMSwgdGhpcy5jdXJyZW50TWFpbkRhdGFJbmRleCwgLTEsIHRydWUpO1xuICB9XG4gIG9wZW5EaWFsb2dUYWJsZUVkaXREYXRhc2V0KGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLm9wZW5EaWFsb2coMSwgdGhpcy5jdXJyZW50TWFpbkRhdGFJbmRleCwgaW5kZXgsIHRydWUpO1xuICB9XG4gIG9wZW5EaWFsb2dDaGFydEVkaXREYXRhT2ZEYXRhc2V0KGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLm9wZW5EaWFsb2coMSwgdGhpcy5jdXJyZW50TWFpbkRhdGFJbmRleCwgaW5kZXgsIHRydWUpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fY3VycmVudFdpZGdldFN1Yi51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuX2Zvcm1BbmFseXplclN1Yi51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright (C) Gnucoop soc. coop.
|
|
4
|
+
*
|
|
5
|
+
* This file is part of the Advanced JSON forms (ajf).
|
|
6
|
+
*
|
|
7
|
+
* Advanced JSON forms (ajf) is free software: you can redistribute it and/or
|
|
8
|
+
* modify it under the terms of the GNU Affero General Public License as
|
|
9
|
+
* published by the Free Software Foundation, either version 3 of the License,
|
|
10
|
+
* or (at your option) any later version.
|
|
11
|
+
*
|
|
12
|
+
* Advanced JSON forms (ajf) is distributed in the hope that it will be useful,
|
|
13
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
14
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero
|
|
15
|
+
* General Public License for more details.
|
|
16
|
+
*
|
|
17
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
18
|
+
* along with Advanced JSON forms (ajf).
|
|
19
|
+
* If not, see http://www.gnu.org/licenses/.
|
|
20
|
+
*
|
|
21
|
+
*/
|
|
22
|
+
import { Injectable, Pipe } from '@angular/core';
|
|
23
|
+
export class AjfImageFilterPipe {
|
|
24
|
+
transform(items, args) {
|
|
25
|
+
return items.filter(item => (args.length === 0) || item.info.toLowerCase().includes(args.toLowerCase()));
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
AjfImageFilterPipe.decorators = [
|
|
29
|
+
{ type: Pipe, args: [{ name: 'ajfImageFilter' },] },
|
|
30
|
+
{ type: Injectable }
|
|
31
|
+
];
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21hdGVyaWFsL3JlcG9ydC1idWlsZGVyL2ltYWdlLWZpbHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFFSCxPQUFPLEVBQUMsVUFBVSxFQUFFLElBQUksRUFBZ0IsTUFBTSxlQUFlLENBQUM7QUFJOUQsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixTQUFTLENBQUMsS0FBWSxFQUFFLElBQVM7UUFDL0IsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUNmLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDM0YsQ0FBQzs7O1lBTkYsSUFBSSxTQUFDLEVBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFDO1lBQzdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgKEMpIEdudWNvb3Agc29jLiBjb29wLlxuICpcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBBZHZhbmNlZCBKU09OIGZvcm1zIChhamYpLlxuICpcbiAqIEFkdmFuY2VkIEpTT04gZm9ybXMgKGFqZikgaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yXG4gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXNcbiAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLFxuICogb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBBZHZhbmNlZCBKU09OIGZvcm1zIChhamYpIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBBZmZlcm9cbiAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggQWR2YW5jZWQgSlNPTiBmb3JtcyAoYWpmKS5cbiAqIElmIG5vdCwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8uXG4gKlxuICovXG5cbmltcG9ydCB7SW5qZWN0YWJsZSwgUGlwZSwgUGlwZVRyYW5zZm9ybX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBQaXBlKHtuYW1lOiAnYWpmSW1hZ2VGaWx0ZXInfSlcbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBamZJbWFnZUZpbHRlclBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtKGl0ZW1zOiBhbnlbXSwgYXJnczogYW55KTogYW55IHtcbiAgICByZXR1cm4gaXRlbXMuZmlsdGVyKFxuICAgICAgICBpdGVtID0+IChhcmdzLmxlbmd0aCA9PT0gMCkgfHwgaXRlbS5pbmZvLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoYXJncy50b0xvd2VyQ2FzZSgpKSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright (C) Gnucoop soc. coop.
|
|
4
|
+
*
|
|
5
|
+
* This file is part of the Advanced JSON forms (ajf).
|
|
6
|
+
*
|
|
7
|
+
* Advanced JSON forms (ajf) is free software: you can redistribute it and/or
|
|
8
|
+
* modify it under the terms of the GNU Affero General Public License as
|
|
9
|
+
* published by the Free Software Foundation, either version 3 of the License,
|
|
10
|
+
* or (at your option) any later version.
|
|
11
|
+
*
|
|
12
|
+
* Advanced JSON forms (ajf) is distributed in the hope that it will be useful,
|
|
13
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
14
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero
|
|
15
|
+
* General Public License for more details.
|
|
16
|
+
*
|
|
17
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
18
|
+
* along with Advanced JSON forms (ajf).
|
|
19
|
+
* If not, see http://www.gnu.org/licenses/.
|
|
20
|
+
*
|
|
21
|
+
*/
|
|
22
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
|
|
23
|
+
import { AjfReportBuilderService } from './report-builder-service';
|
|
24
|
+
/**
|
|
25
|
+
* this component handle a group of image object
|
|
26
|
+
* there are 2 types of view
|
|
27
|
+
* ajf-icon and class
|
|
28
|
+
*
|
|
29
|
+
* take a json in input
|
|
30
|
+
* 'icon': 'false', // if true ajf-icon activated
|
|
31
|
+
* 'class': ['flag-icon'], // add class in object style
|
|
32
|
+
* 'prefixClass': 'flag-icon-', // prefix of class contained on data set
|
|
33
|
+
* 'title': 'flags', title of data set
|
|
34
|
+
* 'data': [
|
|
35
|
+
* {
|
|
36
|
+
* 'class': 'dz', strind added on prefix
|
|
37
|
+
* 'info': 'Algeria' info related to object (exploit on toolTip)
|
|
38
|
+
* }
|
|
39
|
+
* ]
|
|
40
|
+
* };
|
|
41
|
+
*
|
|
42
|
+
* @export
|
|
43
|
+
*/
|
|
44
|
+
export class AjfReportBuilderImageGroup {
|
|
45
|
+
constructor(_service) {
|
|
46
|
+
this._service = _service;
|
|
47
|
+
this._icon = null;
|
|
48
|
+
this._classes = '';
|
|
49
|
+
this.open = false;
|
|
50
|
+
this.valueToSearch = '';
|
|
51
|
+
/**
|
|
52
|
+
* this event is fired when the user click on formula button on quill editor rool barƒ
|
|
53
|
+
*
|
|
54
|
+
* @memberof QuillEditorComponent
|
|
55
|
+
*/
|
|
56
|
+
this.formulaClick = new EventEmitter();
|
|
57
|
+
}
|
|
58
|
+
get icon() {
|
|
59
|
+
return this._icon;
|
|
60
|
+
}
|
|
61
|
+
get classes() {
|
|
62
|
+
return this._classes;
|
|
63
|
+
}
|
|
64
|
+
setIcon(fontSet, fontIcon) {
|
|
65
|
+
this._icon = { fontSet, fontIcon };
|
|
66
|
+
this._service.setIcon(this._icon);
|
|
67
|
+
}
|
|
68
|
+
setFlag(value) {
|
|
69
|
+
this._classes = value;
|
|
70
|
+
this._service.setFlag(value);
|
|
71
|
+
}
|
|
72
|
+
setSearch(value) {
|
|
73
|
+
this.valueToSearch = value.currentTarget.value;
|
|
74
|
+
}
|
|
75
|
+
emitFormula() {
|
|
76
|
+
this.formulaClick.emit();
|
|
77
|
+
}
|
|
78
|
+
getFlag(value) {
|
|
79
|
+
let returnValue = '';
|
|
80
|
+
for (let i = 0; i < this.data.class.length; i++) {
|
|
81
|
+
returnValue += this.data.class[i] + ' ';
|
|
82
|
+
}
|
|
83
|
+
returnValue += this.data.prefixClass + value;
|
|
84
|
+
return returnValue;
|
|
85
|
+
}
|
|
86
|
+
toggle() {
|
|
87
|
+
this.open = !this.open;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
AjfReportBuilderImageGroup.decorators = [
|
|
91
|
+
{ type: Component, args: [{
|
|
92
|
+
selector: 'ajf-image-group',
|
|
93
|
+
template: "<ng-template [ngIf]=\"data != null\">\n <button mat-button (click)=\"toggle()\" style=\"width:100%\">{{data.title}}</button>\n <ng-template [ngIf]=\"open\">\n <button mat-button (click)=\"emitFormula()\">Set formula</button>\n <mat-card *ngIf=\"data.icon === 'true'\">\n <mat-card-header>\n {{data.title}}\n </mat-card-header>\n <mat-card-content>\n <mat-grid-list cols=\"3\" rowHeight=\"100px\">\n <ng-container *ngFor=\"let value of data.data\">\n <mat-grid-tile *ngFor=\"let icon of value.icons\" [colspan]=\"1\" [rowspan]=\"1\">\n <button style=\"height:100%\" (click)=\"setIcon(value.name, icon.name)\" [matTooltip]=\"icon.label\" matTooltipPosition=\"above\" mat-button>\n <mat-icon\n [fontSet]=\"value.name\"\n [fontIcon]=\"icon.name\">\n </mat-icon>\n </button>\n </mat-grid-tile>\n </ng-container>\n </mat-grid-list>\n </mat-card-content>\n </mat-card>\n <mat-card *ngIf=\"data.icon === 'false'\">\n <mat-card-header>\n <mat-card-title>\n {{data.title}}\n </mat-card-title>\n <mat-card-subtitle>\n <mat-form-field>\n <input matInput placeholder=\"{{data.title}} to search\" [(ngModel)]=\"valueToSearch\">\n </mat-form-field>\n </mat-card-subtitle>\n </mat-card-header>\n <mat-card-content>\n <div class=\"ajf-image-group-container\">\n <mat-grid-list cols=\"3\">\n <mat-grid-tile *ngFor=\"let value of data.data | ajfImageFilter: valueToSearch\" [colspan]=\"1\" [rowspan]=\"1\">\n <button style=\"height:100%\" (click)=\"setFlag(getFlag(value.class))\" matTooltip=\"{{value.info}}\" [matTooltipPosition]=\"'above'\" mat-button>\n <span class={{getFlag(value.class)}} style=\"width: 100%;height: 100%;\"></span>\n </button>\n </mat-grid-tile>\n </mat-grid-list>\n </div>\n </mat-card-content>\n </mat-card>\n <ajf-report-builder-forms-analyzer></ajf-report-builder-forms-analyzer>\n </ng-template>\n</ng-template>\n",
|
|
94
|
+
encapsulation: ViewEncapsulation.None,
|
|
95
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
96
|
+
styles: ["ajf-image-group mat-grid-list{height:300px !important;overflow-y:auto}ajf-image-group .mat-grid-list{height:300px !important}ajf-image-group mat-card>mat-card-content>.ajf-image-group-container{overflow-y:scroll;height:300px}ajf-image-group mat-icon{font-size:30px}\n"]
|
|
97
|
+
},] }
|
|
98
|
+
];
|
|
99
|
+
AjfReportBuilderImageGroup.ctorParameters = () => [
|
|
100
|
+
{ type: AjfReportBuilderService }
|
|
101
|
+
];
|
|
102
|
+
AjfReportBuilderImageGroup.propDecorators = {
|
|
103
|
+
data: [{ type: Input }],
|
|
104
|
+
formulaClick: [{ type: Output }]
|
|
105
|
+
};
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZ3JvdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbWF0ZXJpYWwvcmVwb3J0LWJ1aWxkZXIvaW1hZ2UtZ3JvdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBRUgsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04saUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBRWpFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJHO0FBUUgsTUFBTSxPQUFPLDBCQUEwQjtJQXVCckMsWUFBb0IsUUFBaUM7UUFBakMsYUFBUSxHQUFSLFFBQVEsQ0FBeUI7UUF0QjdDLFVBQUssR0FBNkMsSUFBSSxDQUFDO1FBQ3ZELGFBQVEsR0FBVyxFQUFFLENBQUM7UUFTOUIsU0FBSSxHQUFZLEtBQUssQ0FBQztRQUN0QixrQkFBYSxHQUFXLEVBQUUsQ0FBQztRQUkzQjs7OztXQUlHO1FBQ2dCLGlCQUFZLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7SUFFckIsQ0FBQztJQW5CekQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFDRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQWlCRCxPQUFPLENBQUMsT0FBZSxFQUFFLFFBQWdCO1FBQ3ZDLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBQyxPQUFPLEVBQUUsUUFBUSxFQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBYTtRQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQVU7UUFDbEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztJQUNqRCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFhO1FBQ25CLElBQUksV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUVyQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQy9DLFdBQVcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7U0FDekM7UUFFRCxXQUFXLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQzdDLE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDekIsQ0FBQzs7O1lBaEVGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2dCQUMzQixncUVBQStCO2dCQUUvQixhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtnQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2FBQ2hEOzs7WUE1Qk8sdUJBQXVCOzs7bUJBMkM1QixLQUFLOzJCQU9MLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgKEMpIEdudWNvb3Agc29jLiBjb29wLlxuICpcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBBZHZhbmNlZCBKU09OIGZvcm1zIChhamYpLlxuICpcbiAqIEFkdmFuY2VkIEpTT04gZm9ybXMgKGFqZikgaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yXG4gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXNcbiAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLFxuICogb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBBZHZhbmNlZCBKU09OIGZvcm1zIChhamYpIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBBZmZlcm9cbiAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggQWR2YW5jZWQgSlNPTiBmb3JtcyAoYWpmKS5cbiAqIElmIG5vdCwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8uXG4gKlxuICovXG5cbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7QWpmUmVwb3J0QnVpbGRlclNlcnZpY2V9IGZyb20gJy4vcmVwb3J0LWJ1aWxkZXItc2VydmljZSc7XG5cbi8qKlxuICogdGhpcyBjb21wb25lbnQgaGFuZGxlIGEgZ3JvdXAgb2YgaW1hZ2Ugb2JqZWN0XG4gKiB0aGVyZSBhcmUgMiB0eXBlcyBvZiB2aWV3XG4gKiAgYWpmLWljb24gYW5kIGNsYXNzXG4gKlxuICogdGFrZSBhIGpzb24gaW4gaW5wdXRcbiAqICAnaWNvbic6ICdmYWxzZScsIC8vIGlmIHRydWUgYWpmLWljb24gYWN0aXZhdGVkXG4gKiAgJ2NsYXNzJzogWydmbGFnLWljb24nXSwgLy8gYWRkIGNsYXNzIGluIG9iamVjdCBzdHlsZVxuICogICdwcmVmaXhDbGFzcyc6ICdmbGFnLWljb24tJywgLy8gcHJlZml4IG9mIGNsYXNzIGNvbnRhaW5lZCBvbiBkYXRhIHNldFxuICogICd0aXRsZSc6ICdmbGFncycsIHRpdGxlIG9mIGRhdGEgc2V0XG4gKiAgJ2RhdGEnOiBbXG4gKiAgICB7XG4gKiAgICAgICdjbGFzcyc6ICdkeicsIHN0cmluZCBhZGRlZCBvbiBwcmVmaXhcbiAqICAgICAgJ2luZm8nOiAnQWxnZXJpYScgaW5mbyByZWxhdGVkIHRvIG9iamVjdCAoZXhwbG9pdCBvbiB0b29sVGlwKVxuICogICAgfVxuICogIF1cbiAqIH07XG4gKlxuICogQGV4cG9ydFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhamYtaW1hZ2UtZ3JvdXAnLFxuICB0ZW1wbGF0ZVVybDogJ2ltYWdlLWdyb3VwLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnaW1hZ2UtZ3JvdXAuY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEFqZlJlcG9ydEJ1aWxkZXJJbWFnZUdyb3VwIHtcbiAgcHJpdmF0ZSBfaWNvbjoge2ZvbnRTZXQ6IHN0cmluZywgZm9udEljb246IHN0cmluZ318bnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX2NsYXNzZXM6IHN0cmluZyA9ICcnO1xuXG4gIGdldCBpY29uKCk6IHtmb250U2V0OiBzdHJpbmcsIGZvbnRJY29uOiBzdHJpbmd9fG51bGwge1xuICAgIHJldHVybiB0aGlzLl9pY29uO1xuICB9XG4gIGdldCBjbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2NsYXNzZXM7XG4gIH1cblxuICBvcGVuOiBib29sZWFuID0gZmFsc2U7XG4gIHZhbHVlVG9TZWFyY2g6IHN0cmluZyA9ICcnO1xuXG4gIEBJbnB1dCgpIGRhdGE6IGFueTtcblxuICAvKipcbiAgICogdGhpcyBldmVudCBpcyBmaXJlZCB3aGVuIHRoZSB1c2VyIGNsaWNrIG9uIGZvcm11bGEgYnV0dG9uIG9uIHF1aWxsIGVkaXRvciByb29sIGJhcsaSXG4gICAqXG4gICAqIEBtZW1iZXJvZiBRdWlsbEVkaXRvckNvbXBvbmVudFxuICAgKi9cbiAgQE91dHB1dCgpIHJlYWRvbmx5IGZvcm11bGFDbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9zZXJ2aWNlOiBBamZSZXBvcnRCdWlsZGVyU2VydmljZSkge31cblxuXG4gIHNldEljb24oZm9udFNldDogc3RyaW5nLCBmb250SWNvbjogc3RyaW5nKSB7XG4gICAgdGhpcy5faWNvbiA9IHtmb250U2V0LCBmb250SWNvbn07XG4gICAgdGhpcy5fc2VydmljZS5zZXRJY29uKHRoaXMuX2ljb24pO1xuICB9XG5cbiAgc2V0RmxhZyh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fY2xhc3NlcyA9IHZhbHVlO1xuICAgIHRoaXMuX3NlcnZpY2Uuc2V0RmxhZyh2YWx1ZSk7XG4gIH1cblxuICBzZXRTZWFyY2godmFsdWU6IGFueSkge1xuICAgIHRoaXMudmFsdWVUb1NlYXJjaCA9IHZhbHVlLmN1cnJlbnRUYXJnZXQudmFsdWU7XG4gIH1cblxuICBlbWl0Rm9ybXVsYSgpIHtcbiAgICB0aGlzLmZvcm11bGFDbGljay5lbWl0KCk7XG4gIH1cblxuICBnZXRGbGFnKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBsZXQgcmV0dXJuVmFsdWUgPSAnJztcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5kYXRhLmNsYXNzLmxlbmd0aDsgaSsrKSB7XG4gICAgICByZXR1cm5WYWx1ZSArPSB0aGlzLmRhdGEuY2xhc3NbaV0gKyAnICc7XG4gICAgfVxuXG4gICAgcmV0dXJuVmFsdWUgKz0gdGhpcy5kYXRhLnByZWZpeENsYXNzICsgdmFsdWU7XG4gICAgcmV0dXJuIHJldHVyblZhbHVlO1xuICB9XG5cbiAgdG9nZ2xlKCkge1xuICAgIHRoaXMub3BlbiA9ICF0aGlzLm9wZW47XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
export { AjfReportBuilderColumn as ɵgc_ajf_src_material_report_builder_report_builder_c } from './column';
|
|
6
|
+
export { AjfReportBuilderConditionEditor as ɵgc_ajf_src_material_report_builder_report_builder_d } from './condition-editor';
|
|
7
|
+
export { AjfReportBuilderContent as ɵgc_ajf_src_material_report_builder_report_builder_e } from './content';
|
|
8
|
+
export { AjfReportBuilderCustomWidgetDialog as ɵgc_ajf_src_material_report_builder_report_builder_f } from './custom-widget-dialog';
|
|
9
|
+
export { AjfReportBuilderCustomWidgetToolbarButton as ɵgc_ajf_src_material_report_builder_report_builder_h } from './custom-widget-toolbar-button';
|
|
10
|
+
export { AjfReportBuilderCustomWidgetsToolbar as ɵgc_ajf_src_material_report_builder_report_builder_g } from './custom-widgets-toolbar';
|
|
11
|
+
export { AjfReportBuilderFormsAnalyzer as ɵgc_ajf_src_material_report_builder_report_builder_i } from './forms-analyzer';
|
|
12
|
+
export { AjfReportBuilderFormsAnalyzerDialog as ɵgc_ajf_src_material_report_builder_report_builder_j } from './forms-analyzer-dialog';
|
|
13
|
+
export { AjfImageFilterPipe as ɵgc_ajf_src_material_report_builder_report_builder_a } from './image-filter';
|
|
14
|
+
export { AjfReportBuilderImageGroup as ɵgc_ajf_src_material_report_builder_report_builder_k } from './image-group';
|
|
15
|
+
export { AjfReportBuilderProperties as ɵgc_ajf_src_material_report_builder_report_builder_l } from './properties';
|
|
16
|
+
export { AjfQuillEditor as ɵgc_ajf_src_material_report_builder_report_builder_b } from './quill-editor';
|
|
17
|
+
export { AjfReportBuilderRendererWidget as ɵgc_ajf_src_material_report_builder_report_builder_m } from './renderer-widget';
|
|
18
|
+
export { AjfReportBuilderThemeColor as ɵgc_ajf_src_material_report_builder_report_builder_n } from './theme-color';
|
|
19
|
+
export { AjfReportBuilderThemeColorDialog as ɵgc_ajf_src_material_report_builder_report_builder_o } from './theme-color-dialog';
|
|
20
|
+
export { AjfReportBuilderToolbar as ɵgc_ajf_src_material_report_builder_report_builder_p } from './toolbar';
|
|
21
|
+
export { AjfReportBuilderToolbarDialog as ɵgc_ajf_src_material_report_builder_report_builder_q } from './toolbar-dialog';
|
|
22
|
+
export { AjfReportBuilderWidgetToolbarButton as ɵgc_ajf_src_material_report_builder_report_builder_t } from './widget-toolbar-button';
|
|
23
|
+
export { AjfReportBuilderWidgetsRowButtons as ɵgc_ajf_src_material_report_builder_report_builder_r } from './widgets-row-buttons';
|
|
24
|
+
export { AjfReportBuilderWidgetsToolbar as ɵgc_ajf_src_material_report_builder_report_builder_s } from './widgets-toolbar';
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbWF0ZXJpYWwvcmVwb3J0LWJ1aWxkZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQztBQUU3QixPQUFPLEVBQUMsc0JBQXNCLElBQUksb0RBQW9ELEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDeEcsT0FBTyxFQUFDLCtCQUErQixJQUFJLG9EQUFvRCxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDM0gsT0FBTyxFQUFDLHVCQUF1QixJQUFJLG9EQUFvRCxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBQzFHLE9BQU8sRUFBQyxrQ0FBa0MsSUFBSSxvREFBb0QsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ2xJLE9BQU8sRUFBQyx5Q0FBeUMsSUFBSSxvREFBb0QsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ2pKLE9BQU8sRUFBQyxvQ0FBb0MsSUFBSSxvREFBb0QsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3RJLE9BQU8sRUFBQyw2QkFBNkIsSUFBSSxvREFBb0QsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZILE9BQU8sRUFBQyxtQ0FBbUMsSUFBSSxvREFBb0QsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3BJLE9BQU8sRUFBQyxrQkFBa0IsSUFBSSxvREFBb0QsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzFHLE9BQU8sRUFBQywwQkFBMEIsSUFBSSxvREFBb0QsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUMsMEJBQTBCLElBQUksb0RBQW9ELEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDaEgsT0FBTyxFQUFDLGNBQWMsSUFBSSxvREFBb0QsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3RHLE9BQU8sRUFBQyw4QkFBOEIsSUFBSSxvREFBb0QsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ3pILE9BQU8sRUFBQywwQkFBMEIsSUFBSSxvREFBb0QsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUMsZ0NBQWdDLElBQUksb0RBQW9ELEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUM5SCxPQUFPLEVBQUMsdUJBQXVCLElBQUksb0RBQW9ELEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDMUcsT0FBTyxFQUFDLDZCQUE2QixJQUFJLG9EQUFvRCxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDdkgsT0FBTyxFQUFDLG1DQUFtQyxJQUFJLG9EQUFvRCxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDcEksT0FBTyxFQUFDLGlDQUFpQyxJQUFJLG9EQUFvRCxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDaEksT0FBTyxFQUFDLDhCQUE4QixJQUFJLG9EQUFvRCxFQUFDLE1BQU0sbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG5cbmV4cG9ydCB7QWpmUmVwb3J0QnVpbGRlckNvbHVtbiBhcyDJtWdjX2FqZl9zcmNfbWF0ZXJpYWxfcmVwb3J0X2J1aWxkZXJfcmVwb3J0X2J1aWxkZXJfY30gZnJvbSAnLi9jb2x1bW4nO1xuZXhwb3J0IHtBamZSZXBvcnRCdWlsZGVyQ29uZGl0aW9uRWRpdG9yIGFzIMm1Z2NfYWpmX3NyY19tYXRlcmlhbF9yZXBvcnRfYnVpbGRlcl9yZXBvcnRfYnVpbGRlcl9kfSBmcm9tICcuL2NvbmRpdGlvbi1lZGl0b3InO1xuZXhwb3J0IHtBamZSZXBvcnRCdWlsZGVyQ29udGVudCBhcyDJtWdjX2FqZl9zcmNfbWF0ZXJpYWxfcmVwb3J0X2J1aWxkZXJfcmVwb3J0X2J1aWxkZXJfZX0gZnJvbSAnLi9jb250ZW50JztcbmV4cG9ydCB7QWpmUmVwb3J0QnVpbGRlckN1c3RvbVdpZGdldERpYWxvZyBhcyDJtWdjX2FqZl9zcmNfbWF0ZXJpYWxfcmVwb3J0X2J1aWxkZXJfcmVwb3J0X2J1aWxkZXJfZn0gZnJvbSAnLi9jdXN0b20td2lkZ2V0LWRpYWxvZyc7XG5leHBvcnQge0FqZlJlcG9ydEJ1aWxkZXJDdXN0b21XaWRnZXRUb29sYmFyQnV0dG9uIGFzIMm1Z2NfYWpmX3NyY19tYXRlcmlhbF9yZXBvcnRfYnVpbGRlcl9yZXBvcnRfYnVpbGRlcl9ofSBmcm9tICcuL2N1c3RvbS13aWRnZXQtdG9vbGJhci1idXR0b24nO1xuZXhwb3J0IHtBamZSZXBvcnRCdWlsZGVyQ3VzdG9tV2lkZ2V0c1Rvb2xiYXIgYXMgybVnY19hamZfc3JjX21hdGVyaWFsX3JlcG9ydF9idWlsZGVyX3JlcG9ydF9idWlsZGVyX2d9IGZyb20gJy4vY3VzdG9tLXdpZGdldHMtdG9vbGJhcic7XG5leHBvcnQge0FqZlJlcG9ydEJ1aWxkZXJGb3Jtc0FuYWx5emVyIGFzIMm1Z2NfYWpmX3NyY19tYXRlcmlhbF9yZXBvcnRfYnVpbGRlcl9yZXBvcnRfYnVpbGRlcl9pfSBmcm9tICcuL2Zvcm1zLWFuYWx5emVyJztcbmV4cG9ydCB7QWpmUmVwb3J0QnVpbGRlckZvcm1zQW5hbHl6ZXJEaWFsb2cgYXMgybVnY19hamZfc3JjX21hdGVyaWFsX3JlcG9ydF9idWlsZGVyX3JlcG9ydF9idWlsZGVyX2p9IGZyb20gJy4vZm9ybXMtYW5hbHl6ZXItZGlhbG9nJztcbmV4cG9ydCB7QWpmSW1hZ2VGaWx0ZXJQaXBlIGFzIMm1Z2NfYWpmX3NyY19tYXRlcmlhbF9yZXBvcnRfYnVpbGRlcl9yZXBvcnRfYnVpbGRlcl9hfSBmcm9tICcuL2ltYWdlLWZpbHRlcic7XG5leHBvcnQge0FqZlJlcG9ydEJ1aWxkZXJJbWFnZUdyb3VwIGFzIMm1Z2NfYWpmX3NyY19tYXRlcmlhbF9yZXBvcnRfYnVpbGRlcl9yZXBvcnRfYnVpbGRlcl9rfSBmcm9tICcuL2ltYWdlLWdyb3VwJztcbmV4cG9ydCB7QWpmUmVwb3J0QnVpbGRlclByb3BlcnRpZXMgYXMgybVnY19hamZfc3JjX21hdGVyaWFsX3JlcG9ydF9idWlsZGVyX3JlcG9ydF9idWlsZGVyX2x9IGZyb20gJy4vcHJvcGVydGllcyc7XG5leHBvcnQge0FqZlF1aWxsRWRpdG9yIGFzIMm1Z2NfYWpmX3NyY19tYXRlcmlhbF9yZXBvcnRfYnVpbGRlcl9yZXBvcnRfYnVpbGRlcl9ifSBmcm9tICcuL3F1aWxsLWVkaXRvcic7XG5leHBvcnQge0FqZlJlcG9ydEJ1aWxkZXJSZW5kZXJlcldpZGdldCBhcyDJtWdjX2FqZl9zcmNfbWF0ZXJpYWxfcmVwb3J0X2J1aWxkZXJfcmVwb3J0X2J1aWxkZXJfbX0gZnJvbSAnLi9yZW5kZXJlci13aWRnZXQnO1xuZXhwb3J0IHtBamZSZXBvcnRCdWlsZGVyVGhlbWVDb2xvciBhcyDJtWdjX2FqZl9zcmNfbWF0ZXJpYWxfcmVwb3J0X2J1aWxkZXJfcmVwb3J0X2J1aWxkZXJfbn0gZnJvbSAnLi90aGVtZS1jb2xvcic7XG5leHBvcnQge0FqZlJlcG9ydEJ1aWxkZXJUaGVtZUNvbG9yRGlhbG9nIGFzIMm1Z2NfYWpmX3NyY19tYXRlcmlhbF9yZXBvcnRfYnVpbGRlcl9yZXBvcnRfYnVpbGRlcl9vfSBmcm9tICcuL3RoZW1lLWNvbG9yLWRpYWxvZyc7XG5leHBvcnQge0FqZlJlcG9ydEJ1aWxkZXJUb29sYmFyIGFzIMm1Z2NfYWpmX3NyY19tYXRlcmlhbF9yZXBvcnRfYnVpbGRlcl9yZXBvcnRfYnVpbGRlcl9wfSBmcm9tICcuL3Rvb2xiYXInO1xuZXhwb3J0IHtBamZSZXBvcnRCdWlsZGVyVG9vbGJhckRpYWxvZyBhcyDJtWdjX2FqZl9zcmNfbWF0ZXJpYWxfcmVwb3J0X2J1aWxkZXJfcmVwb3J0X2J1aWxkZXJfcX0gZnJvbSAnLi90b29sYmFyLWRpYWxvZyc7XG5leHBvcnQge0FqZlJlcG9ydEJ1aWxkZXJXaWRnZXRUb29sYmFyQnV0dG9uIGFzIMm1Z2NfYWpmX3NyY19tYXRlcmlhbF9yZXBvcnRfYnVpbGRlcl9yZXBvcnRfYnVpbGRlcl90fSBmcm9tICcuL3dpZGdldC10b29sYmFyLWJ1dHRvbic7XG5leHBvcnQge0FqZlJlcG9ydEJ1aWxkZXJXaWRnZXRzUm93QnV0dG9ucyBhcyDJtWdjX2FqZl9zcmNfbWF0ZXJpYWxfcmVwb3J0X2J1aWxkZXJfcmVwb3J0X2J1aWxkZXJfcn0gZnJvbSAnLi93aWRnZXRzLXJvdy1idXR0b25zJztcbmV4cG9ydCB7QWpmUmVwb3J0QnVpbGRlcldpZGdldHNUb29sYmFyIGFzIMm1Z2NfYWpmX3NyY19tYXRlcmlhbF9yZXBvcnRfYnVpbGRlcl9yZXBvcnRfYnVpbGRlcl9zfSBmcm9tICcuL3dpZGdldHMtdG9vbGJhcic7Il19
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright (C) Gnucoop soc. coop.
|
|
4
|
+
*
|
|
5
|
+
* This file is part of the Advanced JSON forms (ajf).
|
|
6
|
+
*
|
|
7
|
+
* Advanced JSON forms (ajf) is free software: you can redistribute it and/or
|
|
8
|
+
* modify it under the terms of the GNU Affero General Public License as
|
|
9
|
+
* published by the Free Software Foundation, either version 3 of the License,
|
|
10
|
+
* or (at your option) any later version.
|
|
11
|
+
*
|
|
12
|
+
* Advanced JSON forms (ajf) is distributed in the hope that it will be useful,
|
|
13
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
14
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero
|
|
15
|
+
* General Public License for more details.
|
|
16
|
+
*
|
|
17
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
18
|
+
* along with Advanced JSON forms (ajf).
|
|
19
|
+
* If not, see http://www.gnu.org/licenses/.
|
|
20
|
+
*
|
|
21
|
+
*/
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21hdGVyaWFsL3JlcG9ydC1idWlsZGVyL21vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgKEMpIEdudWNvb3Agc29jLiBjb29wLlxuICpcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBBZHZhbmNlZCBKU09OIGZvcm1zIChhamYpLlxuICpcbiAqIEFkdmFuY2VkIEpTT04gZm9ybXMgKGFqZikgaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yXG4gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXNcbiAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLFxuICogb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBBZHZhbmNlZCBKU09OIGZvcm1zIChhamYpIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBBZmZlcm9cbiAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggQWR2YW5jZWQgSlNPTiBmb3JtcyAoYWpmKS5cbiAqIElmIG5vdCwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8uXG4gKlxuICovXG5cbmltcG9ydCB7QWpmRmllbGRUeXBlLCBBamZOb2RlfSBmcm9tICdAYWpmL2NvcmUvZm9ybXMnO1xuaW1wb3J0IHtBamZTdHlsZXMsIEFqZldpZGdldH0gZnJvbSAnQGFqZi9jb3JlL3JlcG9ydHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFqZldpZGdldHNDb250YWluZXIge1xuICB3aWRnZXRzOiBBamZXaWRnZXRbXTtcbiAgc3R5bGVzOiBBamZTdHlsZXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWpmRm9ybVZhcmlhYmxlcyB7XG4gIG5vZGVzOiBBamZOb2RlW107XG4gIGxhYmVsczogc3RyaW5nW107XG4gIG5hbWVzOiBzdHJpbmdbXTtcbiAgdHlwZXM6IEFqZkZpZWxkVHlwZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFqZlJlcG9ydEljb24ge1xuICBuYW1lOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWpmUmVwb3J0SWNvbnMge1xuICBbZm9udFNldDogc3RyaW5nXTogQWpmUmVwb3J0SWNvbltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFqZlJlcG9ydHNDb25maWcge1xuICBpY29ucz86IEFqZlJlcG9ydEljb25zO1xufVxuIl19
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright (C) Gnucoop soc. coop.
|
|
4
|
+
*
|
|
5
|
+
* This file is part of the Advanced JSON forms (ajf).
|
|
6
|
+
*
|
|
7
|
+
* Advanced JSON forms (ajf) is free software: you can redistribute it and/or
|
|
8
|
+
* modify it under the terms of the GNU Affero General Public License as
|
|
9
|
+
* published by the Free Software Foundation, either version 3 of the License,
|
|
10
|
+
* or (at your option) any later version.
|
|
11
|
+
*
|
|
12
|
+
* Advanced JSON forms (ajf) is distributed in the hope that it will be useful,
|
|
13
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
14
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero
|
|
15
|
+
* General Public License for more details.
|
|
16
|
+
*
|
|
17
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
18
|
+
* along with Advanced JSON forms (ajf).
|
|
19
|
+
* If not, see http://www.gnu.org/licenses/.
|
|
20
|
+
*
|
|
21
|
+
*/
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tYXRlcmlhbC9yZXBvcnQtYnVpbGRlci9vcGVyYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAoQykgR251Y29vcCBzb2MuIGNvb3AuXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFkdmFuY2VkIEpTT04gZm9ybXMgKGFqZikuXG4gKlxuICogQWR2YW5jZWQgSlNPTiBmb3JtcyAoYWpmKSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3JcbiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhc1xuICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsXG4gKiBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIEFkdmFuY2VkIEpTT04gZm9ybXMgKGFqZikgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEFmZmVyb1xuICogR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBBZHZhbmNlZCBKU09OIGZvcm1zIChhamYpLlxuICogSWYgbm90LCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLy5cbiAqXG4gKi9cblxuaW1wb3J0IHtBamZGb3JtfSBmcm9tICdAYWpmL2NvcmUvZm9ybXMnO1xuaW1wb3J0IHtBamZDdXN0b21XaWRnZXQsIEFqZlN0eWxlcywgQWpmV2lkZ2V0fSBmcm9tICdAYWpmL2NvcmUvcmVwb3J0cyc7XG5pbXBvcnQge0FqZkZvcm1WYXJpYWJsZXMsIEFqZldpZGdldHNDb250YWluZXJ9IGZyb20gJy4vbW9kZWxzJztcblxuZXhwb3J0IGludGVyZmFjZSBBamZXaWRnZXRzT3BlcmF0aW9uIHtcbiAgKHdpZGdldHM6IEFqZldpZGdldHNDb250YWluZXIpOiBBamZXaWRnZXRzQ29udGFpbmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFqZkN1c3RvbVdpZGdldHNPcGVyYXRpb24ge1xuICAod2lkZ2V0czogQWpmQ3VzdG9tV2lkZ2V0W10pOiBBamZDdXN0b21XaWRnZXRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBamZTdHlsZXNPcGVyYXRpb24ge1xuICAoc3R5bGVzOiBBamZTdHlsZXMpOiBBamZTdHlsZXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWpmV2lkZ2V0T3BlcmF0aW9uIHtcbiAgKHdpZGdldDogQWpmV2lkZ2V0fG51bGwpOiBBamZXaWRnZXR8bnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBamZDb2xvck9wZXJhdGlvbiB7XG4gIChjb2xvcnM6IHN0cmluZ1tdKTogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWpmRm9ybVZhcmlhYmxlc09wZXJhdGlvbiB7XG4gICh2YXJpYWJsZXM6IEFqZkZvcm1WYXJpYWJsZXNbXSk6IEFqZkZvcm1WYXJpYWJsZXNbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBamZSZXBvcnRGb3Jtc09wZXJhdGlvbiB7XG4gIChmb3JtczogQWpmRm9ybVtdKTogQWpmRm9ybVtdO1xufVxuIl19
|