@ajf/material 13.0.0-next.2 → 13.0.0-rc.1
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/barcode/barcode-module.d.ts +11 -21
- package/barcode/barcode.d.ts +3 -0
- package/barcode/barcode_public_index.d.ts +4 -0
- package/barcode/index.d.ts +19 -1
- package/barcode/package.json +6 -6
- package/calendar/calendar-module.d.ts +10 -21
- package/calendar/calendar.d.ts +3 -0
- package/calendar/calendar_public_index.d.ts +4 -0
- package/calendar/index.d.ts +19 -1
- package/calendar/package.json +6 -6
- package/checkbox-group/checkbox-group-item.d.ts +3 -0
- package/checkbox-group/checkbox-group-module.d.ts +9 -21
- package/checkbox-group/checkbox-group_public_index.d.ts +4 -0
- package/checkbox-group/index.d.ts +19 -1
- package/checkbox-group/package.json +6 -6
- package/esm2020/barcode/barcode-module.mjs +63 -0
- package/esm2020/barcode/barcode.mjs +51 -0
- package/esm2020/barcode/barcode_public_index.mjs +5 -0
- package/esm2020/barcode/index.mjs +23 -0
- package/{esm2015/barcode/public-api.js → esm2020/barcode/public-api.mjs} +0 -0
- package/esm2020/calendar/calendar-module.mjs +43 -0
- package/esm2020/calendar/calendar.mjs +49 -0
- package/esm2020/calendar/calendar_public_index.mjs +5 -0
- package/esm2020/calendar/index.mjs +23 -0
- package/{esm2015/calendar/public-api.js → esm2020/calendar/public-api.mjs} +0 -0
- package/esm2020/checkbox-group/checkbox-group-item.mjs +51 -0
- package/esm2020/checkbox-group/checkbox-group-module.mjs +42 -0
- package/esm2020/checkbox-group/checkbox-group_public_index.mjs +5 -0
- package/{esm2015/report-builder/image-filter.js → esm2020/checkbox-group/index.mjs} +2 -11
- package/{esm2015/checkbox-group/public-api.js → esm2020/checkbox-group/public-api.mjs} +0 -0
- package/esm2020/form-builder/branch-line.mjs +68 -0
- package/{esm2015/form-builder/choices-origin-data-source.js → esm2020/form-builder/choices-origin-data-source.mjs} +1 -1
- package/esm2020/form-builder/choices-origin-editor-dialog.mjs +40 -0
- package/esm2020/form-builder/choices-origin-editor.mjs +83 -0
- package/esm2020/form-builder/condition-editor-dialog.mjs +38 -0
- package/esm2020/form-builder/condition-editor.mjs +147 -0
- package/esm2020/form-builder/form-builder-module.mjs +179 -0
- package/esm2020/form-builder/form-builder-service.mjs +766 -0
- package/{esm2015/form-builder/form-builder-utils.js → esm2020/form-builder/form-builder-utils.mjs} +4 -3
- package/esm2020/form-builder/form-builder.mjs +180 -0
- package/esm2020/form-builder/form-builder_public_index.mjs +5 -0
- package/esm2020/form-builder/index.mjs +23 -0
- package/esm2020/form-builder/node-entry.mjs +260 -0
- package/esm2020/form-builder/node-properties.mjs +960 -0
- package/esm2020/form-builder/node-type-entry.mjs +46 -0
- package/{esm2015/form-builder/operations.js → esm2020/form-builder/operations.mjs} +0 -0
- package/{esm2015/form-builder/public-api.js → esm2020/form-builder/public-api.mjs} +0 -0
- package/esm2020/form-builder/string-identifier-dialog.mjs +79 -0
- package/esm2020/form-builder/validation-condition-editor-dialog.mjs +41 -0
- package/esm2020/form-builder/warning-condition-editor-dialog.mjs +41 -0
- package/esm2020/forms/barcode-field.mjs +45 -0
- package/esm2020/forms/boolean-field.mjs +45 -0
- package/esm2020/forms/date-field.mjs +45 -0
- package/esm2020/forms/date-input-field.mjs +67 -0
- package/esm2020/forms/empty-field.mjs +43 -0
- package/esm2020/forms/field-service.mjs +116 -0
- package/esm2020/forms/field-warning-dialog.mjs +34 -0
- package/esm2020/forms/field.mjs +42 -0
- package/esm2020/forms/form.mjs +51 -0
- package/esm2020/forms/forms-module.mjs +208 -0
- package/esm2020/forms/forms_public_index.mjs +5 -0
- package/esm2020/forms/index.mjs +23 -0
- package/esm2020/forms/input-field.mjs +46 -0
- package/esm2020/forms/multiple-choice-field.mjs +54 -0
- package/{esm2015/forms/public-api.js → esm2020/forms/public-api.mjs} +0 -0
- package/esm2020/forms/range-field.mjs +46 -0
- package/esm2020/forms/single-choice-field.mjs +53 -0
- package/esm2020/forms/table-field.mjs +45 -0
- package/esm2020/forms/text-field.mjs +47 -0
- package/esm2020/forms/time-field.mjs +45 -0
- package/esm2020/forms/video-url-field.mjs +50 -0
- package/esm2020/forms/warning-alert-service.mjs +22 -0
- package/esm2020/image/image-module.mjs +40 -0
- package/esm2020/image/image.mjs +40 -0
- package/esm2020/image/image_public_index.mjs +5 -0
- package/esm2020/image/index.mjs +23 -0
- package/{esm2015/image/public-api.js → esm2020/image/public-api.mjs} +0 -0
- package/{esm2015/index.js → esm2020/index.mjs} +0 -0
- package/{esm2015/monaco-editor/auto-complete-item-model.js → esm2020/monaco-editor/auto-complete-item-model.mjs} +0 -0
- package/{esm2015/monaco-editor/autocomplete-singleton-model.js → esm2020/monaco-editor/autocomplete-singleton-model.mjs} +3 -2
- package/{esm2015/monaco-editor/editor-language-model.js → esm2020/monaco-editor/editor-language-model.mjs} +0 -0
- package/{esm2015/monaco-editor/editor-options-model.js → esm2020/monaco-editor/editor-options-model.mjs} +1 -1
- package/{esm2015/monaco-editor/editor-scrollbar-options.js → esm2020/monaco-editor/editor-scrollbar-options.mjs} +0 -0
- package/{esm2015/monaco-editor/editor-theme.js → esm2020/monaco-editor/editor-theme.mjs} +0 -0
- package/esm2020/monaco-editor/index.mjs +23 -0
- package/esm2020/monaco-editor/monaco-editor-module.mjs +37 -0
- package/esm2020/monaco-editor/monaco-editor.mjs +451 -0
- package/esm2020/monaco-editor/monaco-editor_public_index.mjs +5 -0
- package/{esm2015/monaco-editor/public-api.js → esm2020/monaco-editor/public-api.mjs} +0 -0
- package/esm2020/node-icon/index.mjs +23 -0
- package/esm2020/node-icon/node-icon-module.mjs +40 -0
- package/esm2020/node-icon/node-icon.mjs +35 -0
- package/esm2020/node-icon/node-icon_public_index.mjs +5 -0
- package/{esm2015/node-icon/public-api.js → esm2020/node-icon/public-api.mjs} +0 -0
- package/esm2020/page-slider/index.mjs +23 -0
- package/esm2020/page-slider/page-slider-module.mjs +59 -0
- package/esm2020/page-slider/page-slider.mjs +42 -0
- package/esm2020/page-slider/page-slider_public_index.mjs +5 -0
- package/{esm2015/page-slider/public-api.js → esm2020/page-slider/public-api.mjs} +0 -0
- package/esm2020/reports/chart-widget.mjs +38 -0
- package/esm2020/reports/formula-widget.mjs +37 -0
- package/esm2020/reports/image-container-widget.mjs +41 -0
- package/esm2020/reports/image-widget.mjs +37 -0
- package/esm2020/reports/index.mjs +23 -0
- package/{esm2015/reports/layout-widget.js → esm2020/reports/layout-widget.mjs} +0 -0
- package/esm2020/reports/map-widget.mjs +37 -0
- package/esm2020/reports/page-break-widget.mjs +37 -0
- package/{esm2015/reports/public-api.js → esm2020/reports/public-api.mjs} +0 -0
- package/esm2020/reports/report.mjs +39 -0
- package/esm2020/reports/reports-module.mjs +112 -0
- package/esm2020/reports/reports_public_index.mjs +5 -0
- package/esm2020/reports/table-widget.mjs +38 -0
- package/esm2020/reports/text-widget.mjs +38 -0
- package/esm2020/reports/widget.mjs +102 -0
- package/{esm2015/report-builder/operations.js → esm2020/time/index.mjs} +2 -2
- package/{esm2015/time/public-api.js → esm2020/time/public-api.mjs} +0 -0
- package/esm2020/time/time-module.mjs +41 -0
- package/esm2020/time/time.mjs +45 -0
- package/esm2020/time/time_public_index.mjs +5 -0
- package/fesm2015/barcode.mjs +162 -0
- package/fesm2015/barcode.mjs.map +1 -0
- package/fesm2015/calendar.mjs +138 -0
- package/fesm2015/calendar.mjs.map +1 -0
- package/fesm2015/checkbox-group.mjs +142 -0
- package/fesm2015/checkbox-group.mjs.map +1 -0
- package/fesm2015/form-builder.mjs +2922 -0
- package/fesm2015/form-builder.mjs.map +1 -0
- package/fesm2015/forms.mjs +1011 -0
- package/fesm2015/forms.mjs.map +1 -0
- package/fesm2015/image.mjs +127 -0
- package/fesm2015/image.mjs.map +1 -0
- package/fesm2015/{material.js → material.mjs} +1 -1
- package/{bundles/material.umd.js.map → fesm2015/material.mjs.map} +1 -1
- package/fesm2015/{monaco-editor.js → monaco-editor.mjs} +179 -124
- package/fesm2015/monaco-editor.mjs.map +1 -0
- package/fesm2015/node-icon.mjs +123 -0
- package/fesm2015/node-icon.mjs.map +1 -0
- package/fesm2015/page-slider.mjs +147 -0
- package/fesm2015/page-slider.mjs.map +1 -0
- package/fesm2015/reports.mjs +551 -0
- package/fesm2015/reports.mjs.map +1 -0
- package/fesm2015/time.mjs +133 -0
- package/fesm2015/time.mjs.map +1 -0
- package/fesm2020/barcode.mjs +162 -0
- package/fesm2020/barcode.mjs.map +1 -0
- package/fesm2020/calendar.mjs +138 -0
- package/fesm2020/calendar.mjs.map +1 -0
- package/fesm2020/checkbox-group.mjs +140 -0
- package/fesm2020/checkbox-group.mjs.map +1 -0
- package/fesm2020/form-builder.mjs +2921 -0
- package/fesm2020/form-builder.mjs.map +1 -0
- package/fesm2020/forms.mjs +985 -0
- package/fesm2020/forms.mjs.map +1 -0
- package/fesm2020/image.mjs +127 -0
- package/fesm2020/image.mjs.map +1 -0
- package/{report-builder/image-filter.d.ts → fesm2020/material.mjs} +9 -4
- package/fesm2020/material.mjs.map +1 -0
- package/fesm2020/monaco-editor.mjs +826 -0
- package/fesm2020/monaco-editor.mjs.map +1 -0
- package/fesm2020/node-icon.mjs +123 -0
- package/fesm2020/node-icon.mjs.map +1 -0
- package/fesm2020/page-slider.mjs +147 -0
- package/fesm2020/page-slider.mjs.map +1 -0
- package/fesm2020/reports.mjs +551 -0
- package/fesm2020/reports.mjs.map +1 -0
- package/fesm2020/time.mjs +133 -0
- package/fesm2020/time.mjs.map +1 -0
- package/form-builder/branch-line.d.ts +3 -0
- package/form-builder/choices-origin-editor-dialog.d.ts +3 -0
- package/form-builder/choices-origin-editor.d.ts +3 -0
- package/form-builder/condition-editor-dialog.d.ts +3 -0
- package/form-builder/condition-editor.d.ts +3 -0
- package/form-builder/form-builder-module.d.ts +41 -21
- package/form-builder/form-builder-service.d.ts +3 -0
- package/form-builder/form-builder.d.ts +3 -0
- package/form-builder/form-builder_public_index.d.ts +4 -0
- package/form-builder/index.d.ts +19 -12
- package/form-builder/node-entry.d.ts +3 -0
- package/form-builder/node-properties.d.ts +3 -0
- package/form-builder/node-type-entry.d.ts +3 -0
- package/form-builder/package.json +6 -6
- package/form-builder/string-identifier-dialog.d.ts +3 -0
- package/form-builder/validation-condition-editor-dialog.d.ts +3 -0
- package/form-builder/warning-condition-editor-dialog.d.ts +3 -0
- package/forms/barcode-field.d.ts +3 -0
- package/forms/boolean-field.d.ts +3 -0
- package/forms/date-field.d.ts +3 -0
- package/forms/date-input-field.d.ts +3 -0
- package/forms/empty-field.d.ts +3 -0
- package/forms/field-service.d.ts +3 -0
- package/forms/field-warning-dialog.d.ts +3 -21
- package/forms/field.d.ts +3 -0
- package/forms/form.d.ts +3 -0
- package/forms/forms-module.d.ts +43 -21
- package/forms/forms_public_index.d.ts +4 -0
- package/forms/index.d.ts +19 -5
- package/forms/input-field.d.ts +3 -0
- package/forms/multiple-choice-field.d.ts +3 -0
- package/forms/package.json +6 -6
- package/forms/range-field.d.ts +3 -0
- package/forms/single-choice-field.d.ts +3 -0
- package/forms/table-field.d.ts +3 -0
- package/forms/text-field.d.ts +3 -0
- package/forms/time-field.d.ts +3 -0
- package/forms/video-url-field.d.ts +3 -0
- package/forms/warning-alert-service.d.ts +3 -0
- package/image/image-module.d.ts +7 -21
- package/image/image.d.ts +3 -0
- package/image/image_public_index.d.ts +4 -0
- package/image/index.d.ts +19 -1
- package/image/package.json +6 -6
- package/monaco-editor/index.d.ts +19 -1
- package/monaco-editor/monaco-editor-module.d.ts +5 -21
- package/monaco-editor/monaco-editor.d.ts +3 -0
- package/monaco-editor/monaco-editor_public_index.d.ts +4 -0
- package/monaco-editor/package.json +6 -6
- package/node-icon/index.d.ts +19 -1
- package/node-icon/node-icon-module.d.ts +7 -21
- package/node-icon/node-icon.d.ts +3 -0
- package/node-icon/node-icon_public_index.d.ts +4 -0
- package/node-icon/package.json +6 -6
- package/package.json +111 -11
- package/page-slider/index.d.ts +19 -1
- package/page-slider/package.json +6 -6
- package/page-slider/page-slider-module.d.ts +10 -21
- package/page-slider/page-slider.d.ts +3 -0
- package/page-slider/page-slider_public_index.d.ts +4 -0
- package/reports/chart-widget.d.ts +3 -0
- package/reports/formula-widget.d.ts +3 -0
- package/reports/image-container-widget.d.ts +3 -0
- package/reports/image-widget.d.ts +3 -0
- package/reports/index.d.ts +19 -1
- package/reports/map-widget.d.ts +3 -0
- package/reports/package.json +6 -6
- package/reports/page-break-widget.d.ts +3 -0
- package/reports/report.d.ts +3 -0
- package/reports/reports-module.d.ts +24 -21
- package/reports/reports_public_index.d.ts +4 -0
- package/reports/table-widget.d.ts +3 -0
- package/reports/text-widget.d.ts +3 -0
- package/reports/widget.d.ts +9 -0
- package/time/index.d.ts +19 -1
- package/time/package.json +6 -6
- package/time/time-module.d.ts +8 -21
- package/time/time.d.ts +3 -0
- package/time/time_public_index.d.ts +4 -0
- package/barcode/index.metadata.json +0 -1
- package/bundles/material-barcode.umd.js +0 -433
- package/bundles/material-barcode.umd.js.map +0 -1
- package/bundles/material-calendar.umd.js +0 -435
- package/bundles/material-calendar.umd.js.map +0 -1
- package/bundles/material-checkbox-group.umd.js +0 -432
- package/bundles/material-checkbox-group.umd.js.map +0 -1
- package/bundles/material-form-builder.umd.js +0 -3558
- package/bundles/material-form-builder.umd.js.map +0 -1
- package/bundles/material-forms.umd.js +0 -968
- package/bundles/material-forms.umd.js.map +0 -1
- package/bundles/material-image.umd.js +0 -420
- package/bundles/material-image.umd.js.map +0 -1
- package/bundles/material-monaco-editor.umd.js +0 -755
- package/bundles/material-monaco-editor.umd.js.map +0 -1
- package/bundles/material-node-icon.umd.js +0 -415
- package/bundles/material-node-icon.umd.js.map +0 -1
- package/bundles/material-page-slider.umd.js +0 -424
- package/bundles/material-page-slider.umd.js.map +0 -1
- package/bundles/material-report-builder.umd.js +0 -5814
- package/bundles/material-report-builder.umd.js.map +0 -1
- package/bundles/material-reports.umd.js +0 -731
- package/bundles/material-reports.umd.js.map +0 -1
- package/bundles/material-time.umd.js +0 -424
- package/bundles/material-time.umd.js.map +0 -1
- package/bundles/material.umd.js +0 -40
- package/calendar/index.metadata.json +0 -1
- package/checkbox-group/index.metadata.json +0 -1
- package/esm2015/barcode/barcode-module.js +0 -50
- package/esm2015/barcode/barcode.externs.js +0 -6
- package/esm2015/barcode/barcode.js +0 -52
- package/esm2015/barcode/index.js +0 -5
- package/esm2015/calendar/calendar-module.js +0 -48
- package/esm2015/calendar/calendar.externs.js +0 -6
- package/esm2015/calendar/calendar.js +0 -55
- package/esm2015/calendar/index.js +0 -5
- package/esm2015/checkbox-group/checkbox-group-item.js +0 -51
- package/esm2015/checkbox-group/checkbox-group-module.js +0 -47
- package/esm2015/checkbox-group/checkbox-group.externs.js +0 -6
- package/esm2015/checkbox-group/index.js +0 -5
- package/esm2015/form-builder/branch-line.js +0 -73
- package/esm2015/form-builder/choices-origin-editor-dialog.js +0 -57
- package/esm2015/form-builder/choices-origin-editor.js +0 -78
- package/esm2015/form-builder/condition-editor-dialog.js +0 -59
- package/esm2015/form-builder/condition-editor.js +0 -143
- package/esm2015/form-builder/form-builder-module.js +0 -96
- package/esm2015/form-builder/form-builder-service.js +0 -764
- package/esm2015/form-builder/form-builder.externs.js +0 -6
- package/esm2015/form-builder/form-builder.js +0 -187
- package/esm2015/form-builder/index.js +0 -16
- package/esm2015/form-builder/node-entry.js +0 -245
- package/esm2015/form-builder/node-properties.js +0 -968
- package/esm2015/form-builder/node-type-entry.js +0 -50
- package/esm2015/form-builder/string-identifier-dialog.js +0 -94
- package/esm2015/form-builder/validation-condition-editor-dialog.js +0 -59
- package/esm2015/form-builder/warning-condition-editor-dialog.js +0 -59
- package/esm2015/forms/barcode-field.js +0 -43
- package/esm2015/forms/boolean-field.js +0 -43
- package/esm2015/forms/date-field.js +0 -43
- package/esm2015/forms/date-input-field.js +0 -65
- package/esm2015/forms/empty-field.js +0 -43
- package/esm2015/forms/field-service.js +0 -115
- package/esm2015/forms/field-warning-dialog.js +0 -32
- package/esm2015/forms/field.js +0 -45
- package/esm2015/forms/form.js +0 -46
- package/esm2015/forms/forms-module.js +0 -107
- package/esm2015/forms/forms.externs.js +0 -6
- package/esm2015/forms/index.js +0 -9
- package/esm2015/forms/input-field.js +0 -43
- package/esm2015/forms/multiple-choice-field.js +0 -44
- package/esm2015/forms/range-field.js +0 -45
- package/esm2015/forms/single-choice-field.js +0 -44
- package/esm2015/forms/table-field.js +0 -43
- package/esm2015/forms/text-field.js +0 -43
- package/esm2015/forms/time-field.js +0 -43
- package/esm2015/forms/video-url-field.js +0 -47
- package/esm2015/forms/warning-alert-service.js +0 -42
- package/esm2015/image/image-module.js +0 -42
- package/esm2015/image/image.externs.js +0 -6
- package/esm2015/image/image.js +0 -44
- package/esm2015/image/index.js +0 -5
- package/esm2015/material.externs.js +0 -0
- package/esm2015/monaco-editor/index.js +0 -5
- package/esm2015/monaco-editor/monaco-editor-module.js +0 -36
- package/esm2015/monaco-editor/monaco-editor.externs.js +0 -6
- package/esm2015/monaco-editor/monaco-editor.js +0 -389
- package/esm2015/node-icon/index.js +0 -5
- package/esm2015/node-icon/node-icon-module.js +0 -42
- package/esm2015/node-icon/node-icon.externs.js +0 -6
- package/esm2015/node-icon/node-icon.js +0 -35
- package/esm2015/page-slider/index.js +0 -5
- package/esm2015/page-slider/page-slider-module.js +0 -49
- package/esm2015/page-slider/page-slider.externs.js +0 -6
- package/esm2015/page-slider/page-slider.js +0 -44
- package/esm2015/report-builder/column.js +0 -97
- package/esm2015/report-builder/condition-editor.js +0 -159
- package/esm2015/report-builder/content.js +0 -255
- package/esm2015/report-builder/custom-widget-dialog.js +0 -51
- package/esm2015/report-builder/custom-widget-toolbar-button.js +0 -70
- package/esm2015/report-builder/custom-widgets-toolbar.js +0 -124
- package/esm2015/report-builder/forms-analyzer-dialog.js +0 -315
- package/esm2015/report-builder/forms-analyzer.js +0 -264
- package/esm2015/report-builder/image-group.js +0 -106
- package/esm2015/report-builder/index.js +0 -25
- package/esm2015/report-builder/models.js +0 -23
- package/esm2015/report-builder/properties.js +0 -765
- package/esm2015/report-builder/public-api.js +0 -26
- package/esm2015/report-builder/quill-editor.js +0 -299
- package/esm2015/report-builder/renderer-widget.js +0 -238
- package/esm2015/report-builder/report-builder-drag-data.js +0 -23
- package/esm2015/report-builder/report-builder-module.js +0 -114
- package/esm2015/report-builder/report-builder-service.js +0 -1685
- package/esm2015/report-builder/report-builder.externs.js +0 -6
- package/esm2015/report-builder/report-builder.js +0 -69
- package/esm2015/report-builder/theme-color-dialog.js +0 -90
- package/esm2015/report-builder/theme-color.js +0 -215
- package/esm2015/report-builder/tokens.js +0 -24
- package/esm2015/report-builder/toolbar-dialog.js +0 -56
- package/esm2015/report-builder/toolbar.js +0 -90
- package/esm2015/report-builder/utils.js +0 -48
- package/esm2015/report-builder/widget-toolbar-button.js +0 -47
- package/esm2015/report-builder/widgets-row-buttons.js +0 -133
- package/esm2015/report-builder/widgets-toolbar.js +0 -79
- package/esm2015/reports/chart-widget.js +0 -41
- package/esm2015/reports/formula-widget.js +0 -41
- package/esm2015/reports/image-container-widget.js +0 -43
- package/esm2015/reports/image-widget.js +0 -41
- package/esm2015/reports/index.js +0 -5
- package/esm2015/reports/map-widget.js +0 -41
- package/esm2015/reports/page-break-widget.js +0 -41
- package/esm2015/reports/report.js +0 -41
- package/esm2015/reports/reports-module.js +0 -79
- package/esm2015/reports/reports.externs.js +0 -6
- package/esm2015/reports/table-widget.js +0 -41
- package/esm2015/reports/text-widget.js +0 -41
- package/esm2015/reports/widget.js +0 -120
- package/esm2015/time/index.js +0 -5
- package/esm2015/time/time-module.js +0 -44
- package/esm2015/time/time.externs.js +0 -6
- package/esm2015/time/time.js +0 -46
- package/fesm2015/barcode.js +0 -129
- package/fesm2015/barcode.js.map +0 -1
- package/fesm2015/calendar.js +0 -128
- package/fesm2015/calendar.js.map +0 -1
- package/fesm2015/checkbox-group.js +0 -124
- package/fesm2015/checkbox-group.js.map +0 -1
- package/fesm2015/form-builder.js +0 -2987
- package/fesm2015/form-builder.js.map +0 -1
- package/fesm2015/forms.js +0 -923
- package/fesm2015/forms.js.map +0 -1
- package/fesm2015/image.js +0 -113
- package/fesm2015/image.js.map +0 -1
- package/fesm2015/material.js.map +0 -1
- package/fesm2015/monaco-editor.js.map +0 -1
- package/fesm2015/node-icon.js +0 -104
- package/fesm2015/node-icon.js.map +0 -1
- package/fesm2015/page-slider.js +0 -119
- package/fesm2015/page-slider.js.map +0 -1
- package/fesm2015/report-builder.js +0 -5332
- package/fesm2015/report-builder.js.map +0 -1
- package/fesm2015/reports.js +0 -560
- package/fesm2015/reports.js.map +0 -1
- package/fesm2015/time.js +0 -116
- package/fesm2015/time.js.map +0 -1
- package/form-builder/index.metadata.json +0 -1
- package/forms/index.metadata.json +0 -1
- package/image/index.metadata.json +0 -1
- package/monaco-editor/index.metadata.json +0 -1
- package/node-icon/index.metadata.json +0 -1
- package/page-slider/index.metadata.json +0 -1
- package/report-builder/_report-builder.scss +0 -0
- package/report-builder/column.d.ts +0 -63
- package/report-builder/condition-editor.d.ts +0 -67
- package/report-builder/content.d.ts +0 -142
- package/report-builder/custom-widget-dialog.d.ts +0 -31
- package/report-builder/custom-widget-toolbar-button.d.ts +0 -45
- package/report-builder/custom-widgets-toolbar.d.ts +0 -71
- package/report-builder/forms-analyzer-dialog.d.ts +0 -91
- package/report-builder/forms-analyzer.d.ts +0 -102
- package/report-builder/image-group.d.ts +0 -69
- package/report-builder/index.d.ts +0 -24
- package/report-builder/index.metadata.json +0 -1
- package/report-builder/models.d.ts +0 -43
- package/report-builder/operations.d.ts +0 -45
- package/report-builder/package.json +0 -9
- package/report-builder/properties.d.ts +0 -365
- package/report-builder/public-api.d.ts +0 -26
- package/report-builder/quill-editor.d.ts +0 -113
- package/report-builder/renderer-widget.d.ts +0 -80
- package/report-builder/report-builder-drag-data.d.ts +0 -32
- package/report-builder/report-builder-module.d.ts +0 -23
- package/report-builder/report-builder-service.d.ts +0 -722
- package/report-builder/report-builder.d.ts +0 -36
- package/report-builder/theme-color-dialog.d.ts +0 -42
- package/report-builder/theme-color.d.ts +0 -108
- package/report-builder/tokens.d.ts +0 -24
- package/report-builder/toolbar-dialog.d.ts +0 -30
- package/report-builder/toolbar.d.ts +0 -48
- package/report-builder/utils.d.ts +0 -29
- package/report-builder/widget-toolbar-button.d.ts +0 -28
- package/report-builder/widgets-row-buttons.d.ts +0 -57
- package/report-builder/widgets-toolbar.d.ts +0 -44
- package/reports/index.metadata.json +0 -1
- package/time/index.metadata.json +0 -1
|
@@ -1,44 +0,0 @@
|
|
|
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 { AjfPageSlider as AjfCorePageSlider } from '@ajf/core/page-slider';
|
|
23
|
-
import { AnimationBuilder } from '@angular/animations';
|
|
24
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Renderer2, ViewEncapsulation } from '@angular/core';
|
|
25
|
-
export class AjfPageSlider extends AjfCorePageSlider {
|
|
26
|
-
constructor(animationBuilder, cdr, renderer) {
|
|
27
|
-
super(animationBuilder, cdr, renderer);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
AjfPageSlider.decorators = [
|
|
31
|
-
{ type: Component, args: [{
|
|
32
|
-
selector: 'ajf-page-slider',
|
|
33
|
-
template: "<div class=\"ajf-page-slider-content\">\n <div #body [ngClass]=\"'ajf-page-slider-' + orientation\" (touchstart)=\"onTouchStart($event)\"\n (touchmove)=\"onTouchMove($event)\" (touchend)=\"onTouchEnd()\" (mousewheel)=\"onMouseWheel($event)\"\n class=\"ajf-page-slider-body\">\n <ng-content></ng-content>\n </div>\n</div>\n<mat-toolbar *ngIf=\"!hideNavigationButtons\" class=\"ajf-toolbar\">\n <ng-content select=[ajfPageSliderBar]></ng-content>\n <div class=\"ajf-spacer\"></div>\n <div>\n <button aria-label=\"Switch orientation\" mat-button *ngIf=\"!fixedOrientation\" (click)=\"switchOrientation()\">\n <mat-icon>{{ orientation == 'vertical' ? 'swap_horiz' : 'swap_vert' }}</mat-icon>\n </button>\n <button aria-label=\"Back\" mat-button (click)=\"slide({dir: 'up'})\" secondary>\n <mat-icon *ngIf=\"orientation == 'horizontal'\">arrow_backward</mat-icon>\n <mat-icon *ngIf=\"orientation == 'vertical'\">arrow_upward</mat-icon>\n </button>\n <button aria-label=\"Forward\" mat-button (click)=\"slide({dir: 'down'})\" secondary>\n <mat-icon *ngIf=\"orientation == 'horizontal'\">arrow_forward</mat-icon>\n <mat-icon *ngIf=\"orientation == 'vertical'\">arrow_downward</mat-icon>\n </button>\n </div>\n</mat-toolbar>\n",
|
|
34
|
-
encapsulation: ViewEncapsulation.None,
|
|
35
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
36
|
-
styles: ["ajf-page-slider{display:flex;flex-direction:column;align-items:stretch}ajf-page-slider>.ajf-page-slider-content{flex:1;display:block;overflow:hidden;height:100%}ajf-page-slider>.ajf-page-slider-content>.ajf-page-slider-body{display:flex;align-items:stretch}ajf-page-slider>.ajf-page-slider-content>.ajf-page-slider-body.ajf-page-slider-vertical{flex-direction:column;width:100%}ajf-page-slider>.ajf-page-slider-content>.ajf-page-slider-body.ajf-page-slider-horizontal{flex-direction:row;height:100%}ajf-page-slider>.ajf-page-slider-content>.ajf-page-slider-body>ajf-page-slider-item{flex:1 0 auto}ajf-page-slider .ajf-spacer{flex:1 0 auto}\n"]
|
|
37
|
-
},] }
|
|
38
|
-
];
|
|
39
|
-
AjfPageSlider.ctorParameters = () => [
|
|
40
|
-
{ type: AnimationBuilder },
|
|
41
|
-
{ type: ChangeDetectorRef },
|
|
42
|
-
{ type: Renderer2 }
|
|
43
|
-
];
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1zbGlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbWF0ZXJpYWwvcGFnZS1zbGlkZXIvcGFnZS1zbGlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBRUgsT0FBTyxFQUFDLGFBQWEsSUFBSSxpQkFBaUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ3pFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRXJELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBU3ZCLE1BQU0sT0FBTyxhQUFjLFNBQVEsaUJBQWlCO0lBQ2xELFlBQVksZ0JBQWtDLEVBQUUsR0FBc0IsRUFBRSxRQUFtQjtRQUN6RixLQUFLLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7OztZQVZGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2dCQUMzQix3d0NBQStCO2dCQUUvQixhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtnQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2FBQ2hEOzs7WUFoQk8sZ0JBQWdCO1lBSXRCLGlCQUFpQjtZQUVqQixTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IChDKSBHbnVjb29wIHNvYy4gY29vcC5cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWR2YW5jZWQgSlNPTiBmb3JtcyAoYWpmKS5cbiAqXG4gKiBBZHZhbmNlZCBKU09OIGZvcm1zIChhamYpIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vclxuICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzXG4gKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSxcbiAqIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogQWR2YW5jZWQgSlNPTiBmb3JtcyAoYWpmKSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBHTlUgQWZmZXJvXG4gKiBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIEFkdmFuY2VkIEpTT04gZm9ybXMgKGFqZikuXG4gKiBJZiBub3QsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvLlxuICpcbiAqL1xuXG5pbXBvcnQge0FqZlBhZ2VTbGlkZXIgYXMgQWpmQ29yZVBhZ2VTbGlkZXJ9IGZyb20gJ0BhamYvY29yZS9wYWdlLXNsaWRlcic7XG5pbXBvcnQge0FuaW1hdGlvbkJ1aWxkZXJ9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtCb29sZWFuSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgUmVuZGVyZXIyLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWpmLXBhZ2Utc2xpZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICdwYWdlLXNsaWRlci5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ3BhZ2Utc2xpZGVyLmNzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQWpmUGFnZVNsaWRlciBleHRlbmRzIEFqZkNvcmVQYWdlU2xpZGVyIHtcbiAgY29uc3RydWN0b3IoYW5pbWF0aW9uQnVpbGRlcjogQW5pbWF0aW9uQnVpbGRlciwgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgcmVuZGVyZXI6IFJlbmRlcmVyMikge1xuICAgIHN1cGVyKGFuaW1hdGlvbkJ1aWxkZXIsIGNkciwgcmVuZGVyZXIpO1xuICB9XG5cbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2hpZGVOYXZpZ2F0aW9uQnV0dG9uczogQm9vbGVhbklucHV0O1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfZml4ZWRPcmllbnRhdGlvbjogQm9vbGVhbklucHV0O1xufVxuIl19
|
|
@@ -1,97 +0,0 @@
|
|
|
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, Input, ViewEncapsulation } from '@angular/core';
|
|
23
|
-
import { Subscription, timer } from 'rxjs';
|
|
24
|
-
import { AjfReportBuilderService } from './report-builder-service';
|
|
25
|
-
/**
|
|
26
|
-
* this component manages the report text
|
|
27
|
-
*
|
|
28
|
-
* @export
|
|
29
|
-
*/
|
|
30
|
-
export class AjfReportBuilderColumn {
|
|
31
|
-
constructor(_service) {
|
|
32
|
-
this._service = _service;
|
|
33
|
-
/**
|
|
34
|
-
* if true mouse event is on dragged status
|
|
35
|
-
*
|
|
36
|
-
* @memberOf AjfReportBuilderContent
|
|
37
|
-
*/
|
|
38
|
-
this.showActions = false;
|
|
39
|
-
this.layoutShow = false;
|
|
40
|
-
// this boolean sign if is dragged a widget
|
|
41
|
-
this.onDragged = false;
|
|
42
|
-
this._onDraggedSub = Subscription.EMPTY;
|
|
43
|
-
}
|
|
44
|
-
addToList(event, idx, toColumn) {
|
|
45
|
-
this.onDragEndHandler();
|
|
46
|
-
if (event.dragData.fromColumn) {
|
|
47
|
-
this._service.changePositionOnColumn(event, toColumn, idx);
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
this._service.addToColumn(event, toColumn, idx);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* sign the start of mouse drag with 200 ms of delay
|
|
55
|
-
*
|
|
56
|
-
* @memberOf AjfReportBuilderContent
|
|
57
|
-
*/
|
|
58
|
-
onDragStartHandler() {
|
|
59
|
-
let s = timer(200).subscribe(() => {
|
|
60
|
-
s.unsubscribe();
|
|
61
|
-
this._service.dragStarted();
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* sign the end of mouse drag
|
|
66
|
-
*
|
|
67
|
-
* @memberOf AjfReportBuilderContent
|
|
68
|
-
*/
|
|
69
|
-
onDragEndHandler() {
|
|
70
|
-
this._service.dragEnded();
|
|
71
|
-
}
|
|
72
|
-
ngOnInit() {
|
|
73
|
-
// this.widget = changes.widget.currentValue;
|
|
74
|
-
this._onDraggedSub = this._service.onDragged.subscribe(x => {
|
|
75
|
-
this.onDragged = x;
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
ngOnDestroy() {
|
|
79
|
-
this._onDraggedSub.unsubscribe();
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
AjfReportBuilderColumn.decorators = [
|
|
83
|
-
{ type: Component, args: [{
|
|
84
|
-
selector: 'ajf-column',
|
|
85
|
-
template: "<ng-template [ngIf]=\"column.content != null\">\n <div class=\"ajf-column\"\n [ngClass]=\"{'ajf-is-on-over': showActions}\"\n (mouseenter)=\"showActions = true\"\n (mouseleave)=\"showActions = false\">\n <mat-list>\n <ng-template ngFor let-widget let-idx=\"index\" [ngForOf]=\"column.content\">\n\n <ng-template [ngIf]=\"!onDragged\">\n <ajf-report-builder-widgets-row-buttons\n cdkDrag\n [cdkDragData]=\"{fromColumn: column, fromIndex: idx, widget: widget, dropZones: ['widget']}\"\n [from]=\"'column'\"\n [fromWidget]=\"column\"\n [widget]=\"widget\"\n [position]=\"idx\"\n [child]=\"true\"\n (cdkDragStarted)=\"onDragStartHandler()\"\n (cdkDragEnded)=\"onDragEndHandler()\">\n </ajf-report-builder-widgets-row-buttons>\n </ng-template>\n <ajf-report-builder-renderer-widget [widget]=\"widget\"></ajf-report-builder-renderer-widget>\n </ng-template>\n </mat-list>\n </div>\n</ng-template>\n",
|
|
86
|
-
encapsulation: ViewEncapsulation.None,
|
|
87
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
88
|
-
styles: [".ajf-column{max-width:100%;max-height:100%;background:rgba(0,0,0,0);z-index:100}.ajf-column span{flex-direction:row;width:100%}.ajf-column .mat-list{padding:0}.ajf-column:hover span,.ajf-is-on-over span{visibility:visible !important;display:block !important}.ajf-column-drop-zone{margin:10%;height:50px;background-color:#fff;border:9px solid rgba(66,134,244,.6);border-radius:16px}mat-list{height:100%;padding:0}\n"]
|
|
89
|
-
},] }
|
|
90
|
-
];
|
|
91
|
-
AjfReportBuilderColumn.ctorParameters = () => [
|
|
92
|
-
{ type: AjfReportBuilderService }
|
|
93
|
-
];
|
|
94
|
-
AjfReportBuilderColumn.propDecorators = {
|
|
95
|
-
column: [{ type: Input }]
|
|
96
|
-
};
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21hdGVyaWFsL3JlcG9ydC1idWlsZGVyL2NvbHVtbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFHSCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEVBR0wsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxZQUFZLEVBQUUsS0FBSyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRXpDLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBRWpFOzs7O0dBSUc7QUFRSCxNQUFNLE9BQU8sc0JBQXNCO0lBb0RqQyxZQUFvQixRQUFpQztRQUFqQyxhQUFRLEdBQVIsUUFBUSxDQUF5QjtRQW5EckQ7Ozs7V0FJRztRQUNILGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRXBCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFFbkIsMkNBQTJDO1FBQzNDLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFVVixrQkFBYSxHQUFpQixZQUFZLENBQUMsS0FBSyxDQUFDO0lBK0JELENBQUM7SUE3QnpELFNBQVMsQ0FBQyxLQUFVLEVBQUUsR0FBVyxFQUFFLFFBQXlCO1FBQzFELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQzVEO2FBQU07WUFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ2pEO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDaEMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGdCQUFnQjtRQUNkLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUdELFFBQVE7UUFDTiw2Q0FBNkM7UUFFN0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDekQsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbkMsQ0FBQzs7O1lBdkVGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsWUFBWTtnQkFDdEIsK2pDQUEwQjtnQkFFMUIsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7Z0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOzthQUNoRDs7O1lBYk8sdUJBQXVCOzs7cUJBaUM1QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IChDKSBHbnVjb29wIHNvYy4gY29vcC5cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWR2YW5jZWQgSlNPTiBmb3JtcyAoYWpmKS5cbiAqXG4gKiBBZHZhbmNlZCBKU09OIGZvcm1zIChhamYpIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vclxuICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzXG4gKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSxcbiAqIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogQWR2YW5jZWQgSlNPTiBmb3JtcyAoYWpmKSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBHTlUgQWZmZXJvXG4gKiBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIEFkdmFuY2VkIEpTT04gZm9ybXMgKGFqZikuXG4gKiBJZiBub3QsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvLlxuICpcbiAqL1xuXG5pbXBvcnQge0FqZkNvbHVtbldpZGdldH0gZnJvbSAnQGFqZi9jb3JlL3JlcG9ydHMnO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U3Vic2NyaXB0aW9uLCB0aW1lcn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7QWpmUmVwb3J0QnVpbGRlclNlcnZpY2V9IGZyb20gJy4vcmVwb3J0LWJ1aWxkZXItc2VydmljZSc7XG5cbi8qKlxuICogdGhpcyBjb21wb25lbnQgbWFuYWdlcyB0aGUgcmVwb3J0IHRleHRcbiAqXG4gKiBAZXhwb3J0XG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FqZi1jb2x1bW4nLFxuICB0ZW1wbGF0ZVVybDogJ2NvbHVtbi5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ2NvbHVtbi5jc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQWpmUmVwb3J0QnVpbGRlckNvbHVtbiBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0IHtcbiAgLyoqXG4gICAqIGlmIHRydWUgbW91c2UgZXZlbnQgaXMgb24gZHJhZ2dlZCBzdGF0dXNcbiAgICpcbiAgICogQG1lbWJlck9mIEFqZlJlcG9ydEJ1aWxkZXJDb250ZW50XG4gICAqL1xuICBzaG93QWN0aW9ucyA9IGZhbHNlO1xuXG4gIGxheW91dFNob3cgPSBmYWxzZTtcblxuICAvLyB0aGlzIGJvb2xlYW4gc2lnbiBpZiBpcyBkcmFnZ2VkIGEgd2lkZ2V0XG4gIG9uRHJhZ2dlZCA9IGZhbHNlO1xuXG5cbiAgLyoqXG4gICAqIGlzIHRoZSBhcnJheSBvZiB2YWx1ZXNcbiAgICpcbiAgICogQG1lbWJlck9mIFRhYmxlQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBjb2x1bW46IEFqZkNvbHVtbldpZGdldDtcblxuICBwcml2YXRlIF9vbkRyYWdnZWRTdWI6IFN1YnNjcmlwdGlvbiA9IFN1YnNjcmlwdGlvbi5FTVBUWTtcblxuICBhZGRUb0xpc3QoZXZlbnQ6IGFueSwgaWR4OiBudW1iZXIsIHRvQ29sdW1uOiBBamZDb2x1bW5XaWRnZXQpIHtcbiAgICB0aGlzLm9uRHJhZ0VuZEhhbmRsZXIoKTtcbiAgICBpZiAoZXZlbnQuZHJhZ0RhdGEuZnJvbUNvbHVtbikge1xuICAgICAgdGhpcy5fc2VydmljZS5jaGFuZ2VQb3NpdGlvbk9uQ29sdW1uKGV2ZW50LCB0b0NvbHVtbiwgaWR4KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fc2VydmljZS5hZGRUb0NvbHVtbihldmVudCwgdG9Db2x1bW4sIGlkeCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqICBzaWduIHRoZSBzdGFydCBvZiBtb3VzZSBkcmFnIHdpdGggMjAwIG1zIG9mIGRlbGF5XG4gICAqXG4gICAqIEBtZW1iZXJPZiBBamZSZXBvcnRCdWlsZGVyQ29udGVudFxuICAgKi9cbiAgb25EcmFnU3RhcnRIYW5kbGVyKCk6IHZvaWQge1xuICAgIGxldCBzID0gdGltZXIoMjAwKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgcy51bnN1YnNjcmliZSgpO1xuICAgICAgdGhpcy5fc2VydmljZS5kcmFnU3RhcnRlZCgpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIHNpZ24gdGhlIGVuZCBvZiBtb3VzZSBkcmFnXG4gICAqXG4gICAqIEBtZW1iZXJPZiBBamZSZXBvcnRCdWlsZGVyQ29udGVudFxuICAgKi9cbiAgb25EcmFnRW5kSGFuZGxlcigpOiB2b2lkIHtcbiAgICB0aGlzLl9zZXJ2aWNlLmRyYWdFbmRlZCgpO1xuICB9XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3NlcnZpY2U6IEFqZlJlcG9ydEJ1aWxkZXJTZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIC8vIHRoaXMud2lkZ2V0ID0gY2hhbmdlcy53aWRnZXQuY3VycmVudFZhbHVlO1xuXG4gICAgdGhpcy5fb25EcmFnZ2VkU3ViID0gdGhpcy5fc2VydmljZS5vbkRyYWdnZWQuc3Vic2NyaWJlKHggPT4ge1xuICAgICAgdGhpcy5vbkRyYWdnZWQgPSB4O1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fb25EcmFnZ2VkU3ViLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,159 +0,0 @@
|
|
|
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 { validateExpression } from '@ajf/core/models';
|
|
23
|
-
import { ChangeDetectionStrategy, Component, Input, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
24
|
-
import { Subscription, timer } from 'rxjs';
|
|
25
|
-
import { AjfReportBuilderService } from './report-builder-service';
|
|
26
|
-
import { sanitizeConditionString } from './utils';
|
|
27
|
-
/**
|
|
28
|
-
* This class will define an ajf builder builder condition editor
|
|
29
|
-
* @implements : OnDestroy
|
|
30
|
-
* @implements : AfterViewInit
|
|
31
|
-
*/
|
|
32
|
-
export class AjfReportBuilderConditionEditor {
|
|
33
|
-
/**
|
|
34
|
-
* this constructor will init current condition by ajfBuilderservice
|
|
35
|
-
* and init condition and availableFieldNames subscriptions
|
|
36
|
-
*/
|
|
37
|
-
constructor(_service) {
|
|
38
|
-
this._service = _service;
|
|
39
|
-
this.isValid = false;
|
|
40
|
-
this.names = [];
|
|
41
|
-
// conditionText is a string
|
|
42
|
-
this.conditionText = 'true';
|
|
43
|
-
// operators is an array of any type that contains all allow operators
|
|
44
|
-
this.operators = [
|
|
45
|
-
'( )', '\' \'', '<', '<=', '==', '>=', '>', '!=', '!', '&&', '||', '+', '-', '*', '/', '%',
|
|
46
|
-
'true', 'false'
|
|
47
|
-
];
|
|
48
|
-
this._conditionNamesSub = Subscription.EMPTY;
|
|
49
|
-
}
|
|
50
|
-
extractNames(formsVariables) {
|
|
51
|
-
this.names.length = 0;
|
|
52
|
-
for (let i = 0; i < formsVariables.length; i++) {
|
|
53
|
-
this.names = this.names.concat(formsVariables[i].names);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
setCurrent(id, index) {
|
|
57
|
-
this.currentId = id;
|
|
58
|
-
this.appendText(this.formsVariables[id].names[index]);
|
|
59
|
-
this.checkValidation();
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* this method will return success if the current condtion is valid
|
|
63
|
-
* @return boolean
|
|
64
|
-
*/
|
|
65
|
-
validateCondition() {
|
|
66
|
-
return validateExpression(this.conditionText, this.names);
|
|
67
|
-
}
|
|
68
|
-
// TODO complete the comment
|
|
69
|
-
/**
|
|
70
|
-
* this method will append text to json
|
|
71
|
-
* @param text : string -
|
|
72
|
-
* @param goBackNum : number -
|
|
73
|
-
*/
|
|
74
|
-
appendText(text, _goBackNum) {
|
|
75
|
-
if (text == null || this.conditionTextArea == null) {
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
-
let el = this.conditionTextArea.nativeElement;
|
|
79
|
-
let sStart = Math.min(el.selectionStart, el.selectionEnd);
|
|
80
|
-
let sEnd = Math.max(el.selectionStart, el.selectionEnd);
|
|
81
|
-
let startingString = this.conditionText.substr(0, sStart);
|
|
82
|
-
let endingString = this.conditionText.substr(sEnd);
|
|
83
|
-
let initialLenght = startingString.length;
|
|
84
|
-
let newStr = '';
|
|
85
|
-
startingString = sanitizeConditionString(startingString);
|
|
86
|
-
endingString = sanitizeConditionString(endingString);
|
|
87
|
-
sStart +=
|
|
88
|
-
startingString.length - initialLenght + text.length + (startingString.length > 0 ? 2 : 1);
|
|
89
|
-
newStr = startingString.length > 0 ? `${startingString} ` : '';
|
|
90
|
-
this.conditionText = `${newStr}${text} ${endingString}`;
|
|
91
|
-
const s = timer(0).subscribe(() => {
|
|
92
|
-
if (s && !s.closed) {
|
|
93
|
-
s.unsubscribe();
|
|
94
|
-
}
|
|
95
|
-
if (el.createTextRange) {
|
|
96
|
-
let range = el.createTextRange();
|
|
97
|
-
range.move('character', sStart);
|
|
98
|
-
range.select();
|
|
99
|
-
}
|
|
100
|
-
else {
|
|
101
|
-
if (el.selectionStart) {
|
|
102
|
-
el.focus();
|
|
103
|
-
el.setSelectionRange(sStart, sStart);
|
|
104
|
-
}
|
|
105
|
-
else {
|
|
106
|
-
el.focus();
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
checkValidation() {
|
|
112
|
-
this.isValid = this.validateCondition();
|
|
113
|
-
if (this.isValid) {
|
|
114
|
-
this.saveCondition();
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* this method will save current condition
|
|
119
|
-
*/
|
|
120
|
-
saveCondition() {
|
|
121
|
-
this._service.saveCondition(this.conditionText);
|
|
122
|
-
}
|
|
123
|
-
ngOnInit() {
|
|
124
|
-
this.conditionText = this.visibility.condition;
|
|
125
|
-
this.isValid = true;
|
|
126
|
-
if (this.conditionText == 'true') {
|
|
127
|
-
this.conditionText = '';
|
|
128
|
-
}
|
|
129
|
-
this._conditionNamesSub = this._service.conditionNames.subscribe((x) => {
|
|
130
|
-
this.formsVariables = x;
|
|
131
|
-
if (x != null) {
|
|
132
|
-
this.extractNames(this.formsVariables);
|
|
133
|
-
}
|
|
134
|
-
});
|
|
135
|
-
}
|
|
136
|
-
/**
|
|
137
|
-
* this method will destroy a conditionSubscriptions
|
|
138
|
-
*/
|
|
139
|
-
ngOnDestroy() {
|
|
140
|
-
this._conditionNamesSub.unsubscribe();
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
AjfReportBuilderConditionEditor.decorators = [
|
|
144
|
-
{ type: Component, args: [{
|
|
145
|
-
selector: 'ajf-report-builder-condition-editor',
|
|
146
|
-
template: "<ng-template [ngIf]=\"formsVariables != null && visibility != null\">\n <mat-card>\n <mat-card-header>\n <mat-card-title>condition of visibility</mat-card-title>\n <mat-card-subtitle>\n <ng-template [ngIf]=\"visibility\">\n {{visibility.condition}}\n </ng-template>\n </mat-card-subtitle>\n </mat-card-header>\n <mat-card-content>\n <br />\n <form>\n <mat-select\n [(ngModel)]=\"a\"\n [ngModelOptions]=\"{standalone: true}\"\n placeholder=\"Select condition\"\n >\n <ng-template ngFor let-form let-id=\"index\" [ngForOf]=\"formsVariables\">\n <mat-option\n *ngFor=\"let label of form.labels;let i = index;\"\n [value]=\"label\"\n (click)=\"setCurrent(id, i)\"\n >\n {{ id}}: {{ label }}\n </mat-option>\n </ng-template>\n </mat-select>\n <mat-select\n [(ngModel)]=\"b\"\n [ngModelOptions]=\"{standalone: true}\"\n placeholder=\"Select operator\"\n >\n <mat-option\n *ngFor=\"let operator of operators\"\n (click)=\"appendText(operator);\"\n >\n {{ operator }}\n </mat-option>\n </mat-select>\n </form>\n </mat-card-content>\n <mat-card-actions>\n <ng-template [ngIf]=\"!isValid\">\n <ng-container\n >{{'Invalid condition! Please check syntax.'|transloco}}</ng-container\n >\n </ng-template>\n <textarea\n #conditionTextArea\n [(ngModel)]=\"conditionText\"\n (keyup)=\"checkValidation()\"\n >\n </textarea>\n </mat-card-actions>\n </mat-card>\n</ng-template>\n",
|
|
147
|
-
encapsulation: ViewEncapsulation.None,
|
|
148
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
149
|
-
styles: ["ajf-report-builder-condition-editor textarea{width:100%}\n"]
|
|
150
|
-
},] }
|
|
151
|
-
];
|
|
152
|
-
AjfReportBuilderConditionEditor.ctorParameters = () => [
|
|
153
|
-
{ type: AjfReportBuilderService }
|
|
154
|
-
];
|
|
155
|
-
AjfReportBuilderConditionEditor.propDecorators = {
|
|
156
|
-
visibility: [{ type: Input }],
|
|
157
|
-
conditionTextArea: [{ type: ViewChild, args: ['conditionTextArea', { static: false },] }]
|
|
158
|
-
};
|
|
159
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZGl0aW9uLWVkaXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tYXRlcmlhbC9yZXBvcnQtYnVpbGRlci9jb25kaXRpb24tZWRpdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRztBQUVILE9BQU8sRUFBZSxrQkFBa0IsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ2xFLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFHTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxZQUFZLEVBQUUsS0FBSyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBR3pDLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ2pFLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLFNBQVMsQ0FBQztBQVVoRDs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLCtCQUErQjtJQXlCMUM7OztPQUdHO0lBQ0gsWUFBb0IsUUFBaUM7UUFBakMsYUFBUSxHQUFSLFFBQVEsQ0FBeUI7UUF6QnJELFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsVUFBSyxHQUFhLEVBQUUsQ0FBQztRQUdyQiw0QkFBNEI7UUFDNUIsa0JBQWEsR0FBRyxNQUFNLENBQUM7UUFRdkIsdUVBQXVFO1FBQ3ZFLGNBQVMsR0FBYTtZQUNwQixLQUFLLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHO1lBQzFGLE1BQU0sRUFBRSxPQUFPO1NBQ2hCLENBQUM7UUFFTSx1QkFBa0IsR0FBaUIsWUFBWSxDQUFDLEtB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QUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNEOztPQUVHO0lBQ0gsV0FBVztRQUNULElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QyxDQUFDOzs7WUE5SUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxxQ0FBcUM7Z0JBQy9DLDR1REFBb0M7Z0JBRXBDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2dCQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7YUFDaEQ7OztZQVZPLHVCQUF1Qjs7O3lCQWlCNUIsS0FBSztnQ0FjTCxTQUFTLFNBQUMsbUJBQW1CLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IChDKSBHbnVjb29wIHNvYy4gY29vcC5cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWR2YW5jZWQgSlNPTiBmb3JtcyAoYWpmKS5cbiAqXG4gKiBBZHZhbmNlZCBKU09OIGZvcm1zIChhamYpIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vclxuICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzXG4gKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSxcbiAqIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogQWR2YW5jZWQgSlNPTiBmb3JtcyAoYWpmKSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBHTlUgQWZmZXJvXG4gKiBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIEFkdmFuY2VkIEpTT04gZm9ybXMgKGFqZikuXG4gKiBJZiBub3QsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvLlxuICpcbiAqL1xuXG5pbXBvcnQge0FqZkNvbmRpdGlvbiwgdmFsaWRhdGVFeHByZXNzaW9ufSBmcm9tICdAYWpmL2NvcmUvbW9kZWxzJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U3Vic2NyaXB0aW9uLCB0aW1lcn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7QWpmRm9ybVZhcmlhYmxlc30gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHtBamZSZXBvcnRCdWlsZGVyU2VydmljZX0gZnJvbSAnLi9yZXBvcnQtYnVpbGRlci1zZXJ2aWNlJztcbmltcG9ydCB7c2FuaXRpemVDb25kaXRpb25TdHJpbmd9IGZyb20gJy4vdXRpbHMnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FqZi1yZXBvcnQtYnVpbGRlci1jb25kaXRpb24tZWRpdG9yJyxcbiAgdGVtcGxhdGVVcmw6ICdjb25kaXRpb24tZWRpdG9yLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnY29uZGl0aW9uLWVkaXRvci5jc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG4vKipcbiAqIFRoaXMgY2xhc3Mgd2lsbCBkZWZpbmUgYW4gYWpmIGJ1aWxkZXIgYnVpbGRlciBjb25kaXRpb24gZWRpdG9yXG4gKiBAaW1wbGVtZW50cyA6IE9uRGVzdHJveVxuICogQGltcGxlbWVudHMgOiBBZnRlclZpZXdJbml0XG4gKi9cbmV4cG9ydCBjbGFzcyBBamZSZXBvcnRCdWlsZGVyQ29uZGl0aW9uRWRpdG9yIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSB2aXNpYmlsaXR5OiBBamZDb25kaXRpb247XG5cbiAgZm9ybXNWYXJpYWJsZXM6IEFqZkZvcm1WYXJpYWJsZXNbXTtcbiAgaXNWYWxpZCA9IGZhbHNlO1xuICBuYW1lczogc3RyaW5nW10gPSBbXTtcbiAgY3VycmVudElkOiBudW1iZXI7XG5cbiAgLy8gY29uZGl0aW9uVGV4dCBpcyBhIHN0cmluZ1xuICBjb25kaXRpb25UZXh0ID0gJ3RydWUnO1xuXG4gIGE6IGFueTtcbiAgYjogYW55O1xuXG5cbiAgQFZpZXdDaGlsZCgnY29uZGl0aW9uVGV4dEFyZWEnLCB7c3RhdGljOiBmYWxzZX0pIGNvbmRpdGlvblRleHRBcmVhOiBhbnk7XG5cbiAgLy8gIG9wZXJhdG9ycyBpcyBhbiBhcnJheSBvZiBhbnkgdHlwZSB0aGF0IGNvbnRhaW5zIGFsbCBhbGxvdyBvcGVyYXRvcnNcbiAgb3BlcmF0b3JzOiBzdHJpbmdbXSA9IFtcbiAgICAnKCApJywgJ1xcJyBcXCcnLCAnPCcsICc8PScsICc9PScsICc+PScsICc+JywgJyE9JywgJyEnLCAnJiYnLCAnfHwnLCAnKycsICctJywgJyonLCAnLycsICclJyxcbiAgICAndHJ1ZScsICdmYWxzZSdcbiAgXTtcblxuICBwcml2YXRlIF9jb25kaXRpb25OYW1lc1N1YjogU3Vic2NyaXB0aW9uID0gU3Vic2NyaXB0aW9uLkVNUFRZO1xuXG4gIC8qKlxuICAgKiB0aGlzIGNvbnN0cnVjdG9yIHdpbGwgaW5pdCBjdXJyZW50IGNvbmRpdGlvbiBieSBhamZCdWlsZGVyc2VydmljZVxuICAgKiBhbmQgaW5pdCBjb25kaXRpb24gYW5kIGF2YWlsYWJsZUZpZWxkTmFtZXMgc3Vic2NyaXB0aW9uc1xuICAgKi9cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfc2VydmljZTogQWpmUmVwb3J0QnVpbGRlclNlcnZpY2UpIHt9XG4gIGV4dHJhY3ROYW1lcyhmb3Jtc1ZhcmlhYmxlczogQWpmRm9ybVZhcmlhYmxlc1tdKSB7XG4gICAgdGhpcy5uYW1lcy5sZW5ndGggPSAwO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZm9ybXNWYXJpYWJsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoaXMubmFtZXMgPSB0aGlzLm5hbWVzLmNvbmNhdChmb3Jtc1ZhcmlhYmxlc1tpXS5uYW1lcyk7XG4gICAgfVxuICB9XG5cbiAgc2V0Q3VycmVudChpZDogbnVtYmVyLCBpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5jdXJyZW50SWQgPSBpZDtcbiAgICB0aGlzLmFwcGVuZFRleHQodGhpcy5mb3Jtc1ZhcmlhYmxlc1tpZF0ubmFtZXNbaW5kZXhdKTtcbiAgICB0aGlzLmNoZWNrVmFsaWRhdGlvbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIHRoaXMgbWV0aG9kIHdpbGwgcmV0dXJuIHN1Y2Nlc3MgaWYgdGhlIGN1cnJlbnQgY29uZHRpb24gaXMgdmFsaWRcbiAgICogQHJldHVybiBib29sZWFuXG4gICAqL1xuICB2YWxpZGF0ZUNvbmRpdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdmFsaWRhdGVFeHByZXNzaW9uKHRoaXMuY29uZGl0aW9uVGV4dCwgdGhpcy5uYW1lcyk7XG4gIH1cblxuICAvLyBUT0RPIGNvbXBsZXRlIHRoZSBjb21tZW50XG4gIC8qKlxuICAgKiB0aGlzIG1ldGhvZCB3aWxsIGFwcGVuZCB0ZXh0IHRvIGpzb25cbiAgICogQHBhcmFtIHRleHQgICAgICA6IHN0cmluZyAtXG4gICAqIEBwYXJhbSBnb0JhY2tOdW0gOiBudW1iZXIgLVxuICAgKi9cbiAgYXBwZW5kVGV4dCh0ZXh0OiBzdHJpbmcsIF9nb0JhY2tOdW0/OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAodGV4dCA9PSBudWxsIHx8IHRoaXMuY29uZGl0aW9uVGV4dEFyZWEgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBlbCA9IHRoaXMuY29uZGl0aW9uVGV4dEFyZWEubmF0aXZlRWxlbWVudDtcbiAgICBsZXQgc1N0YXJ0OiBudW1iZXIgPSBNYXRoLm1pbihlbC5zZWxlY3Rpb25TdGFydCwgZWwuc2VsZWN0aW9uRW5kKTtcbiAgICBsZXQgc0VuZDogbnVtYmVyID0gTWF0aC5tYXgoZWwuc2VsZWN0aW9uU3RhcnQsIGVsLnNlbGVjdGlvbkVuZCk7XG4gICAgbGV0IHN0YXJ0aW5nU3RyaW5nOiBzdHJpbmcgPSB0aGlzLmNvbmRpdGlvblRleHQuc3Vic3RyKDAsIHNTdGFydCk7XG4gICAgbGV0IGVuZGluZ1N0cmluZzogc3RyaW5nID0gdGhpcy5jb25kaXRpb25UZXh0LnN1YnN0cihzRW5kKTtcbiAgICBsZXQgaW5pdGlhbExlbmdodDogbnVtYmVyID0gc3RhcnRpbmdTdHJpbmcubGVuZ3RoO1xuICAgIGxldCBuZXdTdHIgPSAnJztcblxuICAgIHN0YXJ0aW5nU3RyaW5nID0gc2FuaXRpemVDb25kaXRpb25TdHJpbmcoc3RhcnRpbmdTdHJpbmcpO1xuICAgIGVuZGluZ1N0cmluZyA9IHNhbml0aXplQ29uZGl0aW9uU3RyaW5nKGVuZGluZ1N0cmluZyk7XG4gICAgc1N0YXJ0ICs9XG4gICAgICAgIHN0YXJ0aW5nU3RyaW5nLmxlbmd0aCAtIGluaXRpYWxMZW5naHQgKyB0ZXh0Lmxlbmd0aCArIChzdGFydGluZ1N0cmluZy5sZW5ndGggPiAwID8gMiA6IDEpO1xuICAgIG5ld1N0ciA9IHN0YXJ0aW5nU3RyaW5nLmxlbmd0aCA+IDAgPyBgJHtzdGFydGluZ1N0cmluZ30gYCA6ICcnO1xuICAgIHRoaXMuY29uZGl0aW9uVGV4dCA9IGAke25ld1N0cn0ke3RleHR9ICR7ZW5kaW5nU3RyaW5nfWA7XG5cbiAgICBjb25zdCBzID0gdGltZXIoMCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGlmIChzICYmICFzLmNsb3NlZCkge1xuICAgICAgICBzLnVuc3Vic2NyaWJlKCk7XG4gICAgICB9XG4gICAgICBpZiAoZWwuY3JlYXRlVGV4dFJhbmdlKSB7XG4gICAgICAgIGxldCByYW5nZSA9IGVsLmNyZWF0ZVRleHRSYW5nZSgpO1xuICAgICAgICByYW5nZS5tb3ZlKCdjaGFyYWN0ZXInLCBzU3RhcnQpO1xuICAgICAgICByYW5nZS5zZWxlY3QoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChlbC5zZWxlY3Rpb25TdGFydCkge1xuICAgICAgICAgIGVsLmZvY3VzKCk7XG4gICAgICAgICAgZWwuc2V0U2VsZWN0aW9uUmFuZ2Uoc1N0YXJ0LCBzU3RhcnQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGVsLmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGNoZWNrVmFsaWRhdGlvbigpIHtcbiAgICB0aGlzLmlzVmFsaWQgPSB0aGlzLnZhbGlkYXRlQ29uZGl0aW9uKCk7XG4gICAgaWYgKHRoaXMuaXNWYWxpZCkge1xuICAgICAgdGhpcy5zYXZlQ29uZGl0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIHRoaXMgbWV0aG9kIHdpbGwgc2F2ZSBjdXJyZW50IGNvbmRpdGlvblxuICAgKi9cbiAgc2F2ZUNvbmRpdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLl9zZXJ2aWNlLnNhdmVDb25kaXRpb24odGhpcy5jb25kaXRpb25UZXh0KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY29uZGl0aW9uVGV4dCA9IHRoaXMudmlzaWJpbGl0eS5jb25kaXRpb247XG4gICAgdGhpcy5pc1ZhbGlkID0gdHJ1ZTtcblxuICAgIGlmICh0aGlzLmNvbmRpdGlvblRleHQgPT0gJ3RydWUnKSB7XG4gICAgICB0aGlzLmNvbmRpdGlvblRleHQgPSAnJztcbiAgICB9XG5cbiAgICB0aGlzLl9jb25kaXRpb25OYW1lc1N1YiA9IHRoaXMuX3NlcnZpY2UuY29uZGl0aW9uTmFtZXMuc3Vic2NyaWJlKCh4KSA9PiB7XG4gICAgICB0aGlzLmZvcm1zVmFyaWFibGVzID0geDtcbiAgICAgIGlmICh4ICE9IG51bGwpIHtcbiAgICAgICAgdGhpcy5leHRyYWN0TmFtZXModGhpcy5mb3Jtc1ZhcmlhYmxlcyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIHRoaXMgbWV0aG9kIHdpbGwgZGVzdHJveSBhIGNvbmRpdGlvblN1YnNjcmlwdGlvbnNcbiAgICovXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2NvbmRpdGlvbk5hbWVzU3ViLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiJdfQ==
|