@igo2/geo 20.1.0-next.26 → 20.1.0-next.28
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/fesm2022/igo2-geo.mjs +7 -10
- package/fesm2022/igo2-geo.mjs.map +1 -1
- package/package.json +5 -5
package/fesm2022/igo2-geo.mjs
CHANGED
|
@@ -2062,7 +2062,7 @@ class DataSource {
|
|
|
2062
2062
|
legend;
|
|
2063
2063
|
get saveableOptions() {
|
|
2064
2064
|
return {
|
|
2065
|
-
id: this.
|
|
2065
|
+
id: this.id,
|
|
2066
2066
|
type: this.options.type,
|
|
2067
2067
|
url: this.options.url
|
|
2068
2068
|
};
|
|
@@ -2073,7 +2073,7 @@ class DataSource {
|
|
|
2073
2073
|
this.options = options;
|
|
2074
2074
|
this.dataService = dataService;
|
|
2075
2075
|
this.options = options;
|
|
2076
|
-
this.id = this.options.id
|
|
2076
|
+
this.id = this.options.id ?? this.generateId();
|
|
2077
2077
|
this.ol = this.createOlSource();
|
|
2078
2078
|
}
|
|
2079
2079
|
generateId() {
|
|
@@ -11879,7 +11879,7 @@ function mergeLayersOptions(layersOptionsTree, layersOptions) {
|
|
|
11879
11879
|
return;
|
|
11880
11880
|
const currentNode = _getNodeById(identifier, tree) ?? _getNodeByTitle(options.title, tree);
|
|
11881
11881
|
if (currentNode) {
|
|
11882
|
-
// if
|
|
11882
|
+
// if the currentNode is find by title (See below), we update the id of current layer.
|
|
11883
11883
|
if (isLayerGroupOptions(currentNode) &&
|
|
11884
11884
|
currentNode.id.toString().includes(ID_GROUP_PREFIX)) {
|
|
11885
11885
|
currentNode.id = identifier;
|
|
@@ -11925,12 +11925,9 @@ function handleExternalDataSource(options) {
|
|
|
11925
11925
|
};
|
|
11926
11926
|
}
|
|
11927
11927
|
function getLayerOptionIdentifier(layerOptions) {
|
|
11928
|
-
return
|
|
11928
|
+
return layerOptions.id
|
|
11929
11929
|
? String(layerOptions.id)
|
|
11930
|
-
:
|
|
11931
|
-
(layerOptions.id !== undefined
|
|
11932
|
-
? layerOptions.id.toString()
|
|
11933
|
-
: undefined));
|
|
11930
|
+
: getLayerParam(layerOptions);
|
|
11934
11931
|
}
|
|
11935
11932
|
function moveOptions(tree, initialIdentifier, options) {
|
|
11936
11933
|
removeNode(tree, initialIdentifier);
|
|
@@ -31283,7 +31280,7 @@ class ImportExportComponent {
|
|
|
31283
31280
|
this.selectedMode.set(event.value);
|
|
31284
31281
|
}
|
|
31285
31282
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: ImportExportComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
31286
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: ImportExportComponent, isStandalone: true, selector: "igo-import-export", inputs: { selectFirstProj: { classPropertyName: "selectFirstProj", publicName: "selectFirstProj", isSignal: true, isRequired: false, transformFunction: null }, map: { classPropertyName: "map", publicName: "map", isSignal: true, isRequired: false, transformFunction: null }, contextUri: { classPropertyName: "contextUri", publicName: "contextUri", isSignal: true, isRequired: false, transformFunction: null }, projectionsLimitations: { classPropertyName: "projectionsLimitations", publicName: "projectionsLimitations", isSignal: true, isRequired: false, transformFunction: null }, store: { classPropertyName: "store", publicName: "store", isSignal: true, isRequired: false, transformFunction: null }, selectedMode: { classPropertyName: "selectedMode", publicName: "selectedMode", isSignal: true, isRequired: false, transformFunction: null }, exportOptions$: { classPropertyName: "exportOptions$", publicName: "exportOptions$", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedMode: "selectedModeChange", selectMode: "selectMode", exportOptionsChange: "exportOptionsChange" }, providers: [ConfirmDialogService], ngImport: i0, template: "<div class=\"import-export-toggle\">\n <mat-button-toggle-group\n [value]=\"selectedMode()\"\n (change)=\"onImportExportChange($event)\"\n >\n <mat-button-toggle [value]=\"'import'\">\n {{ 'igo.geo.importExportForm.importTabTitle' | translate }}\n </mat-button-toggle>\n <mat-button-toggle [value]=\"'export'\">\n {{ 'igo.geo.importExportForm.exportTabTitle' | translate }}\n </mat-button-toggle>\n </mat-button-toggle-group>\n</div>\n\n@if (selectedMode() === 'import') {\n <form class=\"igo-form\" [formGroup]=\"importForm\">\n <div class=\"igo-input-container\">\n <mat-form-field>\n <mat-label>{{\n 'igo.geo.importExportForm.importProjPlaceholder' | translate\n }}</mat-label>\n <mat-select [(value)]=\"inputProj\">\n @for (projection of projections$ | async; track projection) {\n <mat-option [value]=\"projection\" (click)=\"$event.stopPropagation()\">\n @if (projection.translateKey) {\n <span matListItemTitle>\n {{\n 'igo.geo.importExportForm.projections.' +\n projection.translateKey | translate: projection\n }}\n </span>\n }\n @if (!projection.translateKey) {\n <span matListItemTitle>\n {{ projection.alias }}\n </span>\n }\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n <div\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"\n importForm.invalid\n ? ('igo.geo.importExportForm.projections.choose' | translate)\n : ('igo.geo.importExportForm.importButton' | translate)\n \"\n class=\"igo-form-button-group\"\n >\n <button\n [disabled]=\"importForm.invalid || (loading$ | async)\"\n matButton=\"elevated\"\n type=\"button\"\n (click)=\"fileInput.click()\"\n >\n {{ 'igo.geo.importExportForm.importButton' | translate }}\n </button>\n <igo-spinner [shown]=\"loading$ | async\" />\n <input\n hidden\n #fileInput\n type=\"file\"\n [style.display]=\"'none'\"\n (click)=\"fileInput.value = null\"\n (change)=\"importFiles($any($event.target).files)\"\n />\n </div>\n </form>\n}\n@if (selectedMode() === 'import') {\n <section>\n @if (importHtmlClarifications === '') {\n <div>\n <h4>\n {{ 'igo.geo.importExportForm.importClarifications' | translate }}\n </h4>\n <ul>\n <li>\n {{\n 'igo.geo.importExportForm.importSizeMax'\n | translate: { size: fileSizeMb }\n }}\n </li>\n <li>\n {{ 'igo.geo.importExportForm.importFormatAuthorized' | translate }}\n </li>\n <li>{{ 'igo.geo.importExportForm.importShpZip' | translate }}</li>\n </ul>\n </div>\n }\n @if (importHtmlClarifications !== '') {\n <igo-custom-html [html]=\"importHtmlClarifications\" />\n }\n </section>\n}\n\n@if ((exportableLayers$ | async).length === 0 && selectedMode() === 'export') {\n <section>\n <h4>\n {{ 'igo.geo.importExportForm.exportNoLayersExportable' | translate }}\n </h4>\n </section>\n}\n\n@if ((exportableLayers$ | async).length > 0 && selectedMode() === 'export') {\n <form class=\"igo-form\" [formGroup]=\"form\">\n <div class=\"igo-input-container\">\n <mat-form-field>\n <mat-label>{{\n 'igo.geo.importExportForm.exportLayerPlaceholder' | translate\n }}</mat-label>\n <mat-select [(value)]=\"layers\" multiple>\n <mat-select-trigger>\n {{ layers.length ? getLayerTitleById(layers[0]) : '' }}\n @if (layers.length > 1) {\n <span class=\"export-select-trigger\">\n (+{{ layers.length - 1 }}\n {{\n (layers?.length === 2\n ? 'igo.geo.importExportForm.other'\n : 'igo.geo.importExportForm.others'\n ) | translate\n }})\n </span>\n }\n </mat-select-trigger>\n @for (layer of exportableLayers$ | async; track layer) {\n <mat-option\n [ngClass]=\"{\n 'igo-export-layer-mat-option': layerHasSelectedFeatures(layer)\n }\"\n [value]=\"layer.id\"\n (click)=\"$event.stopPropagation()\"\n >\n <span matListItemTitle>{{ layer.title }}</span>\n <span matListItemTitle>\n @if (layerHasSelectedFeatures(layer)) {\n <mat-slide-toggle\n (click)=\"onlySelectedClick($event, layer.id)\"\n (checked)=\"inLayersIdToExportSelectionOnly(layer)\"\n (change)=\"onlySelected($event, layer.id)\"\n >\n <small>{{\n 'igo.geo.importExportForm.exportSelectedFeature'\n | translate\n }}</small>\n </mat-slide-toggle>\n }\n </span>\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"igo-input-container\">\n <mat-form-field>\n <mat-label>{{\n 'igo.geo.importExportForm.exportFormatPlaceholder' | translate\n }}</mat-label>\n <mat-select formControlName=\"format\">\n @if ((formats$ | async).length !== 0) {\n @for (format of formats$ | async; track format) {\n <mat-option [value]=\"format\">\n {{ 'igo.geo.export.format.' + format | translate }}\n </mat-option>\n }\n }\n @if ((formats$ | async).length === 0) {\n <mat-option disabled=\"true\">\n {{ 'igo.geo.export.noFormat.title' | translate }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n @if (forceNaming && form.value.format !== 'URL') {\n <div class=\"igo-input-container\">\n <mat-form-field>\n <input\n matInput\n formControlName=\"name\"\n placeholder=\"{{\n 'igo.geo.importExportForm.exportFileNamePlaceholder' | translate\n }}\"\n />\n </mat-form-field>\n </div>\n }\n @if (this.isCsvExport(form.value.format)) {\n <div class=\"igo-input-container\">\n <mat-form-field>\n <mat-label>{{ 'igo.geo.export.separator' | translate }}</mat-label>\n <mat-select formControlName=\"csvSeparator\">\n @for (separator of csvSeparators; track separator) {\n <mat-option [value]=\"separator\">\n {{ 'igo.geo.export.csv.separator.' + separator | translate }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n @if (layers.length > 1) {\n <div class=\"export-combine-layers\">\n <mat-slide-toggle\n formControlName=\"combineLayers\"\n [labelPosition]=\"'before'\"\n >\n {{ 'igo.geo.importExportForm.exportCombineResults' | translate }}\n </mat-slide-toggle>\n </div>\n }\n @if (layers.length > 1 && form.value.combineLayers) {\n <div class=\"export-separator\">\n <mat-slide-toggle\n formControlName=\"separator\"\n [labelPosition]=\"'before'\"\n >\n {{ 'igo.geo.importExportForm.exportSeparator' | translate }}\n </mat-slide-toggle>\n </div>\n }\n }\n @if (form.value.format !== 'URL') {\n <div class=\"export-options\">\n <mat-slide-toggle\n formControlName=\"featureInMapExtent\"\n [labelPosition]=\"'before'\"\n >\n {{ 'igo.geo.importExportForm.exportFeatureInExtent' | translate }}\n </mat-slide-toggle>\n </div>\n }\n <div class=\"igo-form-button-group\">\n <button\n matButton=\"elevated\"\n type=\"button\"\n [disabled]=\"!form.valid || (loading$ | async)\"\n (click)=\"handleExportFormSubmit(form.value)\"\n >\n {{\n form.value.format !== 'URL'\n ? ('igo.geo.importExportForm.exportButton' | translate)\n : form.value.layers.length > 1\n ? ('igo.geo.importExportForm.exportButtonLinks' | translate)\n : ('igo.geo.importExportForm.exportButtonLink' | translate)\n }}\n </button>\n <igo-spinner [shown]=\"loading$ | async\" />\n </div>\n @if (exportHtmlClarifications !== '') {\n <igo-custom-html [html]=\"exportHtmlClarifications\" />\n }\n </form>\n}\n", styles: [":host{padding:16px;display:flex;flex-direction:column;gap:16px}:host mat-option.igo-export-layer-mat-option{height:5em;line-height:1em}:host .import-export-toggle mat-button-toggle-group{width:100%}:host .import-export-toggle mat-button-toggle-group mat-button-toggle{width:50%}:host .igo-input-container mat-form-field{width:100%}:host .igo-form-button-group{text-align:center}:host igo-spinner{position:absolute}:host .export-options mat-slide-toggle,:host .export-combine-layers mat-slide-toggle,:host .export-separator mat-slide-toggle{width:100%;padding:10px}:host .export-options mat-slide-toggle ::ng-deep .mdc-form-field,:host .export-combine-layers mat-slide-toggle ::ng-deep .mdc-form-field,:host .export-separator mat-slide-toggle ::ng-deep .mdc-form-field{width:100%}:host .export-options mat-slide-toggle ::ng-deep .mdc-label,:host .export-combine-layers mat-slide-toggle ::ng-deep .mdc-label,:host .export-separator mat-slide-toggle ::ng-deep .mdc-label{margin-left:0;width:calc(100% - 60px)}:host .export-select-trigger{opacity:.75;font-size:.75em}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonToggleModule }, { kind: "directive", type: i1$4.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i1$4.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i4$3.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: i4$3.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i4$3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: SpinnerComponent, selector: "igo-spinner", inputs: ["shown"] }, { kind: "component", type: CustomHtmlComponent, selector: "igo-custom-html", inputs: ["html"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i1$3.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] });
|
|
31283
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: ImportExportComponent, isStandalone: true, selector: "igo-import-export", inputs: { selectFirstProj: { classPropertyName: "selectFirstProj", publicName: "selectFirstProj", isSignal: true, isRequired: false, transformFunction: null }, map: { classPropertyName: "map", publicName: "map", isSignal: true, isRequired: false, transformFunction: null }, contextUri: { classPropertyName: "contextUri", publicName: "contextUri", isSignal: true, isRequired: false, transformFunction: null }, projectionsLimitations: { classPropertyName: "projectionsLimitations", publicName: "projectionsLimitations", isSignal: true, isRequired: false, transformFunction: null }, store: { classPropertyName: "store", publicName: "store", isSignal: true, isRequired: false, transformFunction: null }, selectedMode: { classPropertyName: "selectedMode", publicName: "selectedMode", isSignal: true, isRequired: false, transformFunction: null }, exportOptions$: { classPropertyName: "exportOptions$", publicName: "exportOptions$", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedMode: "selectedModeChange", selectMode: "selectMode", exportOptionsChange: "exportOptionsChange" }, providers: [ConfirmDialogService], ngImport: i0, template: "<div class=\"import-export-toggle\">\n <mat-button-toggle-group\n [value]=\"selectedMode()\"\n (change)=\"onImportExportChange($event)\"\n >\n <mat-button-toggle [value]=\"'import'\">\n {{ 'igo.geo.importExportForm.importTabTitle' | translate }}\n </mat-button-toggle>\n <mat-button-toggle [value]=\"'export'\">\n {{ 'igo.geo.importExportForm.exportTabTitle' | translate }}\n </mat-button-toggle>\n </mat-button-toggle-group>\n</div>\n\n@if (selectedMode() === 'import') {\n <form class=\"igo-form\" [formGroup]=\"importForm\">\n <div class=\"igo-input-container\">\n <mat-form-field>\n <mat-label>{{\n 'igo.geo.importExportForm.importProjPlaceholder' | translate\n }}</mat-label>\n <mat-select [(value)]=\"inputProj\">\n @for (projection of projections$ | async; track projection) {\n <mat-option [value]=\"projection\" (click)=\"$event.stopPropagation()\">\n @if (projection.translateKey) {\n <span matListItemTitle>\n {{\n 'igo.geo.importExportForm.projections.' +\n projection.translateKey | translate: projection\n }}\n </span>\n }\n @if (!projection.translateKey) {\n <span matListItemTitle>\n {{ projection.alias }}\n </span>\n }\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n <div\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"\n importForm.invalid\n ? ('igo.geo.importExportForm.projections.choose' | translate)\n : ('igo.geo.importExportForm.importButton' | translate)\n \"\n class=\"igo-form-button-group\"\n >\n <button\n [disabled]=\"importForm.invalid || (loading$ | async)\"\n matButton=\"elevated\"\n type=\"button\"\n (click)=\"fileInput.click()\"\n >\n {{ 'igo.geo.importExportForm.importButton' | translate }}\n </button>\n <igo-spinner [shown]=\"loading$ | async\" />\n <input\n hidden\n #fileInput\n type=\"file\"\n [style.display]=\"'none'\"\n (click)=\"fileInput.value = null\"\n (change)=\"importFiles($any($event.target).files)\"\n />\n </div>\n </form>\n\n <section>\n @if (importHtmlClarifications === '') {\n <div>\n <h4>\n {{ 'igo.geo.importExportForm.importClarifications' | translate }}\n </h4>\n <ul>\n <li>\n {{\n 'igo.geo.importExportForm.importSizeMax'\n | translate: { size: fileSizeMb }\n }}\n </li>\n <li>\n {{ 'igo.geo.importExportForm.importFormatAuthorized' | translate }}\n </li>\n <li>{{ 'igo.geo.importExportForm.importShpZip' | translate }}</li>\n </ul>\n </div>\n }\n @if (importHtmlClarifications !== '') {\n <igo-custom-html [html]=\"importHtmlClarifications\" />\n }\n </section>\n} @else if (selectedMode() === 'export') {\n @let hasExports = (exportableLayers$ | async).length === 0;\n @if (hasExports) {\n <section>\n <h4>\n {{ 'igo.geo.importExportForm.exportNoLayersExportable' | translate }}\n </h4>\n </section>\n\n <form class=\"igo-form\" [formGroup]=\"form\">\n <div class=\"igo-input-container\">\n <mat-form-field>\n <mat-label>{{\n 'igo.geo.importExportForm.exportLayerPlaceholder' | translate\n }}</mat-label>\n <mat-select [(value)]=\"layers\" multiple>\n <mat-select-trigger>\n {{ layers.length ? getLayerTitleById(layers[0]) : '' }}\n @if (layers.length > 1) {\n <span class=\"export-select-trigger\">\n (+{{ layers.length - 1 }}\n {{\n (layers?.length === 2\n ? 'igo.geo.importExportForm.other'\n : 'igo.geo.importExportForm.others'\n ) | translate\n }})\n </span>\n }\n </mat-select-trigger>\n @for (layer of exportableLayers$ | async; track layer) {\n <mat-option\n [ngClass]=\"{\n 'igo-export-layer-mat-option': layerHasSelectedFeatures(layer)\n }\"\n [value]=\"layer.id\"\n (click)=\"$event.stopPropagation()\"\n >\n <span matListItemTitle>{{ layer.title }}</span>\n <span matListItemTitle>\n @if (layerHasSelectedFeatures(layer)) {\n <mat-slide-toggle\n (click)=\"onlySelectedClick($event, layer.id)\"\n (checked)=\"inLayersIdToExportSelectionOnly(layer)\"\n (change)=\"onlySelected($event, layer.id)\"\n >\n <small>{{\n 'igo.geo.importExportForm.exportSelectedFeature'\n | translate\n }}</small>\n </mat-slide-toggle>\n }\n </span>\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"igo-input-container\">\n <mat-form-field>\n <mat-label>{{\n 'igo.geo.importExportForm.exportFormatPlaceholder' | translate\n }}</mat-label>\n <mat-select formControlName=\"format\">\n @if ((formats$ | async).length !== 0) {\n @for (format of formats$ | async; track format) {\n <mat-option [value]=\"format\">\n {{ 'igo.geo.export.format.' + format | translate }}\n </mat-option>\n }\n }\n @if ((formats$ | async).length === 0) {\n <mat-option disabled=\"true\">\n {{ 'igo.geo.export.noFormat.title' | translate }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n @if (forceNaming && form.value.format !== 'URL') {\n <div class=\"igo-input-container\">\n <mat-form-field>\n <input\n matInput\n formControlName=\"name\"\n placeholder=\"{{\n 'igo.geo.importExportForm.exportFileNamePlaceholder' | translate\n }}\"\n />\n </mat-form-field>\n </div>\n }\n @if (this.isCsvExport(form.value.format)) {\n <div class=\"igo-input-container\">\n <mat-form-field>\n <mat-label>{{ 'igo.geo.export.separator' | translate }}</mat-label>\n <mat-select formControlName=\"csvSeparator\">\n @for (separator of csvSeparators; track separator) {\n <mat-option [value]=\"separator\">\n {{ 'igo.geo.export.csv.separator.' + separator | translate }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n @if (layers.length > 1) {\n <div class=\"export-combine-layers\">\n <mat-slide-toggle\n formControlName=\"combineLayers\"\n [labelPosition]=\"'before'\"\n >\n {{ 'igo.geo.importExportForm.exportCombineResults' | translate }}\n </mat-slide-toggle>\n </div>\n }\n @if (layers.length > 1 && form.value.combineLayers) {\n <div class=\"export-separator\">\n <mat-slide-toggle\n formControlName=\"separator\"\n [labelPosition]=\"'before'\"\n >\n {{ 'igo.geo.importExportForm.exportSeparator' | translate }}\n </mat-slide-toggle>\n </div>\n }\n }\n @if (form.value.format !== 'URL') {\n <div class=\"export-options\">\n <mat-slide-toggle\n formControlName=\"featureInMapExtent\"\n [labelPosition]=\"'before'\"\n >\n {{ 'igo.geo.importExportForm.exportFeatureInExtent' | translate }}\n </mat-slide-toggle>\n </div>\n }\n <div class=\"igo-form-button-group\">\n <button\n matButton=\"elevated\"\n type=\"button\"\n [disabled]=\"!form.valid || (loading$ | async)\"\n (click)=\"handleExportFormSubmit(form.value)\"\n >\n {{\n form.value.format !== 'URL'\n ? ('igo.geo.importExportForm.exportButton' | translate)\n : form.value.layers.length > 1\n ? ('igo.geo.importExportForm.exportButtonLinks' | translate)\n : ('igo.geo.importExportForm.exportButtonLink' | translate)\n }}\n </button>\n <igo-spinner [shown]=\"loading$ | async\" />\n </div>\n @if (exportHtmlClarifications !== '') {\n <igo-custom-html [html]=\"exportHtmlClarifications\" />\n }\n </form>\n }\n}\n", styles: [":host{padding:16px;display:flex;flex-direction:column;gap:16px}:host mat-option.igo-export-layer-mat-option{height:5em;line-height:1em}:host .import-export-toggle mat-button-toggle-group{width:100%}:host .import-export-toggle mat-button-toggle-group mat-button-toggle{width:50%}:host .igo-input-container mat-form-field{width:100%}:host .igo-form-button-group{text-align:center}:host igo-spinner{position:absolute}:host .export-options mat-slide-toggle,:host .export-combine-layers mat-slide-toggle,:host .export-separator mat-slide-toggle{width:100%;padding:10px}:host .export-options mat-slide-toggle ::ng-deep .mdc-form-field,:host .export-combine-layers mat-slide-toggle ::ng-deep .mdc-form-field,:host .export-separator mat-slide-toggle ::ng-deep .mdc-form-field{width:100%}:host .export-options mat-slide-toggle ::ng-deep .mdc-label,:host .export-combine-layers mat-slide-toggle ::ng-deep .mdc-label,:host .export-separator mat-slide-toggle ::ng-deep .mdc-label{margin-left:0;width:calc(100% - 60px)}:host .export-select-trigger{opacity:.75;font-size:.75em}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonToggleModule }, { kind: "directive", type: i1$4.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i1$4.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i4$3.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: i4$3.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i4$3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: SpinnerComponent, selector: "igo-spinner", inputs: ["shown"] }, { kind: "component", type: CustomHtmlComponent, selector: "igo-custom-html", inputs: ["html"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i1$3.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] });
|
|
31287
31284
|
}
|
|
31288
31285
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: ImportExportComponent, decorators: [{
|
|
31289
31286
|
type: Component,
|
|
@@ -31303,7 +31300,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImpo
|
|
|
31303
31300
|
MatInputModule,
|
|
31304
31301
|
AsyncPipe,
|
|
31305
31302
|
IgoLanguageModule
|
|
31306
|
-
], providers: [ConfirmDialogService], template: "<div class=\"import-export-toggle\">\n <mat-button-toggle-group\n [value]=\"selectedMode()\"\n (change)=\"onImportExportChange($event)\"\n >\n <mat-button-toggle [value]=\"'import'\">\n {{ 'igo.geo.importExportForm.importTabTitle' | translate }}\n </mat-button-toggle>\n <mat-button-toggle [value]=\"'export'\">\n {{ 'igo.geo.importExportForm.exportTabTitle' | translate }}\n </mat-button-toggle>\n </mat-button-toggle-group>\n</div>\n\n@if (selectedMode() === 'import') {\n <form class=\"igo-form\" [formGroup]=\"importForm\">\n <div class=\"igo-input-container\">\n <mat-form-field>\n <mat-label>{{\n 'igo.geo.importExportForm.importProjPlaceholder' | translate\n }}</mat-label>\n <mat-select [(value)]=\"inputProj\">\n @for (projection of projections$ | async; track projection) {\n <mat-option [value]=\"projection\" (click)=\"$event.stopPropagation()\">\n @if (projection.translateKey) {\n <span matListItemTitle>\n {{\n 'igo.geo.importExportForm.projections.' +\n projection.translateKey | translate: projection\n }}\n </span>\n }\n @if (!projection.translateKey) {\n <span matListItemTitle>\n {{ projection.alias }}\n </span>\n }\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n <div\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"\n importForm.invalid\n ? ('igo.geo.importExportForm.projections.choose' | translate)\n : ('igo.geo.importExportForm.importButton' | translate)\n \"\n class=\"igo-form-button-group\"\n >\n <button\n [disabled]=\"importForm.invalid || (loading$ | async)\"\n matButton=\"elevated\"\n type=\"button\"\n (click)=\"fileInput.click()\"\n >\n {{ 'igo.geo.importExportForm.importButton' | translate }}\n </button>\n <igo-spinner [shown]=\"loading$ | async\" />\n <input\n hidden\n #fileInput\n type=\"file\"\n [style.display]=\"'none'\"\n (click)=\"fileInput.value = null\"\n (change)=\"importFiles($any($event.target).files)\"\n />\n </div>\n </form>\n}\n@if (selectedMode() === 'import') {\n <section>\n @if (importHtmlClarifications === '') {\n <div>\n <h4>\n {{ 'igo.geo.importExportForm.importClarifications' | translate }}\n </h4>\n <ul>\n <li>\n {{\n 'igo.geo.importExportForm.importSizeMax'\n | translate: { size: fileSizeMb }\n }}\n </li>\n <li>\n {{ 'igo.geo.importExportForm.importFormatAuthorized' | translate }}\n </li>\n <li>{{ 'igo.geo.importExportForm.importShpZip' | translate }}</li>\n </ul>\n </div>\n }\n @if (importHtmlClarifications !== '') {\n <igo-custom-html [html]=\"importHtmlClarifications\" />\n }\n </section>\n}\n\n@if ((exportableLayers$ | async).length === 0 && selectedMode() === 'export') {\n <section>\n <h4>\n {{ 'igo.geo.importExportForm.exportNoLayersExportable' | translate }}\n </h4>\n </section>\n}\n\n@if ((exportableLayers$ | async).length > 0 && selectedMode() === 'export') {\n <form class=\"igo-form\" [formGroup]=\"form\">\n <div class=\"igo-input-container\">\n <mat-form-field>\n <mat-label>{{\n 'igo.geo.importExportForm.exportLayerPlaceholder' | translate\n }}</mat-label>\n <mat-select [(value)]=\"layers\" multiple>\n <mat-select-trigger>\n {{ layers.length ? getLayerTitleById(layers[0]) : '' }}\n @if (layers.length > 1) {\n <span class=\"export-select-trigger\">\n (+{{ layers.length - 1 }}\n {{\n (layers?.length === 2\n ? 'igo.geo.importExportForm.other'\n : 'igo.geo.importExportForm.others'\n ) | translate\n }})\n </span>\n }\n </mat-select-trigger>\n @for (layer of exportableLayers$ | async; track layer) {\n <mat-option\n [ngClass]=\"{\n 'igo-export-layer-mat-option': layerHasSelectedFeatures(layer)\n }\"\n [value]=\"layer.id\"\n (click)=\"$event.stopPropagation()\"\n >\n <span matListItemTitle>{{ layer.title }}</span>\n <span matListItemTitle>\n @if (layerHasSelectedFeatures(layer)) {\n <mat-slide-toggle\n (click)=\"onlySelectedClick($event, layer.id)\"\n (checked)=\"inLayersIdToExportSelectionOnly(layer)\"\n (change)=\"onlySelected($event, layer.id)\"\n >\n <small>{{\n 'igo.geo.importExportForm.exportSelectedFeature'\n | translate\n }}</small>\n </mat-slide-toggle>\n }\n </span>\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"igo-input-container\">\n <mat-form-field>\n <mat-label>{{\n 'igo.geo.importExportForm.exportFormatPlaceholder' | translate\n }}</mat-label>\n <mat-select formControlName=\"format\">\n @if ((formats$ | async).length !== 0) {\n @for (format of formats$ | async; track format) {\n <mat-option [value]=\"format\">\n {{ 'igo.geo.export.format.' + format | translate }}\n </mat-option>\n }\n }\n @if ((formats$ | async).length === 0) {\n <mat-option disabled=\"true\">\n {{ 'igo.geo.export.noFormat.title' | translate }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n @if (forceNaming && form.value.format !== 'URL') {\n <div class=\"igo-input-container\">\n <mat-form-field>\n <input\n matInput\n formControlName=\"name\"\n placeholder=\"{{\n 'igo.geo.importExportForm.exportFileNamePlaceholder' | translate\n }}\"\n />\n </mat-form-field>\n </div>\n }\n @if (this.isCsvExport(form.value.format)) {\n <div class=\"igo-input-container\">\n <mat-form-field>\n <mat-label>{{ 'igo.geo.export.separator' | translate }}</mat-label>\n <mat-select formControlName=\"csvSeparator\">\n @for (separator of csvSeparators; track separator) {\n <mat-option [value]=\"separator\">\n {{ 'igo.geo.export.csv.separator.' + separator | translate }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n @if (layers.length > 1) {\n <div class=\"export-combine-layers\">\n <mat-slide-toggle\n formControlName=\"combineLayers\"\n [labelPosition]=\"'before'\"\n >\n {{ 'igo.geo.importExportForm.exportCombineResults' | translate }}\n </mat-slide-toggle>\n </div>\n }\n @if (layers.length > 1 && form.value.combineLayers) {\n <div class=\"export-separator\">\n <mat-slide-toggle\n formControlName=\"separator\"\n [labelPosition]=\"'before'\"\n >\n {{ 'igo.geo.importExportForm.exportSeparator' | translate }}\n </mat-slide-toggle>\n </div>\n }\n }\n @if (form.value.format !== 'URL') {\n <div class=\"export-options\">\n <mat-slide-toggle\n formControlName=\"featureInMapExtent\"\n [labelPosition]=\"'before'\"\n >\n {{ 'igo.geo.importExportForm.exportFeatureInExtent' | translate }}\n </mat-slide-toggle>\n </div>\n }\n <div class=\"igo-form-button-group\">\n <button\n matButton=\"elevated\"\n type=\"button\"\n [disabled]=\"!form.valid || (loading$ | async)\"\n (click)=\"handleExportFormSubmit(form.value)\"\n >\n {{\n form.value.format !== 'URL'\n ? ('igo.geo.importExportForm.exportButton' | translate)\n : form.value.layers.length > 1\n ? ('igo.geo.importExportForm.exportButtonLinks' | translate)\n : ('igo.geo.importExportForm.exportButtonLink' | translate)\n }}\n </button>\n <igo-spinner [shown]=\"loading$ | async\" />\n </div>\n @if (exportHtmlClarifications !== '') {\n <igo-custom-html [html]=\"exportHtmlClarifications\" />\n }\n </form>\n}\n", styles: [":host{padding:16px;display:flex;flex-direction:column;gap:16px}:host mat-option.igo-export-layer-mat-option{height:5em;line-height:1em}:host .import-export-toggle mat-button-toggle-group{width:100%}:host .import-export-toggle mat-button-toggle-group mat-button-toggle{width:50%}:host .igo-input-container mat-form-field{width:100%}:host .igo-form-button-group{text-align:center}:host igo-spinner{position:absolute}:host .export-options mat-slide-toggle,:host .export-combine-layers mat-slide-toggle,:host .export-separator mat-slide-toggle{width:100%;padding:10px}:host .export-options mat-slide-toggle ::ng-deep .mdc-form-field,:host .export-combine-layers mat-slide-toggle ::ng-deep .mdc-form-field,:host .export-separator mat-slide-toggle ::ng-deep .mdc-form-field{width:100%}:host .export-options mat-slide-toggle ::ng-deep .mdc-label,:host .export-combine-layers mat-slide-toggle ::ng-deep .mdc-label,:host .export-separator mat-slide-toggle ::ng-deep .mdc-label{margin-left:0;width:calc(100% - 60px)}:host .export-select-trigger{opacity:.75;font-size:.75em}\n"] }]
|
|
31303
|
+
], providers: [ConfirmDialogService], template: "<div class=\"import-export-toggle\">\n <mat-button-toggle-group\n [value]=\"selectedMode()\"\n (change)=\"onImportExportChange($event)\"\n >\n <mat-button-toggle [value]=\"'import'\">\n {{ 'igo.geo.importExportForm.importTabTitle' | translate }}\n </mat-button-toggle>\n <mat-button-toggle [value]=\"'export'\">\n {{ 'igo.geo.importExportForm.exportTabTitle' | translate }}\n </mat-button-toggle>\n </mat-button-toggle-group>\n</div>\n\n@if (selectedMode() === 'import') {\n <form class=\"igo-form\" [formGroup]=\"importForm\">\n <div class=\"igo-input-container\">\n <mat-form-field>\n <mat-label>{{\n 'igo.geo.importExportForm.importProjPlaceholder' | translate\n }}</mat-label>\n <mat-select [(value)]=\"inputProj\">\n @for (projection of projections$ | async; track projection) {\n <mat-option [value]=\"projection\" (click)=\"$event.stopPropagation()\">\n @if (projection.translateKey) {\n <span matListItemTitle>\n {{\n 'igo.geo.importExportForm.projections.' +\n projection.translateKey | translate: projection\n }}\n </span>\n }\n @if (!projection.translateKey) {\n <span matListItemTitle>\n {{ projection.alias }}\n </span>\n }\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n <div\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"\n importForm.invalid\n ? ('igo.geo.importExportForm.projections.choose' | translate)\n : ('igo.geo.importExportForm.importButton' | translate)\n \"\n class=\"igo-form-button-group\"\n >\n <button\n [disabled]=\"importForm.invalid || (loading$ | async)\"\n matButton=\"elevated\"\n type=\"button\"\n (click)=\"fileInput.click()\"\n >\n {{ 'igo.geo.importExportForm.importButton' | translate }}\n </button>\n <igo-spinner [shown]=\"loading$ | async\" />\n <input\n hidden\n #fileInput\n type=\"file\"\n [style.display]=\"'none'\"\n (click)=\"fileInput.value = null\"\n (change)=\"importFiles($any($event.target).files)\"\n />\n </div>\n </form>\n\n <section>\n @if (importHtmlClarifications === '') {\n <div>\n <h4>\n {{ 'igo.geo.importExportForm.importClarifications' | translate }}\n </h4>\n <ul>\n <li>\n {{\n 'igo.geo.importExportForm.importSizeMax'\n | translate: { size: fileSizeMb }\n }}\n </li>\n <li>\n {{ 'igo.geo.importExportForm.importFormatAuthorized' | translate }}\n </li>\n <li>{{ 'igo.geo.importExportForm.importShpZip' | translate }}</li>\n </ul>\n </div>\n }\n @if (importHtmlClarifications !== '') {\n <igo-custom-html [html]=\"importHtmlClarifications\" />\n }\n </section>\n} @else if (selectedMode() === 'export') {\n @let hasExports = (exportableLayers$ | async).length === 0;\n @if (hasExports) {\n <section>\n <h4>\n {{ 'igo.geo.importExportForm.exportNoLayersExportable' | translate }}\n </h4>\n </section>\n\n <form class=\"igo-form\" [formGroup]=\"form\">\n <div class=\"igo-input-container\">\n <mat-form-field>\n <mat-label>{{\n 'igo.geo.importExportForm.exportLayerPlaceholder' | translate\n }}</mat-label>\n <mat-select [(value)]=\"layers\" multiple>\n <mat-select-trigger>\n {{ layers.length ? getLayerTitleById(layers[0]) : '' }}\n @if (layers.length > 1) {\n <span class=\"export-select-trigger\">\n (+{{ layers.length - 1 }}\n {{\n (layers?.length === 2\n ? 'igo.geo.importExportForm.other'\n : 'igo.geo.importExportForm.others'\n ) | translate\n }})\n </span>\n }\n </mat-select-trigger>\n @for (layer of exportableLayers$ | async; track layer) {\n <mat-option\n [ngClass]=\"{\n 'igo-export-layer-mat-option': layerHasSelectedFeatures(layer)\n }\"\n [value]=\"layer.id\"\n (click)=\"$event.stopPropagation()\"\n >\n <span matListItemTitle>{{ layer.title }}</span>\n <span matListItemTitle>\n @if (layerHasSelectedFeatures(layer)) {\n <mat-slide-toggle\n (click)=\"onlySelectedClick($event, layer.id)\"\n (checked)=\"inLayersIdToExportSelectionOnly(layer)\"\n (change)=\"onlySelected($event, layer.id)\"\n >\n <small>{{\n 'igo.geo.importExportForm.exportSelectedFeature'\n | translate\n }}</small>\n </mat-slide-toggle>\n }\n </span>\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n <div class=\"igo-input-container\">\n <mat-form-field>\n <mat-label>{{\n 'igo.geo.importExportForm.exportFormatPlaceholder' | translate\n }}</mat-label>\n <mat-select formControlName=\"format\">\n @if ((formats$ | async).length !== 0) {\n @for (format of formats$ | async; track format) {\n <mat-option [value]=\"format\">\n {{ 'igo.geo.export.format.' + format | translate }}\n </mat-option>\n }\n }\n @if ((formats$ | async).length === 0) {\n <mat-option disabled=\"true\">\n {{ 'igo.geo.export.noFormat.title' | translate }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n @if (forceNaming && form.value.format !== 'URL') {\n <div class=\"igo-input-container\">\n <mat-form-field>\n <input\n matInput\n formControlName=\"name\"\n placeholder=\"{{\n 'igo.geo.importExportForm.exportFileNamePlaceholder' | translate\n }}\"\n />\n </mat-form-field>\n </div>\n }\n @if (this.isCsvExport(form.value.format)) {\n <div class=\"igo-input-container\">\n <mat-form-field>\n <mat-label>{{ 'igo.geo.export.separator' | translate }}</mat-label>\n <mat-select formControlName=\"csvSeparator\">\n @for (separator of csvSeparators; track separator) {\n <mat-option [value]=\"separator\">\n {{ 'igo.geo.export.csv.separator.' + separator | translate }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n @if (layers.length > 1) {\n <div class=\"export-combine-layers\">\n <mat-slide-toggle\n formControlName=\"combineLayers\"\n [labelPosition]=\"'before'\"\n >\n {{ 'igo.geo.importExportForm.exportCombineResults' | translate }}\n </mat-slide-toggle>\n </div>\n }\n @if (layers.length > 1 && form.value.combineLayers) {\n <div class=\"export-separator\">\n <mat-slide-toggle\n formControlName=\"separator\"\n [labelPosition]=\"'before'\"\n >\n {{ 'igo.geo.importExportForm.exportSeparator' | translate }}\n </mat-slide-toggle>\n </div>\n }\n }\n @if (form.value.format !== 'URL') {\n <div class=\"export-options\">\n <mat-slide-toggle\n formControlName=\"featureInMapExtent\"\n [labelPosition]=\"'before'\"\n >\n {{ 'igo.geo.importExportForm.exportFeatureInExtent' | translate }}\n </mat-slide-toggle>\n </div>\n }\n <div class=\"igo-form-button-group\">\n <button\n matButton=\"elevated\"\n type=\"button\"\n [disabled]=\"!form.valid || (loading$ | async)\"\n (click)=\"handleExportFormSubmit(form.value)\"\n >\n {{\n form.value.format !== 'URL'\n ? ('igo.geo.importExportForm.exportButton' | translate)\n : form.value.layers.length > 1\n ? ('igo.geo.importExportForm.exportButtonLinks' | translate)\n : ('igo.geo.importExportForm.exportButtonLink' | translate)\n }}\n </button>\n <igo-spinner [shown]=\"loading$ | async\" />\n </div>\n @if (exportHtmlClarifications !== '') {\n <igo-custom-html [html]=\"exportHtmlClarifications\" />\n }\n </form>\n }\n}\n", styles: [":host{padding:16px;display:flex;flex-direction:column;gap:16px}:host mat-option.igo-export-layer-mat-option{height:5em;line-height:1em}:host .import-export-toggle mat-button-toggle-group{width:100%}:host .import-export-toggle mat-button-toggle-group mat-button-toggle{width:50%}:host .igo-input-container mat-form-field{width:100%}:host .igo-form-button-group{text-align:center}:host igo-spinner{position:absolute}:host .export-options mat-slide-toggle,:host .export-combine-layers mat-slide-toggle,:host .export-separator mat-slide-toggle{width:100%;padding:10px}:host .export-options mat-slide-toggle ::ng-deep .mdc-form-field,:host .export-combine-layers mat-slide-toggle ::ng-deep .mdc-form-field,:host .export-separator mat-slide-toggle ::ng-deep .mdc-form-field{width:100%}:host .export-options mat-slide-toggle ::ng-deep .mdc-label,:host .export-combine-layers mat-slide-toggle ::ng-deep .mdc-label,:host .export-separator mat-slide-toggle ::ng-deep .mdc-label{margin-left:0;width:calc(100% - 60px)}:host .export-select-trigger{opacity:.75;font-size:.75em}\n"] }]
|
|
31307
31304
|
}], ctorParameters: () => [], propDecorators: { selectFirstProj: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectFirstProj", required: false }] }], map: [{ type: i0.Input, args: [{ isSignal: true, alias: "map", required: false }] }], contextUri: [{ type: i0.Input, args: [{ isSignal: true, alias: "contextUri", required: false }] }], projectionsLimitations: [{ type: i0.Input, args: [{ isSignal: true, alias: "projectionsLimitations", required: false }] }], store: [{ type: i0.Input, args: [{ isSignal: true, alias: "store", required: false }] }], selectedMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedMode", required: false }] }, { type: i0.Output, args: ["selectedModeChange"] }], selectMode: [{ type: i0.Output, args: ["selectMode"] }], exportOptions$: [{ type: i0.Input, args: [{ isSignal: true, alias: "exportOptions$", required: false }] }], exportOptionsChange: [{ type: i0.Output, args: ["exportOptionsChange"] }] } });
|
|
31308
31305
|
|
|
31309
31306
|
class DropGeoFileDirective extends DragAndDropDirective {
|