UNPKG

@gouvfr-anct/mediation-numerique

Version:

📚 Bibliothèque pour la cartographie de l’offre de médiation numérique.

1,989 lines 300 kB
import * as i0 from '@angular/core';
import { InjectionToken, Injectable, EventEmitter, Component, Inject, Input, Output, HostListener, NgModule, Optional } from '@angular/core';
import L, { divIcon, Marker, layerGroup, tileLayer, latLng, geoJSON } from 'leaflet';
import * as _ from 'lodash';
import * as i3 from '@angular/common';
import { CommonModule } from '@angular/common';
import * as i3$1 from '@asymmetrik/ngx-leaflet';
import { LeafletModule } from '@asymmetrik/ngx-leaflet';
import * as i1 from '@angular/router';
import * as i4 from '@angular/flex-layout';
import { FlexModule } from '@angular/flex-layout';
import * as i5 from '@gouvfr-anct/mediation-numerique/shared';
import { ButtonType, SvgIconModule, ButtonModule, ModalModule, DayModule, PhoneModule, DistanceModule, TextInputModalModule } from '@gouvfr-anct/mediation-numerique/shared';
import * as i1$1 from '@angular/forms';
import { ReactiveFormsModule } from '@angular/forms';
import { __awaiter } from 'tslib';
import { trigger, transition, style, animate, state, AUTO_STYLE } from '@angular/animations';

const GEOMETRY_POLYGON_TOKEN = new InjectionToken('geometry-polygon.configuration');

const INITIAL_POSITION_TOKEN = new InjectionToken('initial-position.configuration');

const MARKER_TYPE_TOKEN = new InjectionToken('marker-type.configuration');

const ZOOM_LEVEL_TOKEN = new InjectionToken('zoom-level.configuration');

const GEO_JSON_TOKEN = new InjectionToken('map.geo-json.repository');

var Layers;
(function (Layers) {
    Layers["mdm"] = "mdm";
    Layers["user"] = "user";
    Layers["structure"] = "structure";
})(Layers || (Layers = {}));

var MarkerType;
(function (MarkerType) {
    MarkerType[MarkerType["structure"] = 0] = "structure";
    MarkerType[MarkerType["mdm"] = 1] = "mdm";
    MarkerType[MarkerType["conseillerFrance"] = 2] = "conseillerFrance";
    MarkerType[MarkerType["user"] = 3] = "user";
})(MarkerType || (MarkerType = {}));

const markerIcon = divIcon({
    className: null,
    html: '<svg width="48" height="48" fill="#4C4D53"><use xlink:href="assets/ico/sprite.svg#map-marker"></use></svg>',
    iconSize: [48, 48],
    iconAnchor: [24, 48],
    popupAnchor: [0, -48]
});
const markerIconActive = divIcon({
    className: 'on-top-marker',
    html: '<svg width="48" height="48"><use xlink:href="assets/ico/sprite.svg#map-markerSelected"></use></svg>',
    iconSize: [48, 48],
    iconAnchor: [24, 48],
    popupAnchor: [0, -48]
});
const markerIconHover = divIcon({
    className: 'on-top-marker',
    html: '<svg width="48" height="48"><use xlink:href="assets/ico/sprite.svg#map-markerHover"></use></svg>',
    iconSize: [48, 48],
    iconAnchor: [24, 48],
    popupAnchor: [0, -48]
});
const markerIconAddedToList = divIcon({
    className: null,
    html: '<svg width="48" height="48"><use xlink:href="assets/ico/sprite.svg#map-marker-added"></use></svg>',
    iconSize: [48, 48],
    iconAnchor: [24, 48],
    popupAnchor: [0, -48]
});
const userLocationIcon = divIcon({
    className: null,
    html: '<svg width="34" height="34"><use xlink:href="assets/ico/sprite.svg#user-location"></use></svg>',
    iconSize: [34, 34],
    iconAnchor: [17, 0]
});
const markerIconMdm = divIcon({
    className: null,
    html: '<svg width="19" height="24" fill="#D4C4A9" class="mdm"><use xlink:href="assets/ico/sprite.svg#mdm"></use></svg>',
    iconSize: [19, 24],
    iconAnchor: [9, 0]
});
const markerIconMdmActive = divIcon({
    className: null,
    html: '<svg width="19" height="24"><use xlink:href="assets/ico/sprite.svg#mdmActive"></use></svg>',
    iconSize: [19, 24],
    iconAnchor: [9, 0]
});
const markerIconFranceService = divIcon({
    className: null,
    html: '<svg width="48" height="48" fill="#ED3939" class="france-service"><use xlink:href="assets/ico/sprite.svg#conseillerFranceService"></use></svg>',
    iconSize: [48, 48],
    iconAnchor: [24, 48],
    popupAnchor: [0, -48]
});
const markerIconFranceServiceActive = divIcon({
    className: null,
    html: '<svg width="48" height="48"><use xlink:href="assets/ico/sprite.svg#conseillerFranceServiceSelected"></use></svg>',
    iconSize: [48, 48],
    iconAnchor: [24, 48],
    popupAnchor: [0, -48]
});
const markerIconFranceServiceHover = divIcon({
    className: null,
    html: '<svg width="48" height="48"><use xlink:href="assets/ico/sprite.svg#conseillerFranceServiceHover"></use></svg>',
    iconSize: [48, 48],
    iconAnchor: [24, 48],
    popupAnchor: [0, -48]
});
const markerIconFranceServiceAddedToList = divIcon({
    className: null,
    html: '<svg width="48" height="48"><use xlink:href="assets/ico/sprite.svg#conseillerFranceServiceAdded"></use></svg>',
    iconSize: [48, 48],
    iconAnchor: [24, 48],
    popupAnchor: [0, -48]
});

class MapService {
    constructor() {
        this.isMarkerActive = false;
    }
    createMarker(lat, lon, markerType, id, tooltip) {
        const marker = new Marker([lat, lon], {
            icon: this.getMarkerIcon(markerType),
            attribution: this.getLayerAttributton(markerType)
        });
        marker.on('mouseclick', (evt) => {
            evt.target.openPopup();
        });
        // handle icon change when select marker
        marker.on('click', (evt) => {
            evt.target.setIcon(this.getActiveMarkerIcon(markerType));
        });
        if (tooltip) {
            marker.bindPopup(tooltip);
            // handle icon change when unselect
            marker.getPopup().on('remove', (evt) => {
                marker.setIcon(this.getMarkerIcon(markerType));
            });
        }
        if (id) {
            MapService.markersList[id] = marker;
        }
        return marker;
    }
    getLayerAttributton(markerType) {
        if (markerType === MarkerType.mdm) {
            return Layers.mdm;
        }
        else if (markerType === MarkerType.user) {
            return Layers.user;
        }
        else {
            return Layers.structure;
        }
    }
    // Note: Marke IconFranceService has been removed temporarly on order to rework on buisness needs.
    // This comment is applied for the next 4 methods
    getMarkerIcon(markerType) {
        switch (markerType) {
            case MarkerType.mdm:
                return markerIconMdm;
            case MarkerType.conseillerFrance:
                return markerIcon;
            case MarkerType.user:
                return userLocationIcon;
            default:
                return markerIcon;
        }
    }
    getActiveMarkerIcon(markerType) {
        switch (markerType) {
            case MarkerType.mdm:
                return markerIconMdmActive;
            case MarkerType.conseillerFrance:
                // return markerIconFranceServiceActive;
                return markerIconActive;
            case MarkerType.user:
                return userLocationIcon;
            default:
                return markerIconActive;
        }
    }
    getAddedToListMarkerIcon(markerType) {
        switch (markerType) {
            case MarkerType.conseillerFrance:
                // return markerIconFranceServiceAddedToList;
                return markerIconAddedToList;
            case MarkerType.user:
                return userLocationIcon;
            default:
                return markerIconAddedToList;
        }
    }
    getHoverMarkerIcon(markerType) {
        switch (markerType) {
            case MarkerType.conseillerFrance:
                return markerIconHover;
            case MarkerType.user:
                return userLocationIcon;
            default:
                return markerIconHover;
        }
    }
    /**
     * @param id marker id
     */
    setActiveMarker(id, type = MarkerType.structure) {
        var _a;
        (_a = this.getMarker(id)) === null || _a === void 0 ? void 0 : _a.setIcon(this.getHoverMarkerIcon(type));
    }
    setAddedToListMarker(id, type = MarkerType.structure) {
        this.getMarker(id).setIcon(this.getAddedToListMarkerIcon(type));
    }
    setUnactiveMarker(id, type = MarkerType.structure) {
        var _a;
        // To skip mouseleave when user emit click on structure list
        (_a = this.getMarker(id)) === null || _a === void 0 ? void 0 : _a.setIcon(this.getMarkerIcon(type));
        this.isMarkerActive = false;
    }
    /**
     * Set a tooltip
     * @param id markerId
     * @param html html to display
     */
    setToolTip(id, html) {
        this.getMarker(id).bindTooltip(html);
    }
    /**
     * Set a marker as selected by changing icon color
     * @param id markerId
     * @param html html to display
     */
    setSelectedMarker(id, type = MarkerType.structure) {
        var _a;
        if (id) {
            (_a = this.getMarker(id)) === null || _a === void 0 ? void 0 : _a.setIcon(this.getActiveMarkerIcon(type));
            this.isMarkerActive = true;
        }
    }
    /**
     * Set a marker as selected by changing icon color
     * @param id markerId
     * @param html html to display
     */
    setDefaultMarker(id, type = MarkerType.structure) {
        if (id) {
            this.getMarker(id).setIcon(this.getMarkerIcon(type));
        }
    }
    /**
     * Get marker by id
     */
    getMarker(id) {
        return MapService.markersList[id] ? MapService.markersList[id] : null;
    }
    cleanMap(map) {
        MapService.markersList = {};
        if (map) {
            map.eachLayer((layer) => {
                if (layer instanceof Marker && layer.options.attribution == Layers.structure) {
                    map.removeLayer(layer);
                }
            });
        }
        return map;
    }
}
MapService.markersList = {};
MapService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: MapService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
MapService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: MapService });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: MapService, decorators: [{
            type: Injectable
        }] });

class MapComponent {
    constructor(metropole, markerType, zoomLevel, initialPosition, geoJsonService, mapService) {
        this.metropole = metropole;
        this.markerType = markerType;
        this.zoomLevel = zoomLevel;
        this.initialPosition = initialPosition;
        this.geoJsonService = geoJsonService;
        this.mapService = mapService;
        this.isOrientationForm = false;
        this.structures = [];
        this.structuresToPrint = [];
        this.selectedStructure = new EventEmitter();
        this.orientationButtonClick = new EventEmitter();
        this.zoomOptions = { animate: true, duration: 0.5 };
        this.initializeMapOptions();
    }
    // Add listener on the popup button to show details of structure
    clickout(event) {
        if (event.target.classList.contains('btnShowDetails')) {
            this.selectedStructure.emit(this.currentStructure);
        }
        if (event.target.classList.contains('add')) {
            this.orientationButtonClick.emit(this.currentStructure);
            this.getStructuresPositions(this.structures);
        }
    }
    ngOnChanges(changes) {
        var _a;
        if (changes.searchedValue && !changes.searchedValue.firstChange) {
            if (changes.searchedValue.currentValue) {
                this.processTownCoordinate(changes.searchedValue.currentValue);
            }
            else {
                this.map.setView(this.mapOptions.center, this.mapOptions.zoom);
            }
        }
        if (changes.isMapPhone) {
            if (this.isMapPhone) {
                setTimeout(() => {
                    this.map.invalidateSize();
                }, 0);
            }
        }
        if (changes.structures && this.map) {
            this.handleStructurePosition(changes.structures.previousValue);
        }
        // Handle map marker tooltip
        if (changes.toogleToolTipId && changes.toogleToolTipId.currentValue !== changes.toogleToolTipId.previousValue) {
            if (changes.toogleToolTipId.previousValue !== undefined) {
                if (this.isToPrint(changes.toogleToolTipId.previousValue)) {
                    this.mapService.setAddedToListMarker(changes.toogleToolTipId.previousValue, this.getMarkerTypeByStructureId(changes.toogleToolTipId.previousValue));
                }
                else {
                    this.mapService.setUnactiveMarker(changes.toogleToolTipId.previousValue, this.getMarkerTypeByStructureId(changes.toogleToolTipId.previousValue));
                }
            }
            if (changes.toogleToolTipId.currentValue !== undefined) {
                this.mapService.setActiveMarker(changes.toogleToolTipId.currentValue, this.getMarkerTypeByStructureId(changes.toogleToolTipId.currentValue));
            }
        }
        // Handle map marker if none selected
        if (changes.selectedMarkerId && this.map) {
            this.map.closePopup();
            if (changes.selectedMarkerId.currentValue === undefined) {
                this.mapService.setDefaultMarker(changes.selectedMarkerId.previousValue, this.getMarkerTypeByStructureId(changes.selectedMarkerId.previousValue));
                this.map.setView(this.mapOptions.center, this.mapOptions.zoom);
            }
        }
        // Handle map marker if one is set with url or selected
        if (this.mapService.getMarker(this.selectedMarkerId)) {
            this.mapService.setSelectedMarker(this.selectedMarkerId, this.getMarkerTypeByStructureId(this.selectedMarkerId));
            this.centerLeafletMapOnMarker(this.selectedMarkerId);
        }
        this.closePreviousMarker(changes);
        if (changes.structuresToPrint) {
            if (changes.structuresToPrint.currentValue < changes.structuresToPrint.previousValue) {
                (_a = this.mapService) === null || _a === void 0 ? void 0 : _a.setUnactiveMarker(this.toogleToolTipId, this.getMarkerTypeByStructureId(changes.structuresToPrint.previousValue));
            }
            this.structuresToPrint.forEach((structure) => {
                this.mapService.setAddedToListMarker(structure._id, this.getMarkerTypeByStructureId(structure._id));
            });
        }
    }
    processTownCoordinate(queryString) {
        this.geoJsonService.getTownshipCoord(queryString).subscribe((townData) => {
            if (townData.length > 0) {
                const bounds = new L.LatLngBounds(townData.map((dataArray) => dataArray.reverse()));
                this.map.fitBounds(bounds);
            }
        }, (err) => {
            this.map.flyTo(this.mapOptions.center, this.mapOptions.zoom, this.zoomOptions);
        });
    }
    /**
     * Create a user position marcker and center the map on it with a zoom level defined in ZoomLevel
     * @param coords {[number, number]} Map center position
     */
    centerOnCoordinates(coords) {
        this.mapService.createMarker(coords[1], coords[0], this.markerType.user, 'userLocation').addTo(this.map);
        this.map.flyTo(new L.LatLng(coords[1], coords[0]), this.zoomLevel.userPosition, this.zoomOptions);
    }
    /**
     * Get structures positions and add marker corresponding to those positons on the map
     */
    handleStructurePosition(previousStructuresValue) {
        // If there is more structure than before, append them
        if (previousStructuresValue &&
            previousStructuresValue.length > 0 &&
            previousStructuresValue.length < this.structures.length) {
            this.getStructuresPositions(_.differenceWith(this.structures, previousStructuresValue, _.isEqual));
        }
        else if (this.structures) {
            this.map = this.mapService.cleanMap(this.map);
            this.getStructuresPositions(this.structures);
            this.structuresToPrint.forEach((structure) => {
                this.mapService.setAddedToListMarker(structure._id, this.getMarkerTypeByStructureId(structure._id));
            });
        }
    }
    isToPrint(id) {
        return this.structuresToPrint.findIndex((elem) => elem._id == id) > -1 ? true : false;
    }
    /**
     * Returns according marker type base on {MarkerType}
     * @param {Structure} structure
     * @returns {number}
     */
    getMarkerType(structure) {
        var _a;
        return ((_a = structure === null || structure === void 0 ? void 0 : structure.labelsQualifications) === null || _a === void 0 ? void 0 : _a.includes('conseillerNumFranceServices'))
            ? this.markerType.conseillerFrance
            : this.markerType.structure;
    }
    /**
     * Return the map marker type given a structure id
     * @param {string} id - Structure id
     * @returns {number}
     */
    getMarkerTypeByStructureId(id) {
        return this.getMarkerType(this.structures.find((structure) => structure._id === id));
    }
    getStructuresPositions(structureList) {
        for (const structure of structureList) {
            this.mapService
                .createMarker(structure.getLat(), structure.getLon(), this.getMarkerType(structure), structure._id, this.buildToolTip(structure))
                .addTo(this.map)
                // store structure before user click on button
                .on('popupopen', () => {
                this.currentStructure = structure;
            });
        }
    }
    /**
     * Create tooltip for display
     * @param structure Structure
     */
    buildToolTip(structure) {
        let cssAvailabilityClass = structure.isOpen ? 'available' : null;
        if (cssAvailabilityClass === null) {
            if (structure.openedOn.day) {
                cssAvailabilityClass = 'unavailable';
            }
            else {
                cssAvailabilityClass = 'unknown';
            }
        }
        return ('<h1>' +
            structure.structureName +
            '</h1>' +
            '<p>' +
            structure.getLabelTypeStructure() +
            '</p>' +
            (this.isOrientationForm
                ? '<div class="pop-up orientation"><button type="button" class="orientationButton btnShowDetails"><span class="ico-gg-eye-alt eye"></span>Voir</button></div>'
                : '<div class="pop-up"><button type="button" class="btnShowDetails">Voir</button></div>'));
    }
    buildMdmPopUp(mdmProperties) {
        return `<h1>${mdmProperties.nom}</h1><p>${mdmProperties.adresse}</p>`;
    }
    /**
     * Add marker when map is ready to be showned
     * @param map map
     */
    onMapReady(map) {
        this.map = map;
        if (this.searchedValue) {
            if (Array.isArray(this.searchedValue)) {
                this.centerOnCoordinates(this.searchedValue);
            }
        }
    }
    /**
     * Init map options :
     * - Metropole bounds based on a WMS service hosted by data.grandlyon.com
     * - Map Layer based on open street maps
     */
    initializeMapOptions() {
        // Init mdm
        this.initMDMLayer();
        // Init WMS service with param from data.grandlyon.com
        layerGroup();
        const carteLayer = tileLayer('https://{s}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}{r}.png', {
            attribution: '&copy; <a href="https://carto.com/attributions">CARTO</a>',
            maxZoom: this.zoomLevel.max
        });
        // Center is set on townhall
        // Zoom is blocked on 11 to prevent people to zoom out from metropole
        this.mapOptions = {
            center: latLng(this.initialPosition.latitude, this.initialPosition.longitude),
            maxZoom: this.zoomLevel.max,
            zoom: this.zoomLevel.regular,
            minZoom: this.zoomLevel.min,
            layers: [carteLayer]
        };
    }
    initMDMLayer() {
        this.geoJsonService.getMDMGeoJson().subscribe((res) => {
            res.forEach((mdm) => {
                this.mapService
                    .createMarker(mdm.geometry.getLat(), mdm.geometry.getLon(), this.markerType.mdm, null, this.buildMdmPopUp(mdm.properties))
                    .addTo(this.map);
            });
            this.initMetropoleLayer();
        });
    }
    centerLeafletMapOnMarker(markerId) {
        if (this.mapService.getMarker(markerId)) {
            const marker = this.mapService.getMarker(markerId);
            const latLngs = marker.getLatLng();
            this.map.flyTo(new L.LatLng(latLngs.lat, latLngs.lng), this.zoomLevel.max, this.zoomOptions);
        }
    }
    initMetropoleLayer() {
        this.map.addLayer(geoJSON({
            type: this.metropole.features[0].geometry.type,
            coordinates: this.metropole.features[0].geometry.coordinates
        }, { style: () => ({ color: '#a00000', fillOpacity: 0, weight: 1 }) }));
    }
    /**
     * Close previous markers
     * - if strucure is closed
     * - if a new marker is selected
     */
    closePreviousMarker(changes) {
        var _a, _b, _c, _d;
        if ((((_a = changes.selectedMarkerId) === null || _a === void 0 ? void 0 : _a.currentValue) === undefined && ((_b = changes.selectedMarkerId) === null || _b === void 0 ? void 0 : _b.previousValue)) ||
            ((_c = changes.selectedMarkerId) === null || _c === void 0 ? void 0 : _c.currentValue) !== ((_d = changes.selectedMarkerId) === null || _d === void 0 ? void 0 : _d.previousValue)) {
            this.mapService.setUnactiveMarker(changes.selectedMarkerId.previousValue, this.getMarkerTypeByStructureId(changes.selectedMarkerId.previousValue));
        }
    }
}
MapComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: MapComponent, deps: [{ token: GEOMETRY_POLYGON_TOKEN }, { token: MARKER_TYPE_TOKEN }, { token: ZOOM_LEVEL_TOKEN }, { token: INITIAL_POSITION_TOKEN }, { token: GEO_JSON_TOKEN }, { token: MapService }], target: i0.ɵɵFactoryTarget.Component });
MapComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: MapComponent, selector: "app-map", inputs: { isOrientationForm: "isOrientationForm", structures: "structures", structuresToPrint: "structuresToPrint", toogleToolTipId: "toogleToolTipId", selectedMarkerId: "selectedMarkerId", isMapPhone: "isMapPhone", searchedValue: "searchedValue" }, outputs: { selectedStructure: "selectedStructure", orientationButtonClick: "orientationButtonClick" }, host: { listeners: { "document:click": "clickout($event)" } }, providers: [MapService], usesOnChanges: true, ngImport: i0, template: "<div\n  id=\"map\"\n  class=\"body-wrap\"\n  [ngClass]=\"{ orientation: isOrientationForm }\"\n  leaflet\n  [leafletOptions]=\"mapOptions\"\n  (leafletMapReady)=\"onMapReady($event)\"></div>\n", styles: [".ico-mglass{position:relative;display:inline-block;background:transparent;border-radius:30px;border:2px solid #333333;height:12px;width:12px;min-width:12px;max-width:12px}.ico-mglass:after{content:\"\";height:2px;width:8px;background:#333333;position:absolute;top:14px;left:10px;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg)}.ico-pin{width:20px;height:20px;max-width:20px;max-height:20px;border-radius:50% 50% 50% 0;background:transparent;transform:rotate(-45deg);left:50%;top:50%;margin:-4px 0 0}.ico-pin.after{content:\"\";width:14px;height:14px;margin:8px 0 0 8px;background:transparent;border-radius:50%}.ico-pin-search{width:18px;height:18px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background-color:#696969}.ico-pin-search:before{content:\"\";position:absolute;left:5px;top:6px;width:7px;height:7px;border-radius:4px;background-color:#fff}.ico-dot-available{height:12px;width:12px;background-color:#41c29c;border-radius:50%;margin-right:8px}.ico-dot-unavailable{height:12px;width:12px;background-color:#da3635;border-radius:50%;margin-right:8px}.ico-dot-unknown{height:12px;width:12px;background-color:#bdbdbd;border-radius:50%;margin-right:8px}.ico-marker-pin{width:30px;height:30px;border-radius:50% 50% 50% 0;background:#da3635;position:absolute;transform:rotate(-45deg);left:50%;top:50%;margin:-15px 0 0 -15px}.ico-marker-pin.selected{background:#da3635}.ico-marker-pin:after{content:\"\";width:10px;height:10px;margin:10px 0 0 10px;background:#fff;position:absolute;border-radius:50%}.ico-marker-pin-sm{width:18px;height:18px;border-radius:50% 50% 50% 0;background:#696969;transform:rotate(-45deg);margin:0 4px}.ico-marker-pin-sm.absolute{position:absolute;margin:0}.ico-marker-pin-sm:after{content:\"\";width:7px;height:7px;margin:6px 0 0 5px;background:#f8f8f8;position:absolute;border-radius:50%}.ico-profile .head{width:12px;height:12px;border-radius:25px;border:2px solid #333333}.ico-profile .body{width:28px;height:10px;border-radius:20px 20px 0 0;border-top:2px solid #333333;border-right:2px solid #333333;border-left:2px solid #333333}.ico-close .mdiv{height:10px;width:2px;margin-left:5px;background-color:#696969;transform:rotate(45deg);z-index:1}.ico-close .md{height:10px;width:2px;background-color:#696969;transform:rotate(90deg);z-index:2}.ico-close-search{width:16px;height:16px;display:inline-block;vertical-align:middle}.ico-close-search:before{transform:rotate(45deg)}.ico-close-search:after{transform:rotate(-45deg)}.ico-close-search:before,.ico-close-search:after{position:absolute;content:\"\";height:16px;width:2px;background-color:#bdbdbd}.ic-arrow-left{box-sizing:border-box;position:relative;display:block;transform:scale(var(--ggs, 1));width:22px;height:22px}.ic-arrow-left:after,.ic-arrow-left:before{content:\"\";display:block;box-sizing:border-box;position:absolute;left:3px}.ic-arrow-left:after{width:8px;height:8px;border-bottom:2px solid;border-left:2px solid;transform:rotate(45deg);bottom:7px}.ic-arrow-left:before{width:16px;height:2px;bottom:10px;background:currentColor}.ic-print{width:.68em;height:1em;border-style:solid;border-color:currentcolor;background-color:transparent;border-width:.07em;border-radius:.05em;margin:0 .16em}.ic-print:before{width:1em;height:.4em;border-width:.07em .21em 0;border-style:solid;border-color:currentColor currentcolor transparent;border-radius:.05em .05em 0 0;top:.25em;left:50%;transform:translate(-50%);background-image:linear-gradient(transparent 20%,currentcolor 20%,currentcolor 60%,transparent 60%)}.ic-print:after{width:.45em;height:.065em;background-color:currentColor;left:50%;transform:translate(-50%);top:.6em;box-shadow:0 .12em,-.1em -.28em 0 .05em}.ic-mail,.ic-mail:after{display:block;box-sizing:border-box;height:14px;border:2px solid}.ic-mail{color:#4f4f4f;overflow:hidden;transform:scale(var(--ggs, 1));position:absolute;width:18px;border-radius:2px}.ic-mail:after{content:\"\";position:absolute;border-radius:3px;width:14px;transform:rotate(-45deg);bottom:3px;left:0}.ic-phone{color:#4f4f4f;box-sizing:border-box;position:absolute;display:block;width:22px;height:22px;transform:scale(var(--ggs, 1))}.ic-phone:after,.ic-phone:before{content:\"\";display:block;box-sizing:border-box;position:absolute}.ic-phone:after{width:18px;height:18px;border-top-left-radius:1px;border-bottom-right-radius:1px;border-bottom-left-radius:12px;border-left:4px solid;border-bottom:4px solid;left:2px;bottom:2px;background:linear-gradient(to left,currentColor 10px,transparent 0) no-repeat right 11px/6px 4px,linear-gradient(to left,currentColor 10px,transparent 0) no-repeat -1px 0/4px 6px}.ic-phone:before{width:20px;height:20px;border:6px double;border-top-color:transparent;border-bottom-color:transparent;border-left-color:transparent;border-radius:50%;transform:rotate(-45deg);bottom:2px;left:2px}.ic-mouse{box-sizing:border-box;position:relative;display:block;transform:scale(var(--ggs, 1));width:16px;height:24px;border:2px solid;border-radius:10px}.ic-mouse:after{content:\"\";display:block;box-sizing:border-box;position:absolute;border-radius:3px;width:2px;height:6px;background:currentColor;top:3px;left:5px}.ic-wifi{color:#000;position:absolute;margin-left:7px;margin-top:13px;width:6px;height:6px;border-radius:50%;border-top:solid 1px currentColor;border-right:solid 1px transparent;border-bottom:solid 1px transparent;border-left:solid 1px transparent}.ic-wifi:before{content:\"\";position:absolute;left:-5px;top:-5px;width:14px;height:14px;border-radius:50%;border-top:solid 1px currentColor;border-right:solid 1px transparent;border-bottom:solid 1px transparent;border-left:solid 1px transparent}.ic-wifi:after{content:\"\";position:absolute;left:-9px;top:-9px;width:22px;height:22px;border-radius:50%;border-top:solid 1px currentColor;border-right:solid 1px transparent;border-bottom:solid 1px transparent;border-left:solid 1px transparent}.ic-screen{box-sizing:border-box;position:absolute;display:block;transform:scale(var(--ggs, 1));width:22px;height:14px;border:2px solid;border-radius:3px;margin-top:-4px}.ic-screen:after,.ic-screen:before{content:\"\";display:block;box-sizing:border-box;position:absolute;border-radius:3px;width:10px;height:2px;background:currentColor;top:14px;left:4px}.ic-screen:before{width:2px;height:6px;top:10px;left:8px}.ic-globe-alt,.ic-globe-alt:after,.ic-globe-alt:before{color:#4f4f4f;display:block;box-sizing:border-box;height:18px;border:2px solid}.ic-globe-alt{position:absolute;transform:scale(var(--ggs, 1));width:18px;border-radius:22px}.ic-globe-alt:after,.ic-globe-alt:before{content:\"\";position:absolute;width:8px;border-radius:100%;top:-2px;left:3px}.ic-globe-alt:after{width:24px;height:20px;border:2px solid transparent;border-bottom:2px solid;top:-11px;left:-5px}.ic-camera{box-sizing:border-box;position:absolute;display:block;transform:scale(var(--ggs, 1));border:2px solid;border-radius:3px;width:18px;height:12px;perspective:24px}.ic-camera:after,.ic-camera:before{content:\"\";display:block;box-sizing:border-box;position:absolute}.ic-camera:before{border:2px solid;border-left-color:transparent;transform:rotateY(-70deg);width:8px;height:8px;right:-7px;top:0}.ic-camera:after{width:10px;height:5px;border-top:2px solid;border-right:2px solid;top:-5px;right:2px;border-top-right-radius:2px}.ic-calendar-today{box-sizing:border-box;position:absolute;display:block;transform:scale(var(--ggs, 1));width:18px;height:18px;border:2px solid;border-top:4px solid;border-radius:3px}.ic-calendar-today:before{content:\"\";display:block;box-sizing:border-box;position:absolute;background:currentColor;height:4px;width:4px;border-radius:2px;right:2px;bottom:2px}.ic-user{display:block;position:absolute;transform:scale(var(--ggs, 1));box-sizing:border-box;width:12px;height:18px}.ic-user:after,.ic-user:before{content:\"\";display:block;box-sizing:border-box;position:absolute;border:2px solid}.ic-user:before{width:8px;height:8px;border-radius:30px;top:0;left:2px}.ic-user:after{width:12px;height:9px;border-bottom:0;border-top-left-radius:3px;border-top-right-radius:3px;top:9px}.ico-close-details{width:44px;height:44px;border-radius:44px;display:flex;justify-content:center;align-items:center;opacity:.8;cursor:pointer}.ico-close-details:before,.ico-close-details:after{content:\"\";width:24px;height:2px;background-color:#333;position:absolute;border-radius:1px}.ico-close-details:hover{background-color:#f4f4f4}.ico-close-details:before{transform:rotate(45deg)}.ico-close-details:after{transform:rotate(-45deg)}.ico-menu,.ico-menu:before,.ico-menu:after{cursor:pointer;border-radius:1px;height:2px;width:23px;background:#000000;position:absolute;display:block;content:\"\"}.ico-menu:before{top:-6px}.ico-menu:after{bottom:-6px}.ico-gg-eye-alt{position:relative;display:block;transform:scale(var(--ggs, 1));width:24px;height:18px;border-bottom-right-radius:100px;border-bottom-left-radius:100px;overflow:hidden;box-sizing:border-box}.ico-gg-eye-alt:after,.ico-gg-eye-alt:before{content:\"\";display:block;border-radius:100px;position:absolute;box-sizing:border-box}.ico-gg-eye-alt:after{top:2px;box-shadow:inset 0 -8px 0 2px #696969,inset 0 0 0 2px #696969;width:24px;height:24px}.ico-gg-eye-alt:before{width:8px;height:8px;border:2px solid #696969;bottom:4px;left:8px;background-color:#696969}.ico-gg-add{box-sizing:border-box;position:relative;display:block;color:#47c562;width:32px;height:32px}.ico-gg-add:after,.ico-gg-add:before{content:\"\";display:block;box-sizing:border-box;position:absolute;width:14px;height:2px;background:currentColor;border-radius:5px;top:8px;left:0px}.ico-gg-add:after{width:2px;height:14px;top:2px;left:6px}.gg-eye-alt{position:relative;display:block;width:18px;height:12px;border-bottom-right-radius:100px;border-bottom-left-radius:100px;overflow:hidden;box-sizing:border-box}.gg-eye-alt:after,.gg-eye-alt:before{content:\"\";display:block;border-radius:100px;position:absolute;box-sizing:border-box}.gg-eye-alt:after{top:2px;box-shadow:inset 0 -8px 0 2px,inset 0 0 0 2px;width:18px;height:18px}.gg-eye-alt:before{width:2px;height:2px;border:2px solid black;bottom:3px;left:7px;background-color:#000}.ico-gg-check{box-sizing:border-box;position:relative;display:block;transform:scale(var(--ggs, 1));width:22px;height:22px;border:1px solid transparent;border-radius:100px;color:#fff}.ico-gg-check:after{content:\"\";display:block;box-sizing:border-box;position:absolute;left:5px;top:-3px;width:7px;height:12px;border-width:0 2px 2px 0;border-style:solid;transform-origin:bottom left;transform:rotate(45deg);color:#fff}html,body,p,span,label,h1,h2,h3,h4,h5,h6,.card-header-text,.welcome-message,.user-name,.profile-user-name,.project-name,.annuaire-label,.event_title,.objective_title{font-family:Lato,Helvetica,sans-serif}.btn-primary{background:#da3635;border-radius:4px;outline:none;cursor:pointer;color:#fff;height:40px;width:192px;font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:700;font-size:1em;line-height:18px;stroke:#fff;border:1px solid #333333}.btn-primary.small{width:149px}.btn-primary.invalid{opacity:.4}.btn-primary:focus{background:white;color:#da3635;border:1px solid #da3635;stroke:#da3635}.btn-grid{display:inline-flex;flex-wrap:wrap;gap:8px}.tags-cloud{font-style:normal;justify-content:center;align-items:center;height:28px;border-radius:20px;padding:5px 15px;color:#fff;border-style:none;margin-top:5px;background:#333333}.tags-cloud.unchecked{background:#bdbdbd}#map{height:100%}::ng-deep .leaflet-popup-close-button{display:none}::ng-deep .leaflet-left{right:0;left:unset}::ng-deep .leaflet-left .leaflet-control{margin-left:0;margin-right:10px;border:none;box-shadow:0 2px 8px #00000040}::ng-deep .leaflet-left .leaflet-control.leaflet-bar a:first-child{border-top-left-radius:8px;border-top-right-radius:8px}::ng-deep .leaflet-left .leaflet-control.leaflet-bar a:last-child{border-bottom-left-radius:8px;border-bottom-right-radius:8px}::ng-deep .leaflet-control-zoom a{color:#333;opacity:.55}::ng-deep .leaflet-control-zoom a:hover{opacity:1}::ng-deep .leaflet-marker-icon:hover{z-index:599!important}::ng-deep .leaflet-marker-icon:hover svg{fill:#b85959}::ng-deep .leaflet-marker-icon:hover svg.mdm{fill:#bd9e6a}::ng-deep .leaflet-marker-icon:hover svg.france-service{fill:#da3635}::ng-deep .leaflet-popup{border-radius:6px;bottom:-15px!important}::ng-deep .leaflet-popup h1{color:#333;font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:700;font-size:1.25em;font-size:18px;margin:0}::ng-deep .leaflet-popup p{color:#696969;font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:400;font-size:1em;font-size:16px;margin:0 0 13px;font-style:italic}::ng-deep .leaflet-popup .pop-up{text-align:center;padding-top:20px}::ng-deep .leaflet-popup .pop-up.orientation{padding:0;text-align:-webkit-center}::ng-deep .leaflet-popup .pop-up button{background:#da3635;height:36px;color:#fff;padding:4px 37px;border-radius:4px;outline:none;border:1px solid transparent;cursor:pointer;font-weight:400;font-size:.813em;line-break:18px;font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:700;font-size:.875em;font-size:16px}::ng-deep .leaflet-popup .pop-up .orientationButton{display:flex;padding:10px 20px;border-radius:20px;margin:0 4px;color:#000;background-color:#fff;border:solid 1px #696969;min-width:120px}::ng-deep .leaflet-popup span{margin-right:4px}::ng-deep .leaflet-popup span.eye{margin-right:11px}::ng-deep .leaflet-popup-content-wrapper{border-radius:6px}::ng-deep .leaflet-popup-content{width:240px}::ng-deep .leaflet-popup-tip-container{display:none}@media print{.map-wrapper{display:none}}.body-wrap{height:400px}::ng-deep .on-top-marker{z-index:600!important}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3$1.LeafletDirective, selector: "[leaflet]", inputs: ["leafletFitBoundsOptions", "leafletPanOptions", "leafletZoomOptions", "leafletZoomPanOptions", "leafletOptions", "leafletZoom", "leafletCenter", "leafletFitBounds", "leafletMaxBounds", "leafletMinZoom", "leafletMaxZoom"], outputs: ["leafletMapReady", "leafletZoomChange", "leafletCenterChange", "leafletClick", "leafletDoubleClick", "leafletMouseDown", "leafletMouseUp", "leafletMouseMove", "leafletMouseOver", "leafletMouseOut", "leafletMapMove", "leafletMapMoveStart", "leafletMapMoveEnd", "leafletMapZoom", "leafletMapZoomStart", "leafletMapZoomEnd"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: MapComponent, decorators: [{
            type: Component,
            args: [{ selector: 'app-map', providers: [MapService], template: "<div\n  id=\"map\"\n  class=\"body-wrap\"\n  [ngClass]=\"{ orientation: isOrientationForm }\"\n  leaflet\n  [leafletOptions]=\"mapOptions\"\n  (leafletMapReady)=\"onMapReady($event)\"></div>\n", styles: [".ico-mglass{position:relative;display:inline-block;background:transparent;border-radius:30px;border:2px solid #333333;height:12px;width:12px;min-width:12px;max-width:12px}.ico-mglass:after{content:\"\";height:2px;width:8px;background:#333333;position:absolute;top:14px;left:10px;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg)}.ico-pin{width:20px;height:20px;max-width:20px;max-height:20px;border-radius:50% 50% 50% 0;background:transparent;transform:rotate(-45deg);left:50%;top:50%;margin:-4px 0 0}.ico-pin.after{content:\"\";width:14px;height:14px;margin:8px 0 0 8px;background:transparent;border-radius:50%}.ico-pin-search{width:18px;height:18px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background-color:#696969}.ico-pin-search:before{content:\"\";position:absolute;left:5px;top:6px;width:7px;height:7px;border-radius:4px;background-color:#fff}.ico-dot-available{height:12px;width:12px;background-color:#41c29c;border-radius:50%;margin-right:8px}.ico-dot-unavailable{height:12px;width:12px;background-color:#da3635;border-radius:50%;margin-right:8px}.ico-dot-unknown{height:12px;width:12px;background-color:#bdbdbd;border-radius:50%;margin-right:8px}.ico-marker-pin{width:30px;height:30px;border-radius:50% 50% 50% 0;background:#da3635;position:absolute;transform:rotate(-45deg);left:50%;top:50%;margin:-15px 0 0 -15px}.ico-marker-pin.selected{background:#da3635}.ico-marker-pin:after{content:\"\";width:10px;height:10px;margin:10px 0 0 10px;background:#fff;position:absolute;border-radius:50%}.ico-marker-pin-sm{width:18px;height:18px;border-radius:50% 50% 50% 0;background:#696969;transform:rotate(-45deg);margin:0 4px}.ico-marker-pin-sm.absolute{position:absolute;margin:0}.ico-marker-pin-sm:after{content:\"\";width:7px;height:7px;margin:6px 0 0 5px;background:#f8f8f8;position:absolute;border-radius:50%}.ico-profile .head{width:12px;height:12px;border-radius:25px;border:2px solid #333333}.ico-profile .body{width:28px;height:10px;border-radius:20px 20px 0 0;border-top:2px solid #333333;border-right:2px solid #333333;border-left:2px solid #333333}.ico-close .mdiv{height:10px;width:2px;margin-left:5px;background-color:#696969;transform:rotate(45deg);z-index:1}.ico-close .md{height:10px;width:2px;background-color:#696969;transform:rotate(90deg);z-index:2}.ico-close-search{width:16px;height:16px;display:inline-block;vertical-align:middle}.ico-close-search:before{transform:rotate(45deg)}.ico-close-search:after{transform:rotate(-45deg)}.ico-close-search:before,.ico-close-search:after{position:absolute;content:\"\";height:16px;width:2px;background-color:#bdbdbd}.ic-arrow-left{box-sizing:border-box;position:relative;display:block;transform:scale(var(--ggs, 1));width:22px;height:22px}.ic-arrow-left:after,.ic-arrow-left:before{content:\"\";display:block;box-sizing:border-box;position:absolute;left:3px}.ic-arrow-left:after{width:8px;height:8px;border-bottom:2px solid;border-left:2px solid;transform:rotate(45deg);bottom:7px}.ic-arrow-left:before{width:16px;height:2px;bottom:10px;background:currentColor}.ic-print{width:.68em;height:1em;border-style:solid;border-color:currentcolor;background-color:transparent;border-width:.07em;border-radius:.05em;margin:0 .16em}.ic-print:before{width:1em;height:.4em;border-width:.07em .21em 0;border-style:solid;border-color:currentColor currentcolor transparent;border-radius:.05em .05em 0 0;top:.25em;left:50%;transform:translate(-50%);background-image:linear-gradient(transparent 20%,currentcolor 20%,currentcolor 60%,transparent 60%)}.ic-print:after{width:.45em;height:.065em;background-color:currentColor;left:50%;transform:translate(-50%);top:.6em;box-shadow:0 .12em,-.1em -.28em 0 .05em}.ic-mail,.ic-mail:after{display:block;box-sizing:border-box;height:14px;border:2px solid}.ic-mail{color:#4f4f4f;overflow:hidden;transform:scale(var(--ggs, 1));position:absolute;width:18px;border-radius:2px}.ic-mail:after{content:\"\";position:absolute;border-radius:3px;width:14px;transform:rotate(-45deg);bottom:3px;left:0}.ic-phone{color:#4f4f4f;box-sizing:border-box;position:absolute;display:block;width:22px;height:22px;transform:scale(var(--ggs, 1))}.ic-phone:after,.ic-phone:before{content:\"\";display:block;box-sizing:border-box;position:absolute}.ic-phone:after{width:18px;height:18px;border-top-left-radius:1px;border-bottom-right-radius:1px;border-bottom-left-radius:12px;border-left:4px solid;border-bottom:4px solid;left:2px;bottom:2px;background:linear-gradient(to left,currentColor 10px,transparent 0) no-repeat right 11px/6px 4px,linear-gradient(to left,currentColor 10px,transparent 0) no-repeat -1px 0/4px 6px}.ic-phone:before{width:20px;height:20px;border:6px double;border-top-color:transparent;border-bottom-color:transparent;border-left-color:transparent;border-radius:50%;transform:rotate(-45deg);bottom:2px;left:2px}.ic-mouse{box-sizing:border-box;position:relative;display:block;transform:scale(var(--ggs, 1));width:16px;height:24px;border:2px solid;border-radius:10px}.ic-mouse:after{content:\"\";display:block;box-sizing:border-box;position:absolute;border-radius:3px;width:2px;height:6px;background:currentColor;top:3px;left:5px}.ic-wifi{color:#000;position:absolute;margin-left:7px;margin-top:13px;width:6px;height:6px;border-radius:50%;border-top:solid 1px currentColor;border-right:solid 1px transparent;border-bottom:solid 1px transparent;border-left:solid 1px transparent}.ic-wifi:before{content:\"\";position:absolute;left:-5px;top:-5px;width:14px;height:14px;border-radius:50%;border-top:solid 1px currentColor;border-right:solid 1px transparent;border-bottom:solid 1px transparent;border-left:solid 1px transparent}.ic-wifi:after{content:\"\";position:absolute;left:-9px;top:-9px;width:22px;height:22px;border-radius:50%;border-top:solid 1px currentColor;border-right:solid 1px transparent;border-bottom:solid 1px transparent;border-left:solid 1px transparent}.ic-screen{box-sizing:border-box;position:absolute;display:block;transform:scale(var(--ggs, 1));width:22px;height:14px;border:2px solid;border-radius:3px;margin-top:-4px}.ic-screen:after,.ic-screen:before{content:\"\";display:block;box-sizing:border-box;position:absolute;border-radius:3px;width:10px;height:2px;background:currentColor;top:14px;left:4px}.ic-screen:before{width:2px;height:6px;top:10px;left:8px}.ic-globe-alt,.ic-globe-alt:after,.ic-globe-alt:before{color:#4f4f4f;display:block;box-sizing:border-box;height:18px;border:2px solid}.ic-globe-alt{position:absolute;transform:scale(var(--ggs, 1));width:18px;border-radius:22px}.ic-globe-alt:after,.ic-globe-alt:before{content:\"\";position:absolute;width:8px;border-radius:100%;top:-2px;left:3px}.ic-globe-alt:after{width:24px;height:20px;border:2px solid transparent;border-bottom:2px solid;top:-11px;left:-5px}.ic-camera{box-sizing:border-box;position:absolute;display:block;transform:scale(var(--ggs, 1));border:2px solid;border-radius:3px;width:18px;height:12px;perspective:24px}.ic-camera:after,.ic-camera:before{content:\"\";display:block;box-sizing:border-box;position:absolute}.ic-camera:before{border:2px solid;border-left-color:transparent;transform:rotateY(-70deg);width:8px;height:8px;right:-7px;top:0}.ic-camera:after{width:10px;height:5px;border-top:2px solid;border-right:2px solid;top:-5px;right:2px;border-top-right-radius:2px}.ic-calendar-today{box-sizing:border-box;position:absolute;display:block;transform:scale(var(--ggs, 1));width:18px;height:18px;border:2px solid;border-top:4px solid;border-radius:3px}.ic-calendar-today:before{content:\"\";display:block;box-sizing:border-box;position:absolute;background:currentColor;height:4px;width:4px;border-radius:2px;right:2px;bottom:2px}.ic-user{display:block;position:absolute;transform:scale(var(--ggs, 1));box-sizing:border-box;width:12px;height:18px}.ic-user:after,.ic-user:before{content:\"\";display:block;box-sizing:border-box;position:absolute;border:2px solid}.ic-user:before{width:8px;height:8px;border-radius:30px;top:0;left:2px}.ic-user:after{width:12px;height:9px;border-bottom:0;border-top-left-radius:3px;border-top-right-radius:3px;top:9px}.ico-close-details{width:44px;height:44px;border-radius:44px;display:flex;justify-content:center;align-items:center;opacity:.8;cursor:pointer}.ico-close-details:before,.ico-close-details:after{content:\"\";width:24px;height:2px;background-color:#333;position:absolute;border-radius:1px}.ico-close-details:hover{background-color:#f4f4f4}.ico-close-details:before{transform:rotate(45deg)}.ico-close-details:after{transform:rotate(-45deg)}.ico-menu,.ico-menu:before,.ico-menu:after{cursor:pointer;border-radius:1px;height:2px;width:23px;background:#000000;position:absolute;display:block;content:\"\"}.ico-menu:before{top:-6px}.ico-menu:after{bottom:-6px}.ico-gg-eye-alt{position:relative;display:block;transform:scale(var(--ggs, 1));width:24px;height:18px;border-bottom-right-radius:100px;border-bottom-left-radius:100px;overflow:hidden;box-sizing:border-box}.ico-gg-eye-alt:after,.ico-gg-eye-alt:before{content:\"\";display:block;border-radius:100px;position:absolute;box-sizing:border-box}.ico-gg-eye-alt:after{top:2px;box-shadow:inset 0 -8px 0 2px #696969,inset 0 0 0 2px #696969;width:24px;height:24px}.ico-gg-eye-alt:before{width:8px;height:8px;border:2px solid #696969;bottom:4px;left:8px;background-color:#696969}.ico-gg-add{box-sizing:border-box;position:relative;display:block;color:#47c562;width:32px;height:32px}.ico-gg-add:after,.ico-gg-add:before{content:\"\";display:block;box-sizing:border-box;position:absolute;width:14px;height:2px;background:currentColor;border-radius:5px;top:8px;left:0px}.ico-gg-add:after{width:2px;height:14px;top:2px;left:6px}.gg-eye-alt{position:relative;display:block;width:18px;height:12px;border-bottom-right-radius:100px;border-bottom-left-radius:100px;overflow:hidden;box-sizing:border-box}.gg-eye-alt:after,.gg-eye-alt:before{content:\"\";display:block;border-radius:100px;position:absolute;box-sizing:border-box}.gg-eye-alt:after{top:2px;box-shadow:inset 0 -8px 0 2px,inset 0 0 0 2px;width:18px;height:18px}.gg-eye-alt:before{width:2px;height:2px;border:2px solid black;bottom:3px;left:7px;background-color:#000}.ico-gg-check{box-sizing:border-box;position:relative;display:block;transform:scale(var(--ggs, 1));width:22px;height:22px;border:1px solid transparent;border-radius:100px;color:#fff}.ico-gg-check:after{content:\"\";display:block;box-sizing:border-box;position:absolute;left:5px;top:-3px;width:7px;height:12px;border-width:0 2px 2px 0;border-style:solid;transform-origin:bottom left;transform:rotate(45deg);color:#fff}html,body,p,span,label,h1,h2,h3,h4,h5,h6,.card-header-text,.welcome-message,.user-name,.profile-user-name,.project-name,.annuaire-label,.event_title,.objective_title{font-family:Lato,Helvetica,sans-serif}.btn-primary{background:#da3635;border-radius:4px;outline:none;cursor:pointer;color:#fff;height:40px;width:192px;font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:700;font-size:1em;line-height:18px;stroke:#fff;border:1px solid #333333}.btn-primary.small{width:149px}.btn-primary.invalid{opacity:.4}.btn-primary:focus{background:white;color:#da3635;border:1px solid #da3635;stroke:#da3635}.btn-grid{display:inline-flex;flex-wrap:wrap;gap:8px}.tags-cloud{font-style:normal;justify-content:center;align-items:center;height:28px;border-radius:20px;padding:5px 15px;color:#fff;border-style:none;margin-top:5px;background:#333333}.tags-cloud.unchecked{background:#bdbdbd}#map{height:100%}::ng-deep .leaflet-popup-close-button{display:none}::ng-deep .leaflet-left{right:0;left:unset}::ng-deep .leaflet-left .leaflet-control{margin-left:0;margin-right:10px;border:none;box-shadow:0 2px 8px #00000040}::ng-deep .leaflet-left .leaflet-control.leaflet-bar a:first-child{border-top-left-radius:8px;border-top-right-radius:8px}::ng-deep .leaflet-left .leaflet-control.leaflet-bar a:last-child{border-bottom-left-radius:8px;border-bottom-right-radius:8px}::ng-deep .leaflet-control-zoom a{color:#333;opacity:.55}::ng-deep .leaflet-control-zoom a:hover{opacity:1}::ng-deep .leaflet-marker-icon:hover{z-index:599!important}::ng-deep .leaflet-marker-icon:hover svg{fill:#b85959}::ng-deep .leaflet-marker-icon:hover svg.mdm{fill:#bd9e6a}::ng-deep .leaflet-marker-icon:hover svg.france-service{fill:#da3635}::ng-deep .leaflet-popup{border-radius:6px;bottom:-15px!important}::ng-deep .leaflet-popup h1{color:#333;font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:700;font-size:1.25em;font-size:18px;margin:0}::ng-deep .leaflet-popup p{color:#696969;font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:400;font-size:1em;font-size:16px;margin:0 0 13px;font-style:italic}::ng-deep .leaflet-popup .pop-up{text-align:center;padding-top:20px}::ng-deep .leaflet-popup .pop-up.orientation{padding:0;text-align:-webkit-center}::ng-deep .leaflet-popup .pop-up button{background:#da3635;height:36px;color:#fff;padding:4px 37px;border-radius:4px;outline:none;border:1px solid transparent;cursor:pointer;font-weight:400;font-size:.813em;line-break:18px;font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:700;font-size:.875em;font-size:16px}::ng-deep .leaflet-popup .pop-up .orientationButton{display:flex;padding:10px 20px;border-radius:20px;margin:0 4px;color:#000;background-color:#fff;border:solid 1px #696969;min-width:120px}::ng-deep .leaflet-popup span{margin-right:4px}::ng-deep .leaflet-popup span.eye{margin-right:11px}::ng-deep .leaflet-popup-content-wrapper{border-radius:6px}::ng-deep .leaflet-popup-content{width:240px}::ng-deep .leaflet-popup-tip-container{display:none}@media print{.map-wrapper{display:none}}.body-wrap{height:400px}::ng-deep .on-top-marker{z-index:600!important}\n"] }]
        }], ctorParameters: function () {
        return [{ type: undefined, decorators: [{
                        type: Inject,
                        args: [GEOMETRY_POLYGON_TOKEN]
                    }] }, { type: undefined, decorators: [{
                        type: Inject,
                        args: [MARKER_TYPE_TOKEN]
                    }] }, { type: undefined, decorators: [{
                        type: Inject,
                        args: [ZOOM_LEVEL_TOKEN]
                    }] }, { type: undefined, decorators: [{
                        type: Inject,
                        args: [INITIAL_POSITION_TOKEN]
                    }] }, { type: undefined, decorators: [{
                        type: Inject,
                        args: [GEO_JSON_TOKEN]
                    }] }, { type: MapService }];
    }, propDecorators: { isOrientationForm: [{
                type: Input
            }], structures: [{
                type: Input
            }], structuresToPrint: [{
                type: Input
            }], toogleToolTipId: [{
                type: Input
            }], selectedMarkerId: [{
                type: Input
            }], isMapPhone: [{
                type: Input
            }], searchedValue: [{
                type: Input
            }], selectedStructure: [{
                type: Output
            }], orientationButtonClick: [{
                type: Output
            }], clickout: [{
                type: HostListener,
                args: ['document:click', ['$event']]
            }] } });

class MapModule {
    constructor(geometryPolygonConfiguration, markerType, zoomLevel, initialPosition, geoJsonRepository) {
        this.geometryPolygonConfiguration = geometryPolygonConfiguration;
        this.markerType = markerType;
        this.zoomLevel = zoomLevel;
        this.initialPosition = initialPosition;
        this.geoJsonRepository = geoJsonRepository;
        if ([geometryPolygonConfiguration, markerType, zoomLevel, initialPosition, geoJsonRepository].includes(null)) {
            throw new Error('Cannot import `MapModule` without calling `forRoot` with valid parameters: you must provide defined `geometryPolygonConfiguration`, `markerType`, `zoomLevel`, `initialPosition` and `geoJsonRepository`.');
        }
    }
    static forRoot(geometryPolygonConfiguration, zoomLevelConfiguration, initialPositionConfiguration, markerTypeConfiguration, geoJsonRepository) {
        return {
            ngModule: MapModule,
            providers: [
                { provide: GEO_JSON_TOKEN, useClass: geoJsonRepository },
                { provide: GEOMETRY_POLYGON_TOKEN, useValue: geometryPolygonConfiguration },
                { provide: MARKER_TYPE_TOKEN, useValue: markerTypeConfiguration },
                { provide: ZOOM_LEVEL_TOKEN, useValue: zoomLevelConfiguration },
                { provide: INITIAL_POSITION_TOKEN, useValue: initialPositionConfiguration }
            ]
        };
    }
}
MapModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: MapModule, deps: [{ token: GEOMETRY_POLYGON_TOKEN, optional: true }, { token: MARKER_TYPE_TOKEN, optional: true }, { token: ZOOM_LEVEL_TOKEN, optional: true }, { token: INITIAL_POSITION_TOKEN, optional: true }, { token: GEO_JSON_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.NgModule });
MapModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.0", ngImport: i0, type: MapModule, declarations: [MapComponent], imports: [CommonModule, LeafletModule], exports: [MapComponent] });
MapModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: MapModule, imports: [CommonModule, LeafletModule] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: MapModule, decorators: [{
            type: NgModule,
            args: [{
                    declarations: [MapComponent],
                    exports: [MapComponent],
                    imports: [CommonModule, LeafletModule]
                }]
        }], ctorParameters: function () {
        return [{ type: undefined, decorators: [{
                        type: Optional
                    }, {
                        type: Inject,
                        args: [GEOMETRY_POLYGON_TOKEN]
                    }] }, { type: undefined, decorators: [{
                        type: Optional
                    }, {
                        type: Inject,
                        args: [MARKER_TYPE_TOKEN]
                    }] }, { type: undefined, decorators: [{
                        type: Optional
                    }, {
                        type: Inject,
                        args: [ZOOM_LEVEL_TOKEN]
                    }] }, { type: undefined, decorators: [{
                        type: Optional
                    }, {
                        type: Inject,
                        args: [INITIAL_POSITION_TOKEN]
                    }] }, { type: undefined, decorators: [{
                        type: Optional
                    }, {
                        type: Inject,
                        args: [GEO_JSON_TOKEN]
                    }] }];
    } });

var Equipment;
(function (Equipment) {
    Equipment["wifi"] = "wifiEnAccesLibre";
    Equipment["bornes"] = "bornesNumeriques";
    Equipment["printer"] = "imprimantes";
    Equipment["tablet"] = "tablettes";
    Equipment["computer"] = "ordinateurs";
    Equipment["scanner"] = "scanners";
})(Equipment || (Equipment = {}));

var typeStructureEnum;
(function (typeStructureEnum) {
    typeStructureEnum["fablab"] = "Fablab";
    // A supprimer ?
    //A remplacer par Association ?
    typeStructureEnum["associationQuartier"] = "Structure associative de quartier";
    typeStructureEnum["associationCaritative"] = "Association caritative";
    // En attente de suppression remplacer par CAF CARSAT, Pole Emploi et CCAS
    typeStructureEnum["grandOrganismePublic"] = "Grand organisme public (CAF, CARSAT, P\u00F4le emploi...)";
    typeStructureEnum["mdm"] = "Maison de la M\u00E9tropole";
    typeStructureEnum["mairie"] = "Mairie";
    typeStructureEnum["CAF"] = "CAF";
    typeStructureEnum["CCAS"] = "CCAS";
    typeStructureEnum["CARSAT"] = "CARSAT";
    typeStructureEnum["poleEmploi"] = "Pole Emploi";
    typeStructureEnum["mediatheque"] = "M\u00E9diath\u00E8que/Biblioth\u00E8que";
    typeStructureEnum["prefecture"] = "Pr\u00E9fecture";
    typeStructureEnum["bijPij"] = "BIJ/PIJ";
    typeStructureEnum["logement"] = "Logement";
    typeStructureEnum["MaisonFranceService"] = "Maison France Service";
    typeStructureEnum["association"] = "Association";
    typeStructureEnum["centreSocio"] = "Centre socio-culturel";
    typeStructureEnum["mjc"] = "MJC / Cyberbase";
    typeStructureEnum["pimms"] = "PIMMS";
    typeStructureEnum["sij"] = "Structure information jeunesse (SIJ)";
    typeStructureEnum["missionsLocales"] = "Missions locales";
    typeStructureEnum["formation"] = "Structure de formation";
    typeStructureEnum["insertion"] = "Structure d'insertion";
})(typeStructureEnum || (typeStructureEnum = {}));

var Weekday;
(function (Weekday) {
    Weekday[Weekday["monday"] = 1] = "monday";
    Weekday[Weekday["tuesday"] = 2] = "tuesday";
    Weekday[Weekday["wednesday"] = 3] = "wednesday";
    Weekday[Weekday["thursday"] = 4] = "thursday";
    Weekday[Weekday["friday"] = 5] = "friday";
    Weekday[Weekday["saturday"] = 6] = "saturday";
    Weekday[Weekday["sunday"] = 7] = "sunday";
})(Weekday || (Weekday = {}));

class Address {
    constructor() {
        this.numero = null;
        this.street = null;
        this.commune = null;
        this.postcode = null;
        this.coordinates = [];
    }
}

class Time {
    constructor(obj) {
        Object.assign(this, obj);
    }
    formatOpeningDate() {
        return this.formatDate(this.opening);
    }
    formatClosingDate() {
        return this.formatDate(this.closing);
    }
    formatDate(n) {
        return n.replace(':', 'h');
    }
}

class Day {
    constructor(obj) {
        this.open = false;
        Object.assign(this, obj, {
            time: obj && obj.time ? obj.time.map((time) => new Time(time)) : []
        });
    }
}

class AddressGeometry {
    constructor(obj) {
        Object.assign(this, obj);
    }
    getLat() {
        return this.coordinates[1];
    }
    getLon() {
        return this.coordinates[0];
    }
}

class GeoJson {
    constructor(obj) {
        Object.assign(this, obj, {
            geometry: obj && obj.geometry ? new AddressGeometry(obj.geometry) : null
        });
    }
}

class OpeningDay {
    constructor(day, schedule) {
        this.day = null;
        this.schedule = null;
        this.day = day;
        this.schedule = schedule;
    }
}

class PersonalOffer {
    constructor() {
        this.publicsAccompaniment = [];
        this.proceduresAccompaniment = [];
        this.baseSkills = [];
        this.accessRight = [];
        this.digitalCultureSecurity = [];
        this.socialAndProfessional = [];
        this.parentingHelp = [];
    }
}

class Week {
    constructor(obj) {
        Object.assign(this, obj, {
            monday: obj && obj.monday ? new Day(obj.monday) : new Day(),
            tuesday: obj && obj.tuesday ? new Day(obj.tuesday) : new Day(),
            wednesday: obj && obj.wednesday ? new Day(obj.wednesday) : new Day(),
            thursday: obj && obj.thursday ? new Day(obj.thursday) : new Day(),
            friday: obj && obj.friday ? new Day(obj.friday) : new Day(),
            saturday: obj && obj.saturday ? new Day(obj.saturday) : new Day(),
            sunday: obj && obj.sunday ? new Day(obj.sunday) : new Day()
        });
    }
    getDayTranslation(day) {
        switch (day) {
            case 'monday':
                return 'lundi';
            case 'tuesday':
                return 'mardi';
            case 'thursday':
                return 'jeudi';
            case 'wednesday':
                return 'mercredi';
            case 'friday':
                return 'vendredi';
            case 'saturday':
                return 'samedi';
            case 'sunday':
                return 'dimanche';
            default:
                return null;
        }
    }
    hasData() {
        if (this.monday.time.length === 0 &&
            this.tuesday.time.length === 0 &&
            this.wednesday.time.length === 0 &&
            this.thursday.time.length === 0 &&
            this.friday.time.length === 0 &&
            this.saturday.time.length === 0 &&
            this.sunday.time.length === 0) {
            return false;
        }
        return true;
    }
}

class Structure {
    constructor(obj) {
        this._id = null;
        this.numero = null;
        this.createdAt = null;
        this.updatedAt = null;
        this.structureName = null;
        this.structureType = null;
        this.description = null;
        this.address = new Address();
        this.contactPhone = null;
        this.contactMail = null;
        this.website = null;
        this.facebook = null;
        this.twitter = null;
        this.instagram = null;
        this.linkedin = null;
        this.lockdownActivity = null;
        this.pmrAccess = null;
        this.placeOfReception = null;
        this.choiceCompletion = null;
        this.contactPersonFirstName = null;
        this.contactPersonLastName = null;
        this.contactPersonEmail = null;
        this.publicsAccompaniment = [];
        this.proceduresAccompaniment = [];
        this.remoteAccompaniment = null;
        this.accessModality = [];
        this.labelsQualifications = [];
        this.publics = [];
        this.nbComputers = null;
        this.nbPrinters = null;
        this.nbTablets = null;
        this.nbNumericTerminal = null;
        this.nbScanners = null;
        this.exceptionalClosures = null;
        this.equipmentsAndServices = [];
        this.freeWorkShop = null;
        this.otherDescription = null;
        this.isOpen = false;
        this.openedOn = new OpeningDay();
        this.baseSkills = [];
        this.accessRight = [];
        this.parentingHelp = [];
        this.socialAndProfessional = [];
        this.digitalCultureSecurity = [];
        this.coord = [];
        this.accountVerified = false;
        this.personalOffers = [];
        this.alreadySelected = false;
        this.isClaimed = null;
        Object.assign(this, obj, {
            hours: obj && obj.hours ? new Week(obj.hours) : new Week()
        });
    }
    getDayhours(day) {
        switch (day) {
            case Weekday.monday:
                return this.hours.monday;
            case Weekday.tuesday:
                return this.hours.tuesday;
            case Weekday.thursday:
                return this.hours.thursday;
            case Weekday.wednesday:
                return this.hours.wednesday;
            case Weekday.friday:
                return this.hours.friday;
            case Weekday.saturday:
                return this.hours.saturday;
            case Weekday.sunday:
                return this.hours.sunday;
            default:
                return null;
        }
    }
    /**
     * Check if a structure has equipments
     */
    hasEquipments() {
        if (this.equipmentsAndServices.length && this.hasNotOnlyEmptyEquipments()) {
            return true;
        }
        return false;
    }
    /**
     * Verify that a structure as not only equipments with 0 as value. This is mostly use for display.
     * @returns {Boolean} validation
     */
    hasNotOnlyEmptyEquipments() {
        if (this.nbComputers + this.nbPrinters + this.nbTablets + this.nbNumericTerminal + this.nbScanners > 0)
            return true;
        return false;
    }
    /**
     * Check if a structure has pass Numeric label
     */
    hasPassNumeric() {
        return this.labelsQualifications.includes('passNumerique');
    }
    /**
     * Return a range, according to the distance, between [1,3] to get a distance reference.
     * - [0,5km] => 1
     * - [5km,10km] => 2
     * - [10km, [ => 3
     */
    getDistanceRange() {
        if (!this.distance) {
            return 3;
        }
        else {
            // If it's in km
            if (this.distance > 10000) {
                return 3;
            }
            else if (this.distance < 5000) {
                // If it's between 0 and 500 m
                return 1;
            }
            else {
                return 2;
            }
        }
    }
    getLat() {
        return this.coord[1];
    }
    getLon() {
        return this.coord[0];
    }
    getEquipmentsIcon(equipment) {
        switch (equipment) {
            case Equipment.wifi:
                return 'wifi';
            case Equipment.bornes:
                return 'borne';
            case Equipment.printer:
                return 'print';
            case Equipment.tablet:
                return 'tablet';
            case Equipment.computer:
                return 'computer';
            case Equipment.scanner:
                return 'scan';
            default:
                return null;
        }
    }
    getEquipmentsTitle(equipment) {
        switch (equipment) {
            case Equipment.wifi:
                return 'Wifi en accès libre';
            case Equipment.bornes:
                return this.nbNumericTerminal > 1 ? 'Bornes numériques' : 'Borne numérique';
            case Equipment.printer:
                return this.nbPrinters > 1 ? 'Imprimantes' : 'Imprimante';
            case Equipment.tablet:
                return this.nbTablets > 1 ? 'Tablettes' : 'Tablette';
            case Equipment.computer:
                return this.nbComputers > 1 ? 'Ordinateurs' : 'Ordinateur';
            case Equipment.scanner:
                return this.nbScanners > 1 ? 'Scanners' : 'Scanner';
            default:
                return null;
        }
    }
    getLabelTypeStructure() {
        return typeStructureEnum[this.structureType] ? typeStructureEnum[this.structureType] : '';
    }
    hasSocialNetwork() {
        return ((this.facebook !== null && this.facebook !== '') ||
            (this.instagram !== null && this.instagram !== '') ||
            (this.linkedin !== null && this.linkedin !== '') ||
            (this.twitter !== null && this.twitter !== ''));
    }
}

class CardComponent {
    constructor(route, router) {
        this.route = route;
        this.router = router;
        this.isClaimed = true;
        this.showDetails = new EventEmitter();
        this.addToList = new EventEmitter();
        this.hover = new EventEmitter();
    }
    cardClicked() {
        this.showDetails.emit(this.structure);
        if (!this.isOrientation) {
            const queryString = this.route.snapshot.queryParamMap.get('search');
            this.router.navigate([], {
                relativeTo: this.route,
                queryParams: queryString
                    ? {
                        id: this.structure._id,
                        search: queryString
                    }
                    : {
                        id: this.structure._id
                    }
            });
        }
    }
    cardHover() {
        this.hover.emit(this.structure);
    }
    cardAddToList() {
        this.addToList.emit(this.structure);
    }
}
CardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CardComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
CardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: CardComponent, selector: "app-card", inputs: { structure: "structure", isSelected: "isSelected", isOrientation: "isOrientation", isClaimed: "isClaimed" }, outputs: { showDetails: "showDetails", addToList: "addToList", hover: "hover" }, ngImport: i0, template: "<div\n  class=\"structure\"\n  fxLayout=\"column\"\n  (click)=\"cardClicked()\"\n  (mouseenter)=\"cardHover()\"\n  [ngClass]=\"{ orientation: isOrientation }\">\n  <div class=\"left\">\n    <div fxLayout=\"row\" fxLayoutAlign=\"space-between baseline\" fxLayoutGap=\"16px\">\n      <div fxLayout=\"column\" fxLayoutAlign=\"end\">\n        <span class=\"structure-name\" [ngClass]=\"{ notClaimed: !isClaimed }\">{{ structure.structureName }}</span>\n        <span class=\"typeStructure\">{{ structure.getLabelTypeStructure() }}</span>\n      </div>\n      <div *ngIf=\"!isOrientation\" fxLayout=\"column\" fxLayoutAlign=\"none end\">\n        <div class=\"distanceStructure\">\n          {{ this.structure.address.commune }}\n        </div>\n        <div class=\"distance\" *ngIf=\"structure.distance\">\n          {{ structure.distance | distance }}\n        </div>\n      </div>\n    </div>\n    <div class=\"distance\" *ngIf=\"isOrientation && structure.distance\">\n      {{ structure.distance | distance }}\n    </div>\n  </div>\n  <div class=\"actions right\" *ngIf=\"isOrientation\">\n    <div\n      fxLayout=\"row\"\n      *ngIf=\"!isSelected\"\n      class=\"selection-button selected\"\n      (click)=\"cardAddToList(); $event.stopPropagation()\">\n      <app-svg-icon class=\"add-icon\" [type]=\"'ico'\" [icon]=\"'add'\" [iconColor]=\"'green'\"></app-svg-icon>\n      Ajouter\n    </div>\n    <div\n      fxLayout=\"row\"\n      *ngIf=\"isSelected\"\n      class=\"selection-button to-select\"\n      (click)=\"cardAddToList(); $event.stopPropagation()\">\n      <app-svg-icon class=\"add-icon\" [type]=\"'ico'\" [icon]=\"'validate'\" [iconColor]=\"'white'\"></app-svg-icon>\n      Ajout\u00E9\n    </div>\n  </div>\n</div>\n", styles: [".ico-mglass{position:relative;display:inline-block;background:transparent;border-radius:30px;border:2px solid #333333;height:12px;width:12px;min-width:12px;max-width:12px}.ico-mglass:after{content:\"\";height:2px;width:8px;background:#333333;position:absolute;top:14px;left:10px;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg)}.ico-pin{width:20px;height:20px;max-width:20px;max-height:20px;border-radius:50% 50% 50% 0;background:transparent;transform:rotate(-45deg);left:50%;top:50%;margin:-4px 0 0}.ico-pin.after{content:\"\";width:14px;height:14px;margin:8px 0 0 8px;background:transparent;border-radius:50%}.ico-pin-search{width:18px;height:18px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background-color:#696969}.ico-pin-search:before{content:\"\";position:absolute;left:5px;top:6px;width:7px;height:7px;border-radius:4px;background-color:#fff}.ico-dot-available{height:12px;width:12px;background-color:#41c29c;border-radius:50%;margin-right:8px}.ico-dot-unavailable{height:12px;width:12px;background-color:#da3635;border-radius:50%;margin-right:8px}.ico-dot-unknown{height:12px;width:12px;background-color:#bdbdbd;border-radius:50%;margin-right:8px}.ico-marker-pin{width:30px;height:30px;border-radius:50% 50% 50% 0;background:#da3635;position:absolute;transform:rotate(-45deg);left:50%;top:50%;margin:-15px 0 0 -15px}.ico-marker-pin.selected{background:#da3635}.ico-marker-pin:after{content:\"\";width:10px;height:10px;margin:10px 0 0 10px;background:#fff;position:absolute;border-radius:50%}.ico-marker-pin-sm{width:18px;height:18px;border-radius:50% 50% 50% 0;background:#696969;transform:rotate(-45deg);margin:0 4px}.ico-marker-pin-sm.absolute{position:absolute;margin:0}.ico-marker-pin-sm:after{content:\"\";width:7px;height:7px;margin:6px 0 0 5px;background:#f8f8f8;position:absolute;border-radius:50%}.ico-profile .head{width:12px;height:12px;border-radius:25px;border:2px solid #333333}.ico-profile .body{width:28px;height:10px;border-radius:20px 20px 0 0;border-top:2px solid #333333;border-right:2px solid #333333;border-left:2px solid #333333}.ico-close .mdiv{height:10px;width:2px;margin-left:5px;background-color:#696969;transform:rotate(45deg);z-index:1}.ico-close .md{height:10px;width:2px;background-color:#696969;transform:rotate(90deg);z-index:2}.ico-close-search{width:16px;height:16px;display:inline-block;vertical-align:middle}.ico-close-search:before{transform:rotate(45deg)}.ico-close-search:after{transform:rotate(-45deg)}.ico-close-search:before,.ico-close-search:after{position:absolute;content:\"\";height:16px;width:2px;background-color:#bdbdbd}.ic-arrow-left{box-sizing:border-box;position:relative;display:block;transform:scale(var(--ggs, 1));width:22px;height:22px}.ic-arrow-left:after,.ic-arrow-left:before{content:\"\";display:block;box-sizing:border-box;position:absolute;left:3px}.ic-arrow-left:after{width:8px;height:8px;border-bottom:2px solid;border-left:2px solid;transform:rotate(45deg);bottom:7px}.ic-arrow-left:before{width:16px;height:2px;bottom:10px;background:currentColor}.ic-print{width:.68em;height:1em;border-style:solid;border-color:currentcolor;background-color:transparent;border-width:.07em;border-radius:.05em;margin:0 .16em}.ic-print:before{width:1em;height:.4em;border-width:.07em .21em 0;border-style:solid;border-color:currentColor currentcolor transparent;border-radius:.05em .05em 0 0;top:.25em;left:50%;transform:translate(-50%);background-image:linear-gradient(transparent 20%,currentcolor 20%,currentcolor 60%,transparent 60%)}.ic-print:after{width:.45em;height:.065em;background-color:currentColor;left:50%;transform:translate(-50%);top:.6em;box-shadow:0 .12em,-.1em -.28em 0 .05em}.ic-mail,.ic-mail:after{display:block;box-sizing:border-box;height:14px;border:2px solid}.ic-mail{color:#4f4f4f;overflow:hidden;transform:scale(var(--ggs, 1));position:absolute;width:18px;border-radius:2px}.ic-mail:after{content:\"\";position:absolute;border-radius:3px;width:14px;transform:rotate(-45deg);bottom:3px;left:0}.ic-phone{color:#4f4f4f;box-sizing:border-box;position:absolute;display:block;width:22px;height:22px;transform:scale(var(--ggs, 1))}.ic-phone:after,.ic-phone:before{content:\"\";display:block;box-sizing:border-box;position:absolute}.ic-phone:after{width:18px;height:18px;border-top-left-radius:1px;border-bottom-right-radius:1px;border-bottom-left-radius:12px;border-left:4px solid;border-bottom:4px solid;left:2px;bottom:2px;background:linear-gradient(to left,currentColor 10px,transparent 0) no-repeat right 11px/6px 4px,linear-gradient(to left,currentColor 10px,transparent 0) no-repeat -1px 0/4px 6px}.ic-phone:before{width:20px;height:20px;border:6px double;border-top-color:transparent;border-bottom-color:transparent;border-left-color:transparent;border-radius:50%;transform:rotate(-45deg);bottom:2px;left:2px}.ic-mouse{box-sizing:border-box;position:relative;display:block;transform:scale(var(--ggs, 1));width:16px;height:24px;border:2px solid;border-radius:10px}.ic-mouse:after{content:\"\";display:block;box-sizing:border-box;position:absolute;border-radius:3px;width:2px;height:6px;background:currentColor;top:3px;left:5px}.ic-wifi{color:#000;position:absolute;margin-left:7px;margin-top:13px;width:6px;height:6px;border-radius:50%;border-top:solid 1px currentColor;border-right:solid 1px transparent;border-bottom:solid 1px transparent;border-left:solid 1px transparent}.ic-wifi:before{content:\"\";position:absolute;left:-5px;top:-5px;width:14px;height:14px;border-radius:50%;border-top:solid 1px currentColor;border-right:solid 1px transparent;border-bottom:solid 1px transparent;border-left:solid 1px transparent}.ic-wifi:after{content:\"\";position:absolute;left:-9px;top:-9px;width:22px;height:22px;border-radius:50%;border-top:solid 1px currentColor;border-right:solid 1px transparent;border-bottom:solid 1px transparent;border-left:solid 1px transparent}.ic-screen{box-sizing:border-box;position:absolute;display:block;transform:scale(var(--ggs, 1));width:22px;height:14px;border:2px solid;border-radius:3px;margin-top:-4px}.ic-screen:after,.ic-screen:before{content:\"\";display:block;box-sizing:border-box;position:absolute;border-radius:3px;width:10px;height:2px;background:currentColor;top:14px;left:4px}.ic-screen:before{width:2px;height:6px;top:10px;left:8px}.ic-globe-alt,.ic-globe-alt:after,.ic-globe-alt:before{color:#4f4f4f;display:block;box-sizing:border-box;height:18px;border:2px solid}.ic-globe-alt{position:absolute;transform:scale(var(--ggs, 1));width:18px;border-radius:22px}.ic-globe-alt:after,.ic-globe-alt:before{content:\"\";position:absolute;width:8px;border-radius:100%;top:-2px;left:3px}.ic-globe-alt:after{width:24px;height:20px;border:2px solid transparent;border-bottom:2px solid;top:-11px;left:-5px}.ic-camera{box-sizing:border-box;position:absolute;display:block;transform:scale(var(--ggs, 1));border:2px solid;border-radius:3px;width:18px;height:12px;perspective:24px}.ic-camera:after,.ic-camera:before{content:\"\";display:block;box-sizing:border-box;position:absolute}.ic-camera:before{border:2px solid;border-left-color:transparent;transform:rotateY(-70deg);width:8px;height:8px;right:-7px;top:0}.ic-camera:after{width:10px;height:5px;border-top:2px solid;border-right:2px solid;top:-5px;right:2px;border-top-right-radius:2px}.ic-calendar-today{box-sizing:border-box;position:absolute;display:block;transform:scale(var(--ggs, 1));width:18px;height:18px;border:2px solid;border-top:4px solid;border-radius:3px}.ic-calendar-today:before{content:\"\";display:block;box-sizing:border-box;position:absolute;background:currentColor;height:4px;width:4px;border-radius:2px;right:2px;bottom:2px}.ic-user{display:block;position:absolute;transform:scale(var(--ggs, 1));box-sizing:border-box;width:12px;height:18px}.ic-user:after,.ic-user:before{content:\"\";display:block;box-sizing:border-box;position:absolute;border:2px solid}.ic-user:before{width:8px;height:8px;border-radius:30px;top:0;left:2px}.ic-user:after{width:12px;height:9px;border-bottom:0;border-top-left-radius:3px;border-top-right-radius:3px;top:9px}.ico-close-details{width:44px;height:44px;border-radius:44px;display:flex;justify-content:center;align-items:center;opacity:.8;cursor:pointer}.ico-close-details:before,.ico-close-details:after{content:\"\";width:24px;height:2px;background-color:#333;position:absolute;border-radius:1px}.ico-close-details:hover{background-color:#f4f4f4}.ico-close-details:before{transform:rotate(45deg)}.ico-close-details:after{transform:rotate(-45deg)}.ico-menu,.ico-menu:before,.ico-menu:after{cursor:pointer;border-radius:1px;height:2px;width:23px;background:#000000;position:absolute;display:block;content:\"\"}.ico-menu:before{top:-6px}.ico-menu:after{bottom:-6px}.ico-gg-eye-alt{position:relative;display:block;transform:scale(var(--ggs, 1));width:24px;height:18px;border-bottom-right-radius:100px;border-bottom-left-radius:100px;overflow:hidden;box-sizing:border-box}.ico-gg-eye-alt:after,.ico-gg-eye-alt:before{content:\"\";display:block;border-radius:100px;position:absolute;box-sizing:border-box}.ico-gg-eye-alt:after{top:2px;box-shadow:inset 0 -8px 0 2px #696969,inset 0 0 0 2px #696969;width:24px;height:24px}.ico-gg-eye-alt:before{width:8px;height:8px;border:2px solid #696969;bottom:4px;left:8px;background-color:#696969}.ico-gg-add{box-sizing:border-box;position:relative;display:block;color:#47c562;width:32px;height:32px}.ico-gg-add:after,.ico-gg-add:before{content:\"\";display:block;box-sizing:border-box;position:absolute;width:14px;height:2px;background:currentColor;border-radius:5px;top:8px;left:0px}.ico-gg-add:after{width:2px;height:14px;top:2px;left:6px}.gg-eye-alt{position:relative;display:block;width:18px;height:12px;border-bottom-right-radius:100px;border-bottom-left-radius:100px;overflow:hidden;box-sizing:border-box}.gg-eye-alt:after,.gg-eye-alt:before{content:\"\";display:block;border-radius:100px;position:absolute;box-sizing:border-box}.gg-eye-alt:after{top:2px;box-shadow:inset 0 -8px 0 2px,inset 0 0 0 2px;width:18px;height:18px}.gg-eye-alt:before{width:2px;height:2px;border:2px solid black;bottom:3px;left:7px;background-color:#000}.ico-gg-check{box-sizing:border-box;position:relative;display:block;transform:scale(var(--ggs, 1));width:22px;height:22px;border:1px solid transparent;border-radius:100px;color:#fff}.ico-gg-check:after{content:\"\";display:block;box-sizing:border-box;position:absolute;left:5px;top:-3px;width:7px;height:12px;border-width:0 2px 2px 0;border-style:solid;transform-origin:bottom left;transform:rotate(45deg);color:#fff}html,body,p,span,label,h1,h2,h3,h4,h5,h6,.card-header-text,.welcome-message,.user-name,.profile-user-name,.project-name,.annuaire-label,.event_title,.objective_title{font-family:Lato,Helvetica,sans-serif}.structure{padding:12px 24px;border-bottom:1px solid #f8f8f8!important;min-height:110px;display:flex;justify-content:center;cursor:pointer}@media only screen and (max-width : 600px){.structure{height:unset}}.structure .typeStructure{color:#696969;font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:400;font-size:1em;font-style:italic}.structure:hover .structure-name{text-decoration:underline}.structure .structure-name{font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:700;font-size:1.125em;color:#333;padding-bottom:5px;width:100%}.structure .structure-name.notClaimed{color:#da3635}.structure .distanceStructure{font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:400;font-size:1em;color:#696969;text-align:right}.selection-button{font-style:normal;font-weight:700;justify-content:center;align-items:center;min-width:120px;height:40px;border-radius:20px}.selected{border:solid 1px #696969;background-color:#fff;color:#000}.to-select{color:#fff;border-style:none;background:#47c562}.distance{font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:400;font-size:.875em;color:#696969}.add-icon{color:#47c562}.orientation{flex-direction:row!important}.orientation .left{display:flex;flex-direction:column;justify-content:space-between;width:70%}.orientation .right{margin-top:6%}@media only screen and (max-width : 600px){.orientation .right{margin-left:unset}}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.DefaultLayoutDirective, selector: "  [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md],  [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md],  [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm],  [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i4.DefaultLayoutGapDirective, selector: "  [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md],  [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md],  [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm],  [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i4.DefaultLayoutAlignDirective, selector: "  [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md],  [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md],  [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm],  [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "component", type: i5.SvgIconComponent, selector: "app-svg-icon", inputs: ["icon", "iconClass", "type", "iconColor", "title"] }, { kind: "pipe", type: i5.DistancePipe, name: "distance" }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CardComponent, decorators: [{
            type: Component,
            args: [{ selector: 'app-card', template: "<div\n  class=\"structure\"\n  fxLayout=\"column\"\n  (click)=\"cardClicked()\"\n  (mouseenter)=\"cardHover()\"\n  [ngClass]=\"{ orientation: isOrientation }\">\n  <div class=\"left\">\n    <div fxLayout=\"row\" fxLayoutAlign=\"space-between baseline\" fxLayoutGap=\"16px\">\n      <div fxLayout=\"column\" fxLayoutAlign=\"end\">\n        <span class=\"structure-name\" [ngClass]=\"{ notClaimed: !isClaimed }\">{{ structure.structureName }}</span>\n        <span class=\"typeStructure\">{{ structure.getLabelTypeStructure() }}</span>\n      </div>\n      <div *ngIf=\"!isOrientation\" fxLayout=\"column\" fxLayoutAlign=\"none end\">\n        <div class=\"distanceStructure\">\n          {{ this.structure.address.commune }}\n        </div>\n        <div class=\"distance\" *ngIf=\"structure.distance\">\n          {{ structure.distance | distance }}\n        </div>\n      </div>\n    </div>\n    <div class=\"distance\" *ngIf=\"isOrientation && structure.distance\">\n      {{ structure.distance | distance }}\n    </div>\n  </div>\n  <div class=\"actions right\" *ngIf=\"isOrientation\">\n    <div\n      fxLayout=\"row\"\n      *ngIf=\"!isSelected\"\n      class=\"selection-button selected\"\n      (click)=\"cardAddToList(); $event.stopPropagation()\">\n      <app-svg-icon class=\"add-icon\" [type]=\"'ico'\" [icon]=\"'add'\" [iconColor]=\"'green'\"></app-svg-icon>\n      Ajouter\n    </div>\n    <div\n      fxLayout=\"row\"\n      *ngIf=\"isSelected\"\n      class=\"selection-button to-select\"\n      (click)=\"cardAddToList(); $event.stopPropagation()\">\n      <app-svg-icon class=\"add-icon\" [type]=\"'ico'\" [icon]=\"'validate'\" [iconColor]=\"'white'\"></app-svg-icon>\n      Ajout\u00E9\n    </div>\n  </div>\n</div>\n", styles: [".ico-mglass{position:relative;display:inline-block;background:transparent;border-radius:30px;border:2px solid #333333;height:12px;width:12px;min-width:12px;max-width:12px}.ico-mglass:after{content:\"\";height:2px;width:8px;background:#333333;position:absolute;top:14px;left:10px;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg)}.ico-pin{width:20px;height:20px;max-width:20px;max-height:20px;border-radius:50% 50% 50% 0;background:transparent;transform:rotate(-45deg);left:50%;top:50%;margin:-4px 0 0}.ico-pin.after{content:\"\";width:14px;height:14px;margin:8px 0 0 8px;background:transparent;border-radius:50%}.ico-pin-search{width:18px;height:18px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background-color:#696969}.ico-pin-search:before{content:\"\";position:absolute;left:5px;top:6px;width:7px;height:7px;border-radius:4px;background-color:#fff}.ico-dot-available{height:12px;width:12px;background-color:#41c29c;border-radius:50%;margin-right:8px}.ico-dot-unavailable{height:12px;width:12px;background-color:#da3635;border-radius:50%;margin-right:8px}.ico-dot-unknown{height:12px;width:12px;background-color:#bdbdbd;border-radius:50%;margin-right:8px}.ico-marker-pin{width:30px;height:30px;border-radius:50% 50% 50% 0;background:#da3635;position:absolute;transform:rotate(-45deg);left:50%;top:50%;margin:-15px 0 0 -15px}.ico-marker-pin.selected{background:#da3635}.ico-marker-pin:after{content:\"\";width:10px;height:10px;margin:10px 0 0 10px;background:#fff;position:absolute;border-radius:50%}.ico-marker-pin-sm{width:18px;height:18px;border-radius:50% 50% 50% 0;background:#696969;transform:rotate(-45deg);margin:0 4px}.ico-marker-pin-sm.absolute{position:absolute;margin:0}.ico-marker-pin-sm:after{content:\"\";width:7px;height:7px;margin:6px 0 0 5px;background:#f8f8f8;position:absolute;border-radius:50%}.ico-profile .head{width:12px;height:12px;border-radius:25px;border:2px solid #333333}.ico-profile .body{width:28px;height:10px;border-radius:20px 20px 0 0;border-top:2px solid #333333;border-right:2px solid #333333;border-left:2px solid #333333}.ico-close .mdiv{height:10px;width:2px;margin-left:5px;background-color:#696969;transform:rotate(45deg);z-index:1}.ico-close .md{height:10px;width:2px;background-color:#696969;transform:rotate(90deg);z-index:2}.ico-close-search{width:16px;height:16px;display:inline-block;vertical-align:middle}.ico-close-search:before{transform:rotate(45deg)}.ico-close-search:after{transform:rotate(-45deg)}.ico-close-search:before,.ico-close-search:after{position:absolute;content:\"\";height:16px;width:2px;background-color:#bdbdbd}.ic-arrow-left{box-sizing:border-box;position:relative;display:block;transform:scale(var(--ggs, 1));width:22px;height:22px}.ic-arrow-left:after,.ic-arrow-left:before{content:\"\";display:block;box-sizing:border-box;position:absolute;left:3px}.ic-arrow-left:after{width:8px;height:8px;border-bottom:2px solid;border-left:2px solid;transform:rotate(45deg);bottom:7px}.ic-arrow-left:before{width:16px;height:2px;bottom:10px;background:currentColor}.ic-print{width:.68em;height:1em;border-style:solid;border-color:currentcolor;background-color:transparent;border-width:.07em;border-radius:.05em;margin:0 .16em}.ic-print:before{width:1em;height:.4em;border-width:.07em .21em 0;border-style:solid;border-color:currentColor currentcolor transparent;border-radius:.05em .05em 0 0;top:.25em;left:50%;transform:translate(-50%);background-image:linear-gradient(transparent 20%,currentcolor 20%,currentcolor 60%,transparent 60%)}.ic-print:after{width:.45em;height:.065em;background-color:currentColor;left:50%;transform:translate(-50%);top:.6em;box-shadow:0 .12em,-.1em -.28em 0 .05em}.ic-mail,.ic-mail:after{display:block;box-sizing:border-box;height:14px;border:2px solid}.ic-mail{color:#4f4f4f;overflow:hidden;transform:scale(var(--ggs, 1));position:absolute;width:18px;border-radius:2px}.ic-mail:after{content:\"\";position:absolute;border-radius:3px;width:14px;transform:rotate(-45deg);bottom:3px;left:0}.ic-phone{color:#4f4f4f;box-sizing:border-box;position:absolute;display:block;width:22px;height:22px;transform:scale(var(--ggs, 1))}.ic-phone:after,.ic-phone:before{content:\"\";display:block;box-sizing:border-box;position:absolute}.ic-phone:after{width:18px;height:18px;border-top-left-radius:1px;border-bottom-right-radius:1px;border-bottom-left-radius:12px;border-left:4px solid;border-bottom:4px solid;left:2px;bottom:2px;background:linear-gradient(to left,currentColor 10px,transparent 0) no-repeat right 11px/6px 4px,linear-gradient(to left,currentColor 10px,transparent 0) no-repeat -1px 0/4px 6px}.ic-phone:before{width:20px;height:20px;border:6px double;border-top-color:transparent;border-bottom-color:transparent;border-left-color:transparent;border-radius:50%;transform:rotate(-45deg);bottom:2px;left:2px}.ic-mouse{box-sizing:border-box;position:relative;display:block;transform:scale(var(--ggs, 1));width:16px;height:24px;border:2px solid;border-radius:10px}.ic-mouse:after{content:\"\";display:block;box-sizing:border-box;position:absolute;border-radius:3px;width:2px;height:6px;background:currentColor;top:3px;left:5px}.ic-wifi{color:#000;position:absolute;margin-left:7px;margin-top:13px;width:6px;height:6px;border-radius:50%;border-top:solid 1px currentColor;border-right:solid 1px transparent;border-bottom:solid 1px transparent;border-left:solid 1px transparent}.ic-wifi:before{content:\"\";position:absolute;left:-5px;top:-5px;width:14px;height:14px;border-radius:50%;border-top:solid 1px currentColor;border-right:solid 1px transparent;border-bottom:solid 1px transparent;border-left:solid 1px transparent}.ic-wifi:after{content:\"\";position:absolute;left:-9px;top:-9px;width:22px;height:22px;border-radius:50%;border-top:solid 1px currentColor;border-right:solid 1px transparent;border-bottom:solid 1px transparent;border-left:solid 1px transparent}.ic-screen{box-sizing:border-box;position:absolute;display:block;transform:scale(var(--ggs, 1));width:22px;height:14px;border:2px solid;border-radius:3px;margin-top:-4px}.ic-screen:after,.ic-screen:before{content:\"\";display:block;box-sizing:border-box;position:absolute;border-radius:3px;width:10px;height:2px;background:currentColor;top:14px;left:4px}.ic-screen:before{width:2px;height:6px;top:10px;left:8px}.ic-globe-alt,.ic-globe-alt:after,.ic-globe-alt:before{color:#4f4f4f;display:block;box-sizing:border-box;height:18px;border:2px solid}.ic-globe-alt{position:absolute;transform:scale(var(--ggs, 1));width:18px;border-radius:22px}.ic-globe-alt:after,.ic-globe-alt:before{content:\"\";position:absolute;width:8px;border-radius:100%;top:-2px;left:3px}.ic-globe-alt:after{width:24px;height:20px;border:2px solid transparent;border-bottom:2px solid;top:-11px;left:-5px}.ic-camera{box-sizing:border-box;position:absolute;display:block;transform:scale(var(--ggs, 1));border:2px solid;border-radius:3px;width:18px;height:12px;perspective:24px}.ic-camera:after,.ic-camera:before{content:\"\";display:block;box-sizing:border-box;position:absolute}.ic-camera:before{border:2px solid;border-left-color:transparent;transform:rotateY(-70deg);width:8px;height:8px;right:-7px;top:0}.ic-camera:after{width:10px;height:5px;border-top:2px solid;border-right:2px solid;top:-5px;right:2px;border-top-right-radius:2px}.ic-calendar-today{box-sizing:border-box;position:absolute;display:block;transform:scale(var(--ggs, 1));width:18px;height:18px;border:2px solid;border-top:4px solid;border-radius:3px}.ic-calendar-today:before{content:\"\";display:block;box-sizing:border-box;position:absolute;background:currentColor;height:4px;width:4px;border-radius:2px;right:2px;bottom:2px}.ic-user{display:block;position:absolute;transform:scale(var(--ggs, 1));box-sizing:border-box;width:12px;height:18px}.ic-user:after,.ic-user:before{content:\"\";display:block;box-sizing:border-box;position:absolute;border:2px solid}.ic-user:before{width:8px;height:8px;border-radius:30px;top:0;left:2px}.ic-user:after{width:12px;height:9px;border-bottom:0;border-top-left-radius:3px;border-top-right-radius:3px;top:9px}.ico-close-details{width:44px;height:44px;border-radius:44px;display:flex;justify-content:center;align-items:center;opacity:.8;cursor:pointer}.ico-close-details:before,.ico-close-details:after{content:\"\";width:24px;height:2px;background-color:#333;position:absolute;border-radius:1px}.ico-close-details:hover{background-color:#f4f4f4}.ico-close-details:before{transform:rotate(45deg)}.ico-close-details:after{transform:rotate(-45deg)}.ico-menu,.ico-menu:before,.ico-menu:after{cursor:pointer;border-radius:1px;height:2px;width:23px;background:#000000;position:absolute;display:block;content:\"\"}.ico-menu:before{top:-6px}.ico-menu:after{bottom:-6px}.ico-gg-eye-alt{position:relative;display:block;transform:scale(var(--ggs, 1));width:24px;height:18px;border-bottom-right-radius:100px;border-bottom-left-radius:100px;overflow:hidden;box-sizing:border-box}.ico-gg-eye-alt:after,.ico-gg-eye-alt:before{content:\"\";display:block;border-radius:100px;position:absolute;box-sizing:border-box}.ico-gg-eye-alt:after{top:2px;box-shadow:inset 0 -8px 0 2px #696969,inset 0 0 0 2px #696969;width:24px;height:24px}.ico-gg-eye-alt:before{width:8px;height:8px;border:2px solid #696969;bottom:4px;left:8px;background-color:#696969}.ico-gg-add{box-sizing:border-box;position:relative;display:block;color:#47c562;width:32px;height:32px}.ico-gg-add:after,.ico-gg-add:before{content:\"\";display:block;box-sizing:border-box;position:absolute;width:14px;height:2px;background:currentColor;border-radius:5px;top:8px;left:0px}.ico-gg-add:after{width:2px;height:14px;top:2px;left:6px}.gg-eye-alt{position:relative;display:block;width:18px;height:12px;border-bottom-right-radius:100px;border-bottom-left-radius:100px;overflow:hidden;box-sizing:border-box}.gg-eye-alt:after,.gg-eye-alt:before{content:\"\";display:block;border-radius:100px;position:absolute;box-sizing:border-box}.gg-eye-alt:after{top:2px;box-shadow:inset 0 -8px 0 2px,inset 0 0 0 2px;width:18px;height:18px}.gg-eye-alt:before{width:2px;height:2px;border:2px solid black;bottom:3px;left:7px;background-color:#000}.ico-gg-check{box-sizing:border-box;position:relative;display:block;transform:scale(var(--ggs, 1));width:22px;height:22px;border:1px solid transparent;border-radius:100px;color:#fff}.ico-gg-check:after{content:\"\";display:block;box-sizing:border-box;position:absolute;left:5px;top:-3px;width:7px;height:12px;border-width:0 2px 2px 0;border-style:solid;transform-origin:bottom left;transform:rotate(45deg);color:#fff}html,body,p,span,label,h1,h2,h3,h4,h5,h6,.card-header-text,.welcome-message,.user-name,.profile-user-name,.project-name,.annuaire-label,.event_title,.objective_title{font-family:Lato,Helvetica,sans-serif}.structure{padding:12px 24px;border-bottom:1px solid #f8f8f8!important;min-height:110px;display:flex;justify-content:center;cursor:pointer}@media only screen and (max-width : 600px){.structure{height:unset}}.structure .typeStructure{color:#696969;font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:400;font-size:1em;font-style:italic}.structure:hover .structure-name{text-decoration:underline}.structure .structure-name{font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:700;font-size:1.125em;color:#333;padding-bottom:5px;width:100%}.structure .structure-name.notClaimed{color:#da3635}.structure .distanceStructure{font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:400;font-size:1em;color:#696969;text-align:right}.selection-button{font-style:normal;font-weight:700;justify-content:center;align-items:center;min-width:120px;height:40px;border-radius:20px}.selected{border:solid 1px #696969;background-color:#fff;color:#000}.to-select{color:#fff;border-style:none;background:#47c562}.distance{font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:400;font-size:.875em;color:#696969}.add-icon{color:#47c562}.orientation{flex-direction:row!important}.orientation .left{display:flex;flex-direction:column;justify-content:space-between;width:70%}.orientation .right{margin-top:6%}@media only screen and (max-width : 600px){.orientation .right{margin-left:unset}}\n"] }]
        }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i1.Router }]; }, propDecorators: { structure: [{
                type: Input
            }], isSelected: [{
                type: Input
            }], isOrientation: [{
                type: Input
            }], isClaimed: [{
                type: Input
            }], showDetails: [{
                type: Output
            }], addToList: [{
                type: Output
            }], hover: [{
                type: Output
            }] } });

var TypeModal;
(function (TypeModal) {
    TypeModal[TypeModal["accompaniment"] = 1] = "accompaniment";
    TypeModal[TypeModal["training"] = 2] = "training";
    TypeModal[TypeModal["public"] = 3] = "public";
    TypeModal[TypeModal["equipments"] = 4] = "equipments";
    TypeModal[TypeModal["moreFilters"] = 5] = "moreFilters";
})(TypeModal || (TypeModal = {}));

class Filter {
    constructor(name, value, text) {
        this.name = name;
        this.value = value.toString();
        this.text = text;
        this.checked = true;
    }
}

class Module {
    constructor(id, text, displayText) {
        this.id = id;
        this.text = text;
        this.displayText = displayText;
    }
}

const SEARCH_TOKEN = new InjectionToken('structure-list.search.repository');

class ModalFilterComponent {
    constructor(searchService) {
        this.searchService = searchService;
        //checked modules filter list
        this.modules = [];
        this.searchEvent = new EventEmitter();
        this.closeEvent = new EventEmitter();
        this.buttonTypeEnum = ButtonType;
        // Checkbox variable
        this.checkedModules = [];
        this.toggledCategories = [];
    }
    ngOnInit() {
        // Manage checkbox
        this.checkedModules = this.modules.slice();
    }
    ngOnChanges(changes) {
        if (changes.modalType) {
            this.checkedModules = this.modules.slice();
        }
    }
    // Management of the checkbox event (Check / Uncheck)
    onCheckboxChange(event, categ, text) {
        const checkValue = event.target.value;
        if (event.target.checked) {
            this.checkedModules.push(new Module(checkValue, categ, text ? text : checkValue));
        }
        else {
            // Check if the module is present in the list and remove it
            if (this.searchService.getIndex(this.checkedModules, checkValue, categ) > -1) {
                this.checkedModules.splice(this.searchService.getIndex(this.checkedModules, checkValue, categ), 1);
            }
        }
    }
    // Clear only filters in the current modal
    clearFilters() {
        this.categories.forEach((categ) => {
            categ.modules.forEach((module) => {
                const index = this.searchService.getIndex(this.checkedModules, module.id, categ.id);
                if (index > -1) {
                    this.checkedModules.splice(index, 1);
                }
            });
        });
        this.emitModules(this.checkedModules);
    }
    // Sends an array containing all modules
    emitModules(m) {
        this.searchEvent.emit(m);
    }
    getModalType() {
        switch (this.modalType) {
            case TypeModal.accompaniment:
                return 'accompaniment';
            case TypeModal.training:
                return 'training';
            case TypeModal.public:
                return 'public';
            case TypeModal.equipments:
                return 'equipments';
            case TypeModal.moreFilters:
                return 'moreFilters';
            default:
                return '';
        }
    }
    closeModal() {
        this.closeEvent.emit();
    }
    handleCategoryCheckBox(event, category) {
        const modules = this.categories.filter((c) => c.id === category.id)[0].modules;
        if (event.target.checked) {
            for (const module of modules) {
                if (this.searchService.getIndex(this.checkedModules, module.id, category.id) === -1) {
                    this.checkedModules.push(new Module(module.id, category.id, module.displayText));
                }
            }
        }
        else {
            for (const module of modules) {
                if (this.searchService.getIndex(this.checkedModules, module.id, category.id) > -1) {
                    this.checkedModules.splice(this.searchService.getIndex(this.checkedModules, module.id, category.id), 1);
                }
            }
        }
    }
    toggleShowCategory(categoryId) {
        if (this.toggledCategories.includes(categoryId)) {
            const index = this.toggledCategories.indexOf(categoryId);
            this.toggledCategories.splice(index);
        }
        else {
            this.toggledCategories.push(categoryId);
        }
    }
    getCategoryCheckboxStatus(c) {
        const selectedModule = this.checkedModules.filter((m) => m.text === c.id);
        if (selectedModule.length === c.modules.length) {
            return 'checked';
        }
        else if (selectedModule.length === 0) {
            return 'unchecked';
        }
        else if (selectedModule.length && selectedModule.length > 0) {
            return 'halfChecked';
        }
    }
}
ModalFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ModalFilterComponent, deps: [{ token: SEARCH_TOKEN }], target: i0.ɵɵFactoryTarget.Component });
ModalFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: ModalFilterComponent, selector: "app-modal-filter", inputs: { modalType: "modalType", categories: "categories", modules: "modules" }, outputs: { searchEvent: "searchEvent", closeEvent: "closeEvent" }, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"modalType\" fxLayout=\"column\" fxLayoutAlign=\"center center\" [ngClass]=\"['modal', 'modal' + getModalType()]\">\n  <div class=\"body-wrap\" fxLayout=\"column\" fxLayoutAlign=\"space-between\">\n    <div class=\"titleFilter\" fxLayout=\"row\" fxLayoutAlign=\"space-between\">\n      <span>Filtres</span>\n      <div (click)=\"closeModal()\" class=\"ico-close-details\"></div>\n    </div>\n    <!-- Filter with single category -->\n    <div class=\"contentModal\" fxLayout=\"row wrap\" fxLayoutAlign=\"flex-start\" *ngIf=\"categories.length === 1\">\n      <div class=\"blockFiltre\" *ngFor=\"let c of categories\">\n        <ul class=\"blockLigne\">\n          <div fxLayout=\"row\" fxLayoutAlign=\"start center\" class=\"ligneFiltre\" *ngFor=\"let module of c.modules\">\n            <li class=\"checkbox\">\n              <div class=\"checkboxItem\">\n                <label fxLayout=\"row\" fxLayoutAlign=\"start center\">\n                  <input\n                    type=\"checkbox\"\n                    [checked]=\"searchService.getIndex(checkedModules, module.id, c.id) > -1\"\n                    [value]=\"module.id\"\n                    (change)=\"onCheckboxChange($event, c.id, module.text)\" />\n                  <span class=\"customCheck customCheckPrimary\"></span>\n                  <div class=\"label\">{{ module.text }}</div>\n                </label>\n              </div>\n            </li>\n          </div>\n        </ul>\n      </div>\n    </div>\n    <!-- \"Other filters\" backdrop fullwidth modal -->\n    <div\n      class=\"contentModal maxModal\"\n      fxLayout=\"row wrap\"\n      fxLayoutAlign=\"flex-start\"\n      *ngIf=\"categories.length > 1 && getModalType() === 'moreFilters'\">\n      <div\n        class=\"blockLigne\"\n        (clickOutside)=\"getModalType() === 'moreFilters' ? closeModal() : ''\"\n        [ngClass]=\"{ backDropModal: getModalType() === 'moreFilters' }\">\n        <div class=\"headerMoreFilters\" *ngIf=\"getModalType() === 'moreFilters'\">\n          Plus de filtres\n          <div class=\"iconClose\" (click)=\"closeModal()\">\n            <app-svg-icon [iconClass]=\"'icon-28'\" [iconColor]=\"'grey-1'\" [icon]=\"'closeModal'\" [type]=\"'ico'\"></app-svg-icon>\n          </div>\n        </div>\n        <div class=\"scroll-container\">\n          <div class=\"blockFiltre\" *ngFor=\"let c of categories\">\n            <p>{{ c.name }}</p>\n            <ul class=\"blockLigne smallList\" [ngClass]=\"{ show: this.toggledCategories.includes(c.id) }\">\n              <div fxLayout=\"row\" fxLayoutAlign=\"start center\" class=\"ligneFiltre\" *ngFor=\"let module of c.modules\">\n                <li class=\"checkbox\">\n                  <div class=\"checkboxItem\">\n                    <label fxLayout=\"row\" fxLayoutAlign=\"start center\">\n                      <input\n                        type=\"checkbox\"\n                        [checked]=\"searchService.getIndex(checkedModules, module.id, c.id) > -1\"\n                        [value]=\"module.id\"\n                        (change)=\"onCheckboxChange($event, c.id, module.displayText)\" />\n                      <span class=\"customCheck customCheckPrimary\"></span>\n                      <div class=\"label\">{{ module.text }}</div>\n                    </label>\n                  </div>\n                </li>\n              </div>\n            </ul>\n          </div>\n        </div>\n        <div\n          class=\"footer\"\n          fxLayout=\"row\"\n          fxLayoutAlign=\"center center\"\n          [ngClass]=\"{ backDropModalFooter: getModalType() === 'moreFilters' }\">\n          <div class=\"half-width\">\n            <app-button\n              [style]=\"buttonTypeEnum.modalSecondary\"\n              [text]=\"'Effacer'\"\n              (click)=\"clearFilters()\"\n              tabindex=\"0\"></app-button>\n          </div>\n          <div class=\"half-width\">\n            <app-button\n              [style]=\"buttonTypeEnum.modalPrimary\"\n              [text]=\"'Appliquer'\"\n              (click)=\"emitModules(checkedModules)\"></app-button>\n          </div>\n        </div>\n      </div>\n    </div>\n    <!-- Filter with multiple categories -->\n    <div\n      class=\"contentModal maxModal max-height\"\n      fxLayout=\"row wrap\"\n      fxLayoutAlign=\"flex-start\"\n      *ngIf=\"categories.length > 1 && getModalType() !== 'moreFilters'\">\n      <ul class=\"blockLigne\">\n        <div class=\"blockFiltre\" *ngFor=\"let c of categories\">\n          <li class=\"checkbox\">\n            <div class=\"checkboxItem categoryCheckBox\">\n              <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\n                <label>\n                  <input\n                    type=\"checkbox\"\n                    class=\"multiCheck\"\n                    [checked]=\"getCategoryCheckboxStatus(c) === 'checked'\"\n                    (change)=\"handleCategoryCheckBox($event, c)\" />\n                  <span\n                    class=\"customCheck customCheckPrimary\"\n                    [ngClass]=\"{ halfCheck: getCategoryCheckboxStatus(c) === 'halfChecked' }\"></span>\n                </label>\n                <div\n                  fxLayout=\"row\"\n                  fxLayoutAlign=\"space-between center\"\n                  class=\"w-100 clickable\"\n                  (click)=\"toggleShowCategory(c.id)\">\n                  <div class=\"label\">{{ c.name }}</div>\n                  <div class=\"arrow\" [ngClass]=\"{ toggled: this.toggledCategories.includes(c.id) }\"></div>\n                </div>\n              </div>\n              <ul class=\"blockLigne smallList\" [ngClass]=\"{ show: this.toggledCategories.includes(c.id) }\">\n                <div fxLayout=\"row\" fxLayoutAlign=\"start center\" class=\"ligneFiltre\" *ngFor=\"let module of c.modules\">\n                  <li class=\"checkbox\">\n                    <div class=\"checkboxItem\">\n                      <label fxLayout=\"row\" fxLayoutAlign=\"start center\">\n                        <input\n                          type=\"checkbox\"\n                          [checked]=\"searchService.getIndex(checkedModules, module.id, c.id) > -1\"\n                          [value]=\"module.id\"\n                          (change)=\"onCheckboxChange($event, c.id, module.text)\" />\n                        <span class=\"customCheck customCheckPrimary\"></span>\n                        <div class=\"label\">{{ module.text }}</div>\n                      </label>\n                    </div>\n                  </li>\n                </div>\n              </ul>\n            </div>\n          </li>\n        </div>\n      </ul>\n    </div>\n    <div\n      class=\"footer\"\n      fxLayout=\"row\"\n      fxLayoutAlign=\"center center\"\n      [ngClass]=\"{ backDropModalFooter: getModalType() === 'moreFilters' }\"\n      *ngIf=\"getModalType() !== 'moreFilters'\">\n      <div class=\"half-width\">\n        <app-button\n          [style]=\"buttonTypeEnum.modalSecondary\"\n          [text]=\"'Effacer'\"\n          (click)=\"clearFilters()\"\n          tabindex=\"0\"></app-button>\n      </div>\n      <div class=\"half-width\">\n        <app-button\n          [style]=\"buttonTypeEnum.modalPrimary\"\n          [text]=\"'Appliquer'\"\n          (click)=\"emitModules(checkedModules)\"></app-button>\n      </div>\n    </div>\n  </div>\n</div>\n", styles: [".ico-mglass{position:relative;display:inline-block;background:transparent;border-radius:30px;border:2px solid #333333;height:12px;width:12px;min-width:12px;max-width:12px}.ico-mglass:after{content:\"\";height:2px;width:8px;background:#333333;position:absolute;top:14px;left:10px;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg)}.ico-pin{width:20px;height:20px;max-width:20px;max-height:20px;border-radius:50% 50% 50% 0;background:transparent;transform:rotate(-45deg);left:50%;top:50%;margin:-4px 0 0}.ico-pin.after{content:\"\";width:14px;height:14px;margin:8px 0 0 8px;background:transparent;border-radius:50%}.ico-pin-search{width:18px;height:18px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background-color:#696969}.ico-pin-search:before{content:\"\";position:absolute;left:5px;top:6px;width:7px;height:7px;border-radius:4px;background-color:#fff}.ico-dot-available{height:12px;width:12px;background-color:#41c29c;border-radius:50%;margin-right:8px}.ico-dot-unavailable{height:12px;width:12px;background-color:#da3635;border-radius:50%;margin-right:8px}.ico-dot-unknown{height:12px;width:12px;background-color:#bdbdbd;border-radius:50%;margin-right:8px}.ico-marker-pin{width:30px;height:30px;border-radius:50% 50% 50% 0;background:#da3635;position:absolute;transform:rotate(-45deg);left:50%;top:50%;margin:-15px 0 0 -15px}.ico-marker-pin.selected{background:#da3635}.ico-marker-pin:after{content:\"\";width:10px;height:10px;margin:10px 0 0 10px;background:#fff;position:absolute;border-radius:50%}.ico-marker-pin-sm{width:18px;height:18px;border-radius:50% 50% 50% 0;background:#696969;transform:rotate(-45deg);margin:0 4px}.ico-marker-pin-sm.absolute{position:absolute;margin:0}.ico-marker-pin-sm:after{content:\"\";width:7px;height:7px;margin:6px 0 0 5px;background:#f8f8f8;position:absolute;border-radius:50%}.ico-profile .head{width:12px;height:12px;border-radius:25px;border:2px solid #333333}.ico-profile .body{width:28px;height:10px;border-radius:20px 20px 0 0;border-top:2px solid #333333;border-right:2px solid #333333;border-left:2px solid #333333}.ico-close .mdiv{height:10px;width:2px;margin-left:5px;background-color:#696969;transform:rotate(45deg);z-index:1}.ico-close .md{height:10px;width:2px;background-color:#696969;transform:rotate(90deg);z-index:2}.ico-close-search{width:16px;height:16px;display:inline-block;vertical-align:middle}.ico-close-search:before{transform:rotate(45deg)}.ico-close-search:after{transform:rotate(-45deg)}.ico-close-search:before,.ico-close-search:after{position:absolute;content:\"\";height:16px;width:2px;background-color:#bdbdbd}.ic-arrow-left{box-sizing:border-box;position:relative;display:block;transform:scale(var(--ggs, 1));width:22px;height:22px}.ic-arrow-left:after,.ic-arrow-left:before{content:\"\";display:block;box-sizing:border-box;position:absolute;left:3px}.ic-arrow-left:after{width:8px;height:8px;border-bottom:2px solid;border-left:2px solid;transform:rotate(45deg);bottom:7px}.ic-arrow-left:before{width:16px;height:2px;bottom:10px;background:currentColor}.ic-print{width:.68em;height:1em;border-style:solid;border-color:currentcolor;background-color:transparent;border-width:.07em;border-radius:.05em;margin:0 .16em}.ic-print:before{width:1em;height:.4em;border-width:.07em .21em 0;border-style:solid;border-color:currentColor currentcolor transparent;border-radius:.05em .05em 0 0;top:.25em;left:50%;transform:translate(-50%);background-image:linear-gradient(transparent 20%,currentcolor 20%,currentcolor 60%,transparent 60%)}.ic-print:after{width:.45em;height:.065em;background-color:currentColor;left:50%;transform:translate(-50%);top:.6em;box-shadow:0 .12em,-.1em -.28em 0 .05em}.ic-mail,.ic-mail:after{display:block;box-sizing:border-box;height:14px;border:2px solid}.ic-mail{color:#4f4f4f;overflow:hidden;transform:scale(var(--ggs, 1));position:absolute;width:18px;border-radius:2px}.ic-mail:after{content:\"\";position:absolute;border-radius:3px;width:14px;transform:rotate(-45deg);bottom:3px;left:0}.ic-phone{color:#4f4f4f;box-sizing:border-box;position:absolute;display:block;width:22px;height:22px;transform:scale(var(--ggs, 1))}.ic-phone:after,.ic-phone:before{content:\"\";display:block;box-sizing:border-box;position:absolute}.ic-phone:after{width:18px;height:18px;border-top-left-radius:1px;border-bottom-right-radius:1px;border-bottom-left-radius:12px;border-left:4px solid;border-bottom:4px solid;left:2px;bottom:2px;background:linear-gradient(to left,currentColor 10px,transparent 0) no-repeat right 11px/6px 4px,linear-gradient(to left,currentColor 10px,transparent 0) no-repeat -1px 0/4px 6px}.ic-phone:before{width:20px;height:20px;border:6px double;border-top-color:transparent;border-bottom-color:transparent;border-left-color:transparent;border-radius:50%;transform:rotate(-45deg);bottom:2px;left:2px}.ic-mouse{box-sizing:border-box;position:relative;display:block;transform:scale(var(--ggs, 1));width:16px;height:24px;border:2px solid;border-radius:10px}.ic-mouse:after{content:\"\";display:block;box-sizing:border-box;position:absolute;border-radius:3px;width:2px;height:6px;background:currentColor;top:3px;left:5px}.ic-wifi{color:#000;position:absolute;margin-left:7px;margin-top:13px;width:6px;height:6px;border-radius:50%;border-top:solid 1px currentColor;border-right:solid 1px transparent;border-bottom:solid 1px transparent;border-left:solid 1px transparent}.ic-wifi:before{content:\"\";position:absolute;left:-5px;top:-5px;width:14px;height:14px;border-radius:50%;border-top:solid 1px currentColor;border-right:solid 1px transparent;border-bottom:solid 1px transparent;border-left:solid 1px transparent}.ic-wifi:after{content:\"\";position:absolute;left:-9px;top:-9px;width:22px;height:22px;border-radius:50%;border-top:solid 1px currentColor;border-right:solid 1px transparent;border-bottom:solid 1px transparent;border-left:solid 1px transparent}.ic-screen{box-sizing:border-box;position:absolute;display:block;transform:scale(var(--ggs, 1));width:22px;height:14px;border:2px solid;border-radius:3px;margin-top:-4px}.ic-screen:after,.ic-screen:before{content:\"\";display:block;box-sizing:border-box;position:absolute;border-radius:3px;width:10px;height:2px;background:currentColor;top:14px;left:4px}.ic-screen:before{width:2px;height:6px;top:10px;left:8px}.ic-globe-alt,.ic-globe-alt:after,.ic-globe-alt:before{color:#4f4f4f;display:block;box-sizing:border-box;height:18px;border:2px solid}.ic-globe-alt{position:absolute;transform:scale(var(--ggs, 1));width:18px;border-radius:22px}.ic-globe-alt:after,.ic-globe-alt:before{content:\"\";position:absolute;width:8px;border-radius:100%;top:-2px;left:3px}.ic-globe-alt:after{width:24px;height:20px;border:2px solid transparent;border-bottom:2px solid;top:-11px;left:-5px}.ic-camera{box-sizing:border-box;position:absolute;display:block;transform:scale(var(--ggs, 1));border:2px solid;border-radius:3px;width:18px;height:12px;perspective:24px}.ic-camera:after,.ic-camera:before{content:\"\";display:block;box-sizing:border-box;position:absolute}.ic-camera:before{border:2px solid;border-left-color:transparent;transform:rotateY(-70deg);width:8px;height:8px;right:-7px;top:0}.ic-camera:after{width:10px;height:5px;border-top:2px solid;border-right:2px solid;top:-5px;right:2px;border-top-right-radius:2px}.ic-calendar-today{box-sizing:border-box;position:absolute;display:block;transform:scale(var(--ggs, 1));width:18px;height:18px;border:2px solid;border-top:4px solid;border-radius:3px}.ic-calendar-today:before{content:\"\";display:block;box-sizing:border-box;position:absolute;background:currentColor;height:4px;width:4px;border-radius:2px;right:2px;bottom:2px}.ic-user{display:block;position:absolute;transform:scale(var(--ggs, 1));box-sizing:border-box;width:12px;height:18px}.ic-user:after,.ic-user:before{content:\"\";display:block;box-sizing:border-box;position:absolute;border:2px solid}.ic-user:before{width:8px;height:8px;border-radius:30px;top:0;left:2px}.ic-user:after{width:12px;height:9px;border-bottom:0;border-top-left-radius:3px;border-top-right-radius:3px;top:9px}.ico-close-details{width:44px;height:44px;border-radius:44px;display:flex;justify-content:center;align-items:center;opacity:.8;cursor:pointer}.ico-close-details:before,.ico-close-details:after{content:\"\";width:24px;height:2px;background-color:#333;position:absolute;border-radius:1px}.ico-close-details:hover{background-color:#f4f4f4}.ico-close-details:before{transform:rotate(45deg)}.ico-close-details:after{transform:rotate(-45deg)}.ico-menu,.ico-menu:before,.ico-menu:after{cursor:pointer;border-radius:1px;height:2px;width:23px;background:#000000;position:absolute;display:block;content:\"\"}.ico-menu:before{top:-6px}.ico-menu:after{bottom:-6px}.ico-gg-eye-alt{position:relative;display:block;transform:scale(var(--ggs, 1));width:24px;height:18px;border-bottom-right-radius:100px;border-bottom-left-radius:100px;overflow:hidden;box-sizing:border-box}.ico-gg-eye-alt:after,.ico-gg-eye-alt:before{content:\"\";display:block;border-radius:100px;position:absolute;box-sizing:border-box}.ico-gg-eye-alt:after{top:2px;box-shadow:inset 0 -8px 0 2px #696969,inset 0 0 0 2px #696969;width:24px;height:24px}.ico-gg-eye-alt:before{width:8px;height:8px;border:2px solid #696969;bottom:4px;left:8px;background-color:#696969}.ico-gg-add{box-sizing:border-box;position:relative;display:block;color:#47c562;width:32px;height:32px}.ico-gg-add:after,.ico-gg-add:before{content:\"\";display:block;box-sizing:border-box;position:absolute;width:14px;height:2px;background:currentColor;border-radius:5px;top:8px;left:0px}.ico-gg-add:after{width:2px;height:14px;top:2px;left:6px}.gg-eye-alt{position:relative;display:block;width:18px;height:12px;border-bottom-right-radius:100px;border-bottom-left-radius:100px;overflow:hidden;box-sizing:border-box}.gg-eye-alt:after,.gg-eye-alt:before{content:\"\";display:block;border-radius:100px;position:absolute;box-sizing:border-box}.gg-eye-alt:after{top:2px;box-shadow:inset 0 -8px 0 2px,inset 0 0 0 2px;width:18px;height:18px}.gg-eye-alt:before{width:2px;height:2px;border:2px solid black;bottom:3px;left:7px;background-color:#000}.ico-gg-check{box-sizing:border-box;position:relative;display:block;transform:scale(var(--ggs, 1));width:22px;height:22px;border:1px solid transparent;border-radius:100px;color:#fff}.ico-gg-check:after{content:\"\";display:block;box-sizing:border-box;position:absolute;left:5px;top:-3px;width:7px;height:12px;border-width:0 2px 2px 0;border-style:solid;transform-origin:bottom left;transform:rotate(45deg);color:#fff}html,body,p,span,label,h1,h2,h3,h4,h5,h6,.card-header-text,.welcome-message,.user-name,.profile-user-name,.project-name,.annuaire-label,.event_title,.objective_title{font-family:Lato,Helvetica,sans-serif}.modalaccompaniment{left:212px}@media only screen and (min-width : 1201px){.modalaccompaniment{left:273px}}.modaltraining{left:331px}@media only screen and (min-width : 1201px){.modaltraining{left:417px}}.modalpublic{left:431px}@media only screen and (min-width : 1201px){.modalpublic{left:513px}}.modalequipments{left:519px}@media only screen and (min-width : 1201px){.modalequipments{left:603px}}.maxModal .blockLigne{box-sizing:border-box;width:360px}.maxModal .blockLigne .smallList{display:block;box-sizing:border-box;background:#f8f8f8;max-width:300px;padding:.5rem!important;margin-top:1rem!important}.modal{max-width:360px;width:auto;z-index:1004!important;position:fixed;box-shadow:0 4px 16px #00000040;border-radius:8px;margin-top:25px;background:white}@media only screen and (max-width : 600px){.modal{height:100%;max-height:auto;max-width:auto;width:100%;position:fixed;top:0;left:0;border:none;padding:0}}@media only screen and (max-width : 600px){.modal .body-wrap{height:100vh;height:-webkit-fill-available}}.modal .body-wrap .titleFilter{display:none!important;margin:27px 25px 0;font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:700;font-size:1.625em}@media only screen and (max-width : 600px){.modal .body-wrap .titleFilter{display:flex!important}}.modal .contentModal{overflow-y:auto;max-width:1100px;border-bottom:1px solid #b4bbbf}@media only screen and (max-width : 600px){.modal .contentModal{max-height:none;height:100%}}.modal .contentModal .blockFiltre{width:auto;margin:25px 20px;margin-bottom:calc(25px - 1rem);min-width:200px}@media only screen and (max-width : 600px){.modal .contentModal .blockFiltre{margin:0 18px;padding:25px 0;min-width:0}}.modal .contentModal .blockFiltre .categoryCheckBox .halfCheck{position:relative}.modal .contentModal .blockFiltre .categoryCheckBox .halfCheck:before{content:\"\";position:absolute;display:block;width:10px;left:4px;top:8px;transform:rotate(0);border-bottom:solid 2px #4f4f4f;border-radius:0}.modal .contentModal .blockFiltre .categoryCheckBox ul{display:none}.modal .contentModal .blockFiltre .categoryCheckBox .show{display:block!important}.modal .contentModal .blockLigne{padding-left:0;margin:0}.modal .contentModal .blockLigne li{margin-bottom:1rem}.modal .contentModal label{font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:400;font-size:1em;color:#333}.modal .contentModal .arrow{cursor:pointer;margin-left:auto;background-color:transparent;border-bottom:1px solid black;border-right:1px solid black;transform:translateY(-25%) rotate(45deg);height:7px;width:7px;transition:all .3s ease;margin-top:-5px}.modal .contentModal .toggled{transform:translateY(25%) rotate(-135deg)}.modal .contentModal.max-height{max-height:50vh;overflow-y:overlay}.modal .footer{box-sizing:border-box;padding:.5rem}.modal .footer .reset{width:45%;text-align:center;color:#bdbdbd}.modal .footer .half-width{width:50%;padding:0 4px}.modalmoreFilters{width:100%;min-width:100%;height:100vh;min-height:100vh;top:0;left:0;display:flex;flex-direction:column;background:rgba(0,0,0,.8)!important;margin:0;border-radius:0}.modalmoreFilters .scroll-container{max-height:390px;overflow-y:scroll}.modalmoreFilters .maxModal{max-width:360px;margin:10% auto auto;background:white;border-radius:8px}.modalmoreFilters .backDropModal{background:white;width:360px;min-height:40vh}.modalmoreFilters .backDropModalFooter{background:white;width:360px;margin:auto;border-radius:0 0 8px 8px}.modalmoreFilters .headerMoreFilters{position:relative;text-align:center;color:#333;background:white;padding:1rem;font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:700;font-size:1.125em;align-items:center;justify-content:center;border-bottom:solid 1px #e9e9e9;border-radius:8px 8px 0 0}.modalmoreFilters .headerMoreFilters .iconClose{cursor:pointer;position:absolute;right:14px;top:7px}a{border:1px solid transparent;padding:8px 8px 6px;color:#da3635;outline:none;font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:700;font-size:1em;line-height:18px;text-decoration:underline}a:hover{color:#b85959}a:focus{color:#da3635;border-color:#da3635;border-radius:4px}a:active{border:none;color:#c9ecf3}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.DefaultLayoutDirective, selector: "  [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md],  [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md],  [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm],  [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i4.DefaultLayoutAlignDirective, selector: "  [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md],  [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md],  [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm],  [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "component", type: i5.SvgIconComponent, selector: "app-svg-icon", inputs: ["icon", "iconClass", "type", "iconColor", "title"] }, { kind: "component", type: i5.ButtonComponent, selector: "app-button", inputs: ["style", "text", "type", "iconType", "iconBtn", "iconPos", "extraClass", "disabled", "active"], outputs: ["action"] }, { kind: "directive", type: i5.ModalOutsideDirective, selector: "[clickOutside]", outputs: ["clickOutside"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ModalFilterComponent, decorators: [{
            type: Component,
            args: [{ selector: 'app-modal-filter', template: "<div *ngIf=\"modalType\" fxLayout=\"column\" fxLayoutAlign=\"center center\" [ngClass]=\"['modal', 'modal' + getModalType()]\">\n  <div class=\"body-wrap\" fxLayout=\"column\" fxLayoutAlign=\"space-between\">\n    <div class=\"titleFilter\" fxLayout=\"row\" fxLayoutAlign=\"space-between\">\n      <span>Filtres</span>\n      <div (click)=\"closeModal()\" class=\"ico-close-details\"></div>\n    </div>\n    <!-- Filter with single category -->\n    <div class=\"contentModal\" fxLayout=\"row wrap\" fxLayoutAlign=\"flex-start\" *ngIf=\"categories.length === 1\">\n      <div class=\"blockFiltre\" *ngFor=\"let c of categories\">\n        <ul class=\"blockLigne\">\n          <div fxLayout=\"row\" fxLayoutAlign=\"start center\" class=\"ligneFiltre\" *ngFor=\"let module of c.modules\">\n            <li class=\"checkbox\">\n              <div class=\"checkboxItem\">\n                <label fxLayout=\"row\" fxLayoutAlign=\"start center\">\n                  <input\n                    type=\"checkbox\"\n                    [checked]=\"searchService.getIndex(checkedModules, module.id, c.id) > -1\"\n                    [value]=\"module.id\"\n                    (change)=\"onCheckboxChange($event, c.id, module.text)\" />\n                  <span class=\"customCheck customCheckPrimary\"></span>\n                  <div class=\"label\">{{ module.text }}</div>\n                </label>\n              </div>\n            </li>\n          </div>\n        </ul>\n      </div>\n    </div>\n    <!-- \"Other filters\" backdrop fullwidth modal -->\n    <div\n      class=\"contentModal maxModal\"\n      fxLayout=\"row wrap\"\n      fxLayoutAlign=\"flex-start\"\n      *ngIf=\"categories.length > 1 && getModalType() === 'moreFilters'\">\n      <div\n        class=\"blockLigne\"\n        (clickOutside)=\"getModalType() === 'moreFilters' ? closeModal() : ''\"\n        [ngClass]=\"{ backDropModal: getModalType() === 'moreFilters' }\">\n        <div class=\"headerMoreFilters\" *ngIf=\"getModalType() === 'moreFilters'\">\n          Plus de filtres\n          <div class=\"iconClose\" (click)=\"closeModal()\">\n            <app-svg-icon [iconClass]=\"'icon-28'\" [iconColor]=\"'grey-1'\" [icon]=\"'closeModal'\" [type]=\"'ico'\"></app-svg-icon>\n          </div>\n        </div>\n        <div class=\"scroll-container\">\n          <div class=\"blockFiltre\" *ngFor=\"let c of categories\">\n            <p>{{ c.name }}</p>\n            <ul class=\"blockLigne smallList\" [ngClass]=\"{ show: this.toggledCategories.includes(c.id) }\">\n              <div fxLayout=\"row\" fxLayoutAlign=\"start center\" class=\"ligneFiltre\" *ngFor=\"let module of c.modules\">\n                <li class=\"checkbox\">\n                  <div class=\"checkboxItem\">\n                    <label fxLayout=\"row\" fxLayoutAlign=\"start center\">\n                      <input\n                        type=\"checkbox\"\n                        [checked]=\"searchService.getIndex(checkedModules, module.id, c.id) > -1\"\n                        [value]=\"module.id\"\n                        (change)=\"onCheckboxChange($event, c.id, module.displayText)\" />\n                      <span class=\"customCheck customCheckPrimary\"></span>\n                      <div class=\"label\">{{ module.text }}</div>\n                    </label>\n                  </div>\n                </li>\n              </div>\n            </ul>\n          </div>\n        </div>\n        <div\n          class=\"footer\"\n          fxLayout=\"row\"\n          fxLayoutAlign=\"center center\"\n          [ngClass]=\"{ backDropModalFooter: getModalType() === 'moreFilters' }\">\n          <div class=\"half-width\">\n            <app-button\n              [style]=\"buttonTypeEnum.modalSecondary\"\n              [text]=\"'Effacer'\"\n              (click)=\"clearFilters()\"\n              tabindex=\"0\"></app-button>\n          </div>\n          <div class=\"half-width\">\n            <app-button\n              [style]=\"buttonTypeEnum.modalPrimary\"\n              [text]=\"'Appliquer'\"\n              (click)=\"emitModules(checkedModules)\"></app-button>\n          </div>\n        </div>\n      </div>\n    </div>\n    <!-- Filter with multiple categories -->\n    <div\n      class=\"contentModal maxModal max-height\"\n      fxLayout=\"row wrap\"\n      fxLayoutAlign=\"flex-start\"\n      *ngIf=\"categories.length > 1 && getModalType() !== 'moreFilters'\">\n      <ul class=\"blockLigne\">\n        <div class=\"blockFiltre\" *ngFor=\"let c of categories\">\n          <li class=\"checkbox\">\n            <div class=\"checkboxItem categoryCheckBox\">\n              <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\n                <label>\n                  <input\n                    type=\"checkbox\"\n                    class=\"multiCheck\"\n                    [checked]=\"getCategoryCheckboxStatus(c) === 'checked'\"\n                    (change)=\"handleCategoryCheckBox($event, c)\" />\n                  <span\n                    class=\"customCheck customCheckPrimary\"\n                    [ngClass]=\"{ halfCheck: getCategoryCheckboxStatus(c) === 'halfChecked' }\"></span>\n                </label>\n                <div\n                  fxLayout=\"row\"\n                  fxLayoutAlign=\"space-between center\"\n                  class=\"w-100 clickable\"\n                  (click)=\"toggleShowCategory(c.id)\">\n                  <div class=\"label\">{{ c.name }}</div>\n                  <div class=\"arrow\" [ngClass]=\"{ toggled: this.toggledCategories.includes(c.id) }\"></div>\n                </div>\n              </div>\n              <ul class=\"blockLigne smallList\" [ngClass]=\"{ show: this.toggledCategories.includes(c.id) }\">\n                <div fxLayout=\"row\" fxLayoutAlign=\"start center\" class=\"ligneFiltre\" *ngFor=\"let module of c.modules\">\n                  <li class=\"checkbox\">\n                    <div class=\"checkboxItem\">\n                      <label fxLayout=\"row\" fxLayoutAlign=\"start center\">\n                        <input\n                          type=\"checkbox\"\n                          [checked]=\"searchService.getIndex(checkedModules, module.id, c.id) > -1\"\n                          [value]=\"module.id\"\n                          (change)=\"onCheckboxChange($event, c.id, module.text)\" />\n                        <span class=\"customCheck customCheckPrimary\"></span>\n                        <div class=\"label\">{{ module.text }}</div>\n                      </label>\n                    </div>\n                  </li>\n                </div>\n              </ul>\n            </div>\n          </li>\n        </div>\n      </ul>\n    </div>\n    <div\n      class=\"footer\"\n      fxLayout=\"row\"\n      fxLayoutAlign=\"center center\"\n      [ngClass]=\"{ backDropModalFooter: getModalType() === 'moreFilters' }\"\n      *ngIf=\"getModalType() !== 'moreFilters'\">\n      <div class=\"half-width\">\n        <app-button\n          [style]=\"buttonTypeEnum.modalSecondary\"\n          [text]=\"'Effacer'\"\n          (click)=\"clearFilters()\"\n          tabindex=\"0\"></app-button>\n      </div>\n      <div class=\"half-width\">\n        <app-button\n          [style]=\"buttonTypeEnum.modalPrimary\"\n          [text]=\"'Appliquer'\"\n          (click)=\"emitModules(checkedModules)\"></app-button>\n      </div>\n    </div>\n  </div>\n</div>\n", styles: [".ico-mglass{position:relative;display:inline-block;background:transparent;border-radius:30px;border:2px solid #333333;height:12px;width:12px;min-width:12px;max-width:12px}.ico-mglass:after{content:\"\";height:2px;width:8px;background:#333333;position:absolute;top:14px;left:10px;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg)}.ico-pin{width:20px;height:20px;max-width:20px;max-height:20px;border-radius:50% 50% 50% 0;background:transparent;transform:rotate(-45deg);left:50%;top:50%;margin:-4px 0 0}.ico-pin.after{content:\"\";width:14px;height:14px;margin:8px 0 0 8px;background:transparent;border-radius:50%}.ico-pin-search{width:18px;height:18px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background-color:#696969}.ico-pin-search:before{content:\"\";position:absolute;left:5px;top:6px;width:7px;height:7px;border-radius:4px;background-color:#fff}.ico-dot-available{height:12px;width:12px;background-color:#41c29c;border-radius:50%;margin-right:8px}.ico-dot-unavailable{height:12px;width:12px;background-color:#da3635;border-radius:50%;margin-right:8px}.ico-dot-unknown{height:12px;width:12px;background-color:#bdbdbd;border-radius:50%;margin-right:8px}.ico-marker-pin{width:30px;height:30px;border-radius:50% 50% 50% 0;background:#da3635;position:absolute;transform:rotate(-45deg);left:50%;top:50%;margin:-15px 0 0 -15px}.ico-marker-pin.selected{background:#da3635}.ico-marker-pin:after{content:\"\";width:10px;height:10px;margin:10px 0 0 10px;background:#fff;position:absolute;border-radius:50%}.ico-marker-pin-sm{width:18px;height:18px;border-radius:50% 50% 50% 0;background:#696969;transform:rotate(-45deg);margin:0 4px}.ico-marker-pin-sm.absolute{position:absolute;margin:0}.ico-marker-pin-sm:after{content:\"\";width:7px;height:7px;margin:6px 0 0 5px;background:#f8f8f8;position:absolute;border-radius:50%}.ico-profile .head{width:12px;height:12px;border-radius:25px;border:2px solid #333333}.ico-profile .body{width:28px;height:10px;border-radius:20px 20px 0 0;border-top:2px solid #333333;border-right:2px solid #333333;border-left:2px solid #333333}.ico-close .mdiv{height:10px;width:2px;margin-left:5px;background-color:#696969;transform:rotate(45deg);z-index:1}.ico-close .md{height:10px;width:2px;background-color:#696969;transform:rotate(90deg);z-index:2}.ico-close-search{width:16px;height:16px;display:inline-block;vertical-align:middle}.ico-close-search:before{transform:rotate(45deg)}.ico-close-search:after{transform:rotate(-45deg)}.ico-close-search:before,.ico-close-search:after{position:absolute;content:\"\";height:16px;width:2px;background-color:#bdbdbd}.ic-arrow-left{box-sizing:border-box;position:relative;display:block;transform:scale(var(--ggs, 1));width:22px;height:22px}.ic-arrow-left:after,.ic-arrow-left:before{content:\"\";display:block;box-sizing:border-box;position:absolute;left:3px}.ic-arrow-left:after{width:8px;height:8px;border-bottom:2px solid;border-left:2px solid;transform:rotate(45deg);bottom:7px}.ic-arrow-left:before{width:16px;height:2px;bottom:10px;background:currentColor}.ic-print{width:.68em;height:1em;border-style:solid;border-color:currentcolor;background-color:transparent;border-width:.07em;border-radius:.05em;margin:0 .16em}.ic-print:before{width:1em;height:.4em;border-width:.07em .21em 0;border-style:solid;border-color:currentColor currentcolor transparent;border-radius:.05em .05em 0 0;top:.25em;left:50%;transform:translate(-50%);background-image:linear-gradient(transparent 20%,currentcolor 20%,currentcolor 60%,transparent 60%)}.ic-print:after{width:.45em;height:.065em;background-color:currentColor;left:50%;transform:translate(-50%);top:.6em;box-shadow:0 .12em,-.1em -.28em 0 .05em}.ic-mail,.ic-mail:after{display:block;box-sizing:border-box;height:14px;border:2px solid}.ic-mail{color:#4f4f4f;overflow:hidden;transform:scale(var(--ggs, 1));position:absolute;width:18px;border-radius:2px}.ic-mail:after{content:\"\";position:absolute;border-radius:3px;width:14px;transform:rotate(-45deg);bottom:3px;left:0}.ic-phone{color:#4f4f4f;box-sizing:border-box;position:absolute;display:block;width:22px;height:22px;transform:scale(var(--ggs, 1))}.ic-phone:after,.ic-phone:before{content:\"\";display:block;box-sizing:border-box;position:absolute}.ic-phone:after{width:18px;height:18px;border-top-left-radius:1px;border-bottom-right-radius:1px;border-bottom-left-radius:12px;border-left:4px solid;border-bottom:4px solid;left:2px;bottom:2px;background:linear-gradient(to left,currentColor 10px,transparent 0) no-repeat right 11px/6px 4px,linear-gradient(to left,currentColor 10px,transparent 0) no-repeat -1px 0/4px 6px}.ic-phone:before{width:20px;height:20px;border:6px double;border-top-color:transparent;border-bottom-color:transparent;border-left-color:transparent;border-radius:50%;transform:rotate(-45deg);bottom:2px;left:2px}.ic-mouse{box-sizing:border-box;position:relative;display:block;transform:scale(var(--ggs, 1));width:16px;height:24px;border:2px solid;border-radius:10px}.ic-mouse:after{content:\"\";display:block;box-sizing:border-box;position:absolute;border-radius:3px;width:2px;height:6px;background:currentColor;top:3px;left:5px}.ic-wifi{color:#000;position:absolute;margin-left:7px;margin-top:13px;width:6px;height:6px;border-radius:50%;border-top:solid 1px currentColor;border-right:solid 1px transparent;border-bottom:solid 1px transparent;border-left:solid 1px transparent}.ic-wifi:before{content:\"\";position:absolute;left:-5px;top:-5px;width:14px;height:14px;border-radius:50%;border-top:solid 1px currentColor;border-right:solid 1px transparent;border-bottom:solid 1px transparent;border-left:solid 1px transparent}.ic-wifi:after{content:\"\";position:absolute;left:-9px;top:-9px;width:22px;height:22px;border-radius:50%;border-top:solid 1px currentColor;border-right:solid 1px transparent;border-bottom:solid 1px transparent;border-left:solid 1px transparent}.ic-screen{box-sizing:border-box;position:absolute;display:block;transform:scale(var(--ggs, 1));width:22px;height:14px;border:2px solid;border-radius:3px;margin-top:-4px}.ic-screen:after,.ic-screen:before{content:\"\";display:block;box-sizing:border-box;position:absolute;border-radius:3px;width:10px;height:2px;background:currentColor;top:14px;left:4px}.ic-screen:before{width:2px;height:6px;top:10px;left:8px}.ic-globe-alt,.ic-globe-alt:after,.ic-globe-alt:before{color:#4f4f4f;display:block;box-sizing:border-box;height:18px;border:2px solid}.ic-globe-alt{position:absolute;transform:scale(var(--ggs, 1));width:18px;border-radius:22px}.ic-globe-alt:after,.ic-globe-alt:before{content:\"\";position:absolute;width:8px;border-radius:100%;top:-2px;left:3px}.ic-globe-alt:after{width:24px;height:20px;border:2px solid transparent;border-bottom:2px solid;top:-11px;left:-5px}.ic-camera{box-sizing:border-box;position:absolute;display:block;transform:scale(var(--ggs, 1));border:2px solid;border-radius:3px;width:18px;height:12px;perspective:24px}.ic-camera:after,.ic-camera:before{content:\"\";display:block;box-sizing:border-box;position:absolute}.ic-camera:before{border:2px solid;border-left-color:transparent;transform:rotateY(-70deg);width:8px;height:8px;right:-7px;top:0}.ic-camera:after{width:10px;height:5px;border-top:2px solid;border-right:2px solid;top:-5px;right:2px;border-top-right-radius:2px}.ic-calendar-today{box-sizing:border-box;position:absolute;display:block;transform:scale(var(--ggs, 1));width:18px;height:18px;border:2px solid;border-top:4px solid;border-radius:3px}.ic-calendar-today:before{content:\"\";display:block;box-sizing:border-box;position:absolute;background:currentColor;height:4px;width:4px;border-radius:2px;right:2px;bottom:2px}.ic-user{display:block;position:absolute;transform:scale(var(--ggs, 1));box-sizing:border-box;width:12px;height:18px}.ic-user:after,.ic-user:before{content:\"\";display:block;box-sizing:border-box;position:absolute;border:2px solid}.ic-user:before{width:8px;height:8px;border-radius:30px;top:0;left:2px}.ic-user:after{width:12px;height:9px;border-bottom:0;border-top-left-radius:3px;border-top-right-radius:3px;top:9px}.ico-close-details{width:44px;height:44px;border-radius:44px;display:flex;justify-content:center;align-items:center;opacity:.8;cursor:pointer}.ico-close-details:before,.ico-close-details:after{content:\"\";width:24px;height:2px;background-color:#333;position:absolute;border-radius:1px}.ico-close-details:hover{background-color:#f4f4f4}.ico-close-details:before{transform:rotate(45deg)}.ico-close-details:after{transform:rotate(-45deg)}.ico-menu,.ico-menu:before,.ico-menu:after{cursor:pointer;border-radius:1px;height:2px;width:23px;background:#000000;position:absolute;display:block;content:\"\"}.ico-menu:before{top:-6px}.ico-menu:after{bottom:-6px}.ico-gg-eye-alt{position:relative;display:block;transform:scale(var(--ggs, 1));width:24px;height:18px;border-bottom-right-radius:100px;border-bottom-left-radius:100px;overflow:hidden;box-sizing:border-box}.ico-gg-eye-alt:after,.ico-gg-eye-alt:before{content:\"\";display:block;border-radius:100px;position:absolute;box-sizing:border-box}.ico-gg-eye-alt:after{top:2px;box-shadow:inset 0 -8px 0 2px #696969,inset 0 0 0 2px #696969;width:24px;height:24px}.ico-gg-eye-alt:before{width:8px;height:8px;border:2px solid #696969;bottom:4px;left:8px;background-color:#696969}.ico-gg-add{box-sizing:border-box;position:relative;display:block;color:#47c562;width:32px;height:32px}.ico-gg-add:after,.ico-gg-add:before{content:\"\";display:block;box-sizing:border-box;position:absolute;width:14px;height:2px;background:currentColor;border-radius:5px;top:8px;left:0px}.ico-gg-add:after{width:2px;height:14px;top:2px;left:6px}.gg-eye-alt{position:relative;display:block;width:18px;height:12px;border-bottom-right-radius:100px;border-bottom-left-radius:100px;overflow:hidden;box-sizing:border-box}.gg-eye-alt:after,.gg-eye-alt:before{content:\"\";display:block;border-radius:100px;position:absolute;box-sizing:border-box}.gg-eye-alt:after{top:2px;box-shadow:inset 0 -8px 0 2px,inset 0 0 0 2px;width:18px;height:18px}.gg-eye-alt:before{width:2px;height:2px;border:2px solid black;bottom:3px;left:7px;background-color:#000}.ico-gg-check{box-sizing:border-box;position:relative;display:block;transform:scale(var(--ggs, 1));width:22px;height:22px;border:1px solid transparent;border-radius:100px;color:#fff}.ico-gg-check:after{content:\"\";display:block;box-sizing:border-box;position:absolute;left:5px;top:-3px;width:7px;height:12px;border-width:0 2px 2px 0;border-style:solid;transform-origin:bottom left;transform:rotate(45deg);color:#fff}html,body,p,span,label,h1,h2,h3,h4,h5,h6,.card-header-text,.welcome-message,.user-name,.profile-user-name,.project-name,.annuaire-label,.event_title,.objective_title{font-family:Lato,Helvetica,sans-serif}.modalaccompaniment{left:212px}@media only screen and (min-width : 1201px){.modalaccompaniment{left:273px}}.modaltraining{left:331px}@media only screen and (min-width : 1201px){.modaltraining{left:417px}}.modalpublic{left:431px}@media only screen and (min-width : 1201px){.modalpublic{left:513px}}.modalequipments{left:519px}@media only screen and (min-width : 1201px){.modalequipments{left:603px}}.maxModal .blockLigne{box-sizing:border-box;width:360px}.maxModal .blockLigne .smallList{display:block;box-sizing:border-box;background:#f8f8f8;max-width:300px;padding:.5rem!important;margin-top:1rem!important}.modal{max-width:360px;width:auto;z-index:1004!important;position:fixed;box-shadow:0 4px 16px #00000040;border-radius:8px;margin-top:25px;background:white}@media only screen and (max-width : 600px){.modal{height:100%;max-height:auto;max-width:auto;width:100%;position:fixed;top:0;left:0;border:none;padding:0}}@media only screen and (max-width : 600px){.modal .body-wrap{height:100vh;height:-webkit-fill-available}}.modal .body-wrap .titleFilter{display:none!important;margin:27px 25px 0;font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:700;font-size:1.625em}@media only screen and (max-width : 600px){.modal .body-wrap .titleFilter{display:flex!important}}.modal .contentModal{overflow-y:auto;max-width:1100px;border-bottom:1px solid #b4bbbf}@media only screen and (max-width : 600px){.modal .contentModal{max-height:none;height:100%}}.modal .contentModal .blockFiltre{width:auto;margin:25px 20px;margin-bottom:calc(25px - 1rem);min-width:200px}@media only screen and (max-width : 600px){.modal .contentModal .blockFiltre{margin:0 18px;padding:25px 0;min-width:0}}.modal .contentModal .blockFiltre .categoryCheckBox .halfCheck{position:relative}.modal .contentModal .blockFiltre .categoryCheckBox .halfCheck:before{content:\"\";position:absolute;display:block;width:10px;left:4px;top:8px;transform:rotate(0);border-bottom:solid 2px #4f4f4f;border-radius:0}.modal .contentModal .blockFiltre .categoryCheckBox ul{display:none}.modal .contentModal .blockFiltre .categoryCheckBox .show{display:block!important}.modal .contentModal .blockLigne{padding-left:0;margin:0}.modal .contentModal .blockLigne li{margin-bottom:1rem}.modal .contentModal label{font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:400;font-size:1em;color:#333}.modal .contentModal .arrow{cursor:pointer;margin-left:auto;background-color:transparent;border-bottom:1px solid black;border-right:1px solid black;transform:translateY(-25%) rotate(45deg);height:7px;width:7px;transition:all .3s ease;margin-top:-5px}.modal .contentModal .toggled{transform:translateY(25%) rotate(-135deg)}.modal .contentModal.max-height{max-height:50vh;overflow-y:overlay}.modal .footer{box-sizing:border-box;padding:.5rem}.modal .footer .reset{width:45%;text-align:center;color:#bdbdbd}.modal .footer .half-width{width:50%;padding:0 4px}.modalmoreFilters{width:100%;min-width:100%;height:100vh;min-height:100vh;top:0;left:0;display:flex;flex-direction:column;background:rgba(0,0,0,.8)!important;margin:0;border-radius:0}.modalmoreFilters .scroll-container{max-height:390px;overflow-y:scroll}.modalmoreFilters .maxModal{max-width:360px;margin:10% auto auto;background:white;border-radius:8px}.modalmoreFilters .backDropModal{background:white;width:360px;min-height:40vh}.modalmoreFilters .backDropModalFooter{background:white;width:360px;margin:auto;border-radius:0 0 8px 8px}.modalmoreFilters .headerMoreFilters{position:relative;text-align:center;color:#333;background:white;padding:1rem;font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:700;font-size:1.125em;align-items:center;justify-content:center;border-bottom:solid 1px #e9e9e9;border-radius:8px 8px 0 0}.modalmoreFilters .headerMoreFilters .iconClose{cursor:pointer;position:absolute;right:14px;top:7px}a{border:1px solid transparent;padding:8px 8px 6px;color:#da3635;outline:none;font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:700;font-size:1em;line-height:18px;text-decoration:underline}a:hover{color:#b85959}a:focus{color:#da3635;border-color:#da3635;border-radius:4px}a:active{border:none;color:#c9ecf3}\n"] }]
        }], ctorParameters: function () {
        return [{ type: undefined, decorators: [{
                        type: Inject,
                        args: [SEARCH_TOKEN]
                    }] }];
    }, propDecorators: { modalType: [{
                type: Input
            }], categories: [{
                type: Input
            }], modules: [{
                type: Input
            }], searchEvent: [{
                type: Output
            }], closeEvent: [{
                type: Output
            }] } });

class StructureListSearchComponent {
    constructor(searchService, fb, activatedRoute, route, router) {
        this.searchService = searchService;
        this.fb = fb;
        this.activatedRoute = activatedRoute;
        this.route = route;
        this.router = router;
        this.searchEvent = new EventEmitter();
        this.locate = false;
        // Show/hide form createStructure
        this.addStructureFormModal = false;
        this.buttonTypeEnum = ButtonType;
        this.numberTrainingChecked = 0;
        this.numberAccompanimentChecked = 0;
        this.numberPublicChecked = 0;
        this.numberEquipmentChecked = 0;
        this.numberMoreFiltersChecked = 0;
        // Modal categories
        this.categoriesTraining = [];
        this.categoriesAccompaniment = [];
        this.categoriesPublic = [];
        this.categoriesEquipment = [];
        this.categoriesMoreFilters = [];
        // Modal confirmation variable
        this.isConfirmationModalOpen = false;
        this.confirmationModalContent = 'Afin d’ajouter votre structure,vous allez être redirigé vers le formulaire Grand Lyon à remplir.';
        this.searchForm = this.fb.group({
            searchTerm: this.activatedRoute.snapshot.queryParamMap.get('search')
                ? this.activatedRoute.snapshot.queryParamMap.get('search')
                : ''
        });
    }
    ngOnInit() {
        // Will store the different categories
        this.getData();
        this.queryString = this.activatedRoute.snapshot.queryParamMap.get('search');
        this.checkedModulesFilter = new Array();
        if (this.queryString) {
            const filters = [];
            filters.push(new Filter('query', this.queryString));
            this.searchEvent.emit(filters);
        }
    }
    convertModulesTofilters(modules, term) {
        const filters = [];
        if (term) {
            filters.push(new Filter('query', term));
        }
        // Add checked box filter
        modules.forEach((cm) => {
            filters.push(new Filter(cm.text, cm.id, cm.displayText));
        });
        return filters;
    }
    // Accessor to template angular.
    get TypeModal() {
        return TypeModal;
    }
    // Clear input search
    clearInput() {
        this.searchForm.reset();
        this.applyFilter(null);
    }
    // Sends an array containing all filters
    applyFilter(term) {
        // Add search input filter
        if (term) {
            this.router.navigate(['/acteurs'], {
                relativeTo: this.route,
                queryParams: {
                    search: term
                },
                queryParamsHandling: 'merge'
            });
        }
        else if (!term) {
            this.router.navigate(['/acteurs'], {
                relativeTo: this.route
            });
        }
        const filters = this.convertModulesTofilters(this.checkedModulesFilter, term);
        // Send filters
        this.searchEvent.emit(filters);
    }
    fetchResults(checkedModules) {
        const inputTerm = this.searchForm.get('searchTerm').value;
        // Check if some modules is checked in filters
        if (this.checkedModulesFilter !== checkedModules) {
            this.countCheckFiltersOnModules(checkedModules);
        }
        // Store checked modules
        this.checkedModulesFilter = checkedModules;
        // Close modal after receive filters from her.
        this.closeModal();
        this.applyFilter(inputTerm);
    }
    // Check if some modules is checked on filter and store number of modules checked
    countCheckFiltersOnModules(checkedModules) {
        this.numberAccompanimentChecked = checkedModules.filter((module) => module.text === 'proceduresAccompaniment').length;
        this.numberTrainingChecked = checkedModules.filter((module) => module.text === 'baseSkills' ||
            module.text === 'socialAndProfessional' ||
            module.text === 'parentingHelp' ||
            module.text === 'accessRight' ||
            module.text === 'digitalCultureSecurity').length;
        this.numberPublicChecked = checkedModules.filter((module) => module.text === 'publicsAccompaniment').length;
        this.numberEquipmentChecked = checkedModules.filter((module) => module.text === 'equipmentsAndServices').length;
        this.numberMoreFiltersChecked = checkedModules.filter((module) => module.text === 'labelsQualifications' || module.text === 'accessModality').length;
    }
    getModalCategory() {
        switch (this.modalTypeOpened) {
            case TypeModal.accompaniment:
                return this.categoriesAccompaniment;
            case TypeModal.training:
                return this.categoriesTraining;
            case TypeModal.public:
                return this.categoriesPublic;
            case TypeModal.equipments:
                return this.categoriesEquipment;
            case TypeModal.moreFilters:
                return this.categoriesMoreFilters;
            default:
                throw new Error('Modal type not handle');
        }
    }
    // Open the modal and display the list according to the right filter button
    openModal(modalType) {
        // if modal already opened, reset type
        if (this.modalTypeOpened === modalType) {
            this.closeModal();
        }
        else if (this.modalTypeOpened !== modalType) {
            this.modalTypeOpened = modalType;
        }
    }
    closeModal() {
        this.modalTypeOpened = undefined;
    }
    // Management of the checkbox event (Check / Uncheck)
    externalCheckboxCheck(event, categ, displayName) {
        const checkValue = event.target.value;
        const inputTerm = this.searchForm.get('searchTerm').value;
        if (event.target.checked) {
            this.checkedModulesFilter.push(new Module(checkValue, categ, displayName));
            this.numberMoreFiltersChecked++;
        }
        else {
            // Check if the module is present in the list and remove it
            const index = this.checkedModulesFilter.findIndex((m) => m.id === checkValue && m.text === categ);
            if (index > -1) {
                this.checkedModulesFilter.splice(index, 1);
                this.countCheckFiltersOnModules(this.checkedModulesFilter);
            }
        }
        this.applyFilter(inputTerm);
    }
    // Get the categories for each modal type
    getData() {
        this.searchService.getCategoriesAccompaniment().subscribe((res) => {
            const categories = res;
            categories.forEach((category) => {
                this.categoriesAccompaniment.push(category);
            });
        });
        this.searchService.getCategoriesTraining().subscribe((res) => {
            const categories = res;
            categories.forEach((category) => {
                this.categoriesTraining.push(category);
            });
        });
        this.searchService.getCategoriesOthers().subscribe((res) => {
            const categories = res;
            categories.forEach((category) => {
                if (category.id === 'publicsAccompaniment') {
                    this.categoriesPublic.push(category);
                }
                else if (category.id === 'equipmentsAndServices') {
                    this.categoriesEquipment.push(category);
                }
                else if (category.id === 'labelsQualifications' || category.id === 'accessModality') {
                    this.categoriesMoreFilters.push(category);
                }
            });
        });
    }
    resetFilters() {
        this.checkedModulesFilter = [];
        this.numberTrainingChecked = 0;
        this.numberAccompanimentChecked = 0;
        this.numberPublicChecked = 0;
        this.numberEquipmentChecked = 0;
        this.numberMoreFiltersChecked = 0;
        const inputTerm = this.searchForm.get('searchTerm').value;
        const filters = this.convertModulesTofilters(this.checkedModulesFilter, inputTerm);
        this.searchEvent.emit(filters);
    }
    removeFilter(module) {
        const index = this.checkedModulesFilter.findIndex((m) => m.id === module.id);
        this.checkedModulesFilter.splice(index, 1);
        const inputTerm = this.searchForm.get('searchTerm').value;
        const filters = this.convertModulesTofilters(this.checkedModulesFilter, inputTerm);
        this.countCheckFiltersOnModules(this.checkedModulesFilter);
        this.searchEvent.emit(filters);
    }
}
StructureListSearchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: StructureListSearchComponent, deps: [{ token: SEARCH_TOKEN }, { token: i1$1.FormBuilder }, { token: i1.ActivatedRoute }, { token: i1.ActivatedRoute }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
StructureListSearchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: StructureListSearchComponent, selector: "app-structure-list-search", outputs: { searchEvent: "searchEvent" }, ngImport: i0, template: "<div class=\"block\">\n  <div class=\"content\">\n    <form\n      class=\"inputSearch\"\n      [formGroup]=\"searchForm\"\n      fxLayout=\"row\"\n      fxLayoutGap=\"4px\"\n      fxLayoutAlign=\" center\"\n      (ngSubmit)=\"applyFilter(searchForm.value.searchTerm)\">\n      <div fxLayout=\"row\" fxLayoutAlign=\"space-between center\" class=\"container\">\n        <input type=\"text\" formControlName=\"searchTerm\" placeholder=\"Rechercher une association, une commune...\" />\n        <button\n          *ngIf=\"this.searchForm.get('searchTerm').value?.length > 0\"\n          (click)=\"clearInput()\"\n          class=\"icon close\"\n          type=\"button\">\n          <div class=\"ico-close-search\"></div>\n        </button>\n        <span *ngIf=\"this.searchForm.get('searchTerm').value?.length > 0\" class=\"separation\"></span>\n        <app-button [style]=\"buttonTypeEnum.searchIcon\" [iconBtn]=\"'search'\" [type]=\"'submit'\"></app-button>\n      </div>\n    </form>\n    <div (clickOutside)=\"closeModal()\" class=\"btn-container\">\n      <div class=\"btnSection\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\" fxLayoutGap=\"4px\">\n        <button\n          class=\"btn-filter isntPhoneContent\"\n          type=\"button\"\n          fxLayout=\"row\"\n          [ngClass]=\"{\n            selected: modalTypeOpened === TypeModal.accompaniment,\n            containCheckedFilters: numberAccompanimentChecked\n          }\"\n          fxLayoutAlign=\"space-between center\"\n          (click)=\"openModal(TypeModal.accompaniment)\">\n          <span>Aide num\u00E9rique</span>\n          <div class=\"arrow\"></div>\n        </button>\n        <button\n          class=\"btn-filter isntPhoneContent\"\n          type=\"button\"\n          fxLayout=\"row\"\n          [ngClass]=\"{\n            selected: modalTypeOpened === TypeModal.training,\n            containCheckedFilters: numberTrainingChecked\n          }\"\n          fxLayoutAlign=\"space-between center\"\n          (click)=\"openModal(TypeModal.training)\">\n          <span>Ateliers</span>\n          <div class=\"arrow\"></div>\n        </button>\n        <button\n          class=\"btn-filter isntPhoneContent\"\n          type=\"button\"\n          fxLayout=\"row\"\n          [ngClass]=\"{\n            selected: modalTypeOpened === TypeModal.public,\n            containCheckedFilters: numberPublicChecked\n          }\"\n          fxLayoutAlign=\"space-between center\"\n          (click)=\"openModal(TypeModal.public)\">\n          <span>Public</span>\n          <div class=\"arrow\"></div>\n        </button>\n        <button\n          class=\"btn-filter isntPhoneContent\"\n          type=\"button\"\n          fxLayout=\"row\"\n          [ngClass]=\"{\n            selected: modalTypeOpened === TypeModal.equipments,\n            containCheckedFilters: numberEquipmentChecked\n          }\"\n          fxLayoutAlign=\"space-between center\"\n          (click)=\"openModal(TypeModal.equipments)\">\n          <span>Mat\u00E9riel et wifi</span>\n          <div class=\"arrow\"></div>\n        </button>\n        <div\n          class=\"checkboxButton\"\n          [ngClass]=\"{\n            checked: searchService.getIndex(checkedModulesFilter, 'passNumerique', 'labelsQualifications') > -1\n          }\">\n          <label fxLayout=\"row\" fxLayoutAlign=\"center center\">\n            <input\n              type=\"checkbox\"\n              value=\"passNumerique\"\n              [checked]=\"searchService.getIndex(checkedModulesFilter, 'passNumerique', 'labelsQualifications') > -1\"\n              (change)=\"externalCheckboxCheck($event, 'labelsQualifications', 'Pass num\u00E9rique')\" />\n            <div class=\"label pass\">Pass num\u00E9rique</div>\n          </label>\n        </div>\n        <div\n          class=\"checkboxButton\"\n          [ngClass]=\"{\n            checked: searchService.getIndex(checkedModulesFilter, 'conseillerNumFranceServices', 'labelsQualifications') > -1\n          }\">\n          <label fxLayout=\"row\" fxLayoutAlign=\"center center\">\n            <input\n              type=\"checkbox\"\n              value=\"conseillerNumFranceServices\"\n              [checked]=\"\n                searchService.getIndex(checkedModulesFilter, 'conseillerNumFranceServices', 'labelsQualifications') > -1\n              \"\n              (change)=\"externalCheckboxCheck($event, 'labelsQualifications', 'Conseillers num\u00E9riques')\" />\n            <div class=\"label pass\">Conseillers num\u00E9riques</div>\n          </label>\n        </div>\n        <div\n          class=\"checkboxButton isntPhoneContent\"\n          [ngClass]=\"{\n            checked: searchService.getIndex(checkedModulesFilter, 'accesLibre', 'accessModality') > -1\n          }\">\n          <label fxLayout=\"row\" fxLayoutAlign=\"center center\">\n            <input\n              type=\"checkbox\"\n              value=\"accesLibre\"\n              [checked]=\"searchService.getIndex(checkedModulesFilter, 'accesLibre', 'accessModality') > -1\"\n              (change)=\"externalCheckboxCheck($event, 'accessModality', 'Acc\u00E8s libre')\" />\n            <div class=\"label pass\">Acc\u00E8s libre</div>\n          </label>\n        </div>\n        <app-button\n          class=\"isntPhoneContent last-button\"\n          [style]=\"buttonTypeEnum.Tertiary\"\n          [text]=\"'Plus de filtres'\"\n          fxLayout=\"row\"\n          fxLayoutAlign=\"space-between center\"\n          (action)=\"openModal(TypeModal.moreFilters)\"></app-button>\n        <div *ngIf=\"modalTypeOpened\">\n          <app-modal-filter\n            [modalType]=\"modalTypeOpened\"\n            [categories]=\"getModalCategory()\"\n            [modules]=\"checkedModulesFilter\"\n            (searchEvent)=\"fetchResults($event)\"\n            (closeEvent)=\"closeModal()\"></app-modal-filter>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div *ngIf=\"checkedModulesFilter.length\" fxLayout=\"row wrap\" fxLayoutGap=\"4px\" class=\"filterTags isntPhoneContent\">\n    <div class=\"title\">Filtres :</div>\n    <app-button\n      *ngFor=\"let filter of checkedModulesFilter\"\n      [style]=\"buttonTypeEnum.TagCloudButton\"\n      [text]=\"filter.displayText ? filter.displayText : filter.id\"\n      (action)=\"removeFilter(filter)\"></app-button>\n    <div class=\"reset-icon\" (click)=\"resetFilters()\">\n      <app-svg-icon [type]=\"'ico'\" [icon]=\"'tagReset'\" [iconColor]=\"'black'\"></app-svg-icon>\n    </div>\n  </div>\n</div>\n", styles: ["html,body,p,span,label,h1,h2,h3,h4,h5,h6,.card-header-text,.welcome-message,.user-name,.profile-user-name,.project-name,.annuaire-label,.event_title,.objective_title{font-family:Lato,Helvetica,sans-serif}.form-input{width:296px;background:#f8f8f8;border:1px solid #dedede;box-sizing:border-box;border-radius:4px;height:36px;padding:8px;font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:400;font-size:.875em}.form-input:focus{border:1px solid #696969;outline:none!important}.switch{position:relative;display:inline-block;margin-left:-55px;height:34px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;top:10px;background-color:#fff;border-radius:7px;width:34px;height:14px;border:1px solid #bdbdbd}.slider:before{position:absolute;content:\"\";height:20px;width:20px;left:-6px;bottom:-3px;background-color:#bdbdbd;transition:.4s;border-radius:50%}input:checked+.slider{border:1px solid #da3635}input:checked+.slider:before{transform:translate(26px);background-color:#da3635}html,body,p,span,label,h1,h2,h3,h4,h5,h6,.card-header-text,.welcome-message,.user-name,.profile-user-name,.project-name,.annuaire-label,.event_title,.objective_title{font-family:Lato,Helvetica,sans-serif}.btn-primary{background:#da3635;border-radius:4px;outline:none;cursor:pointer;color:#fff;height:40px;width:192px;font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:700;font-size:1em;line-height:18px;stroke:#fff;border:1px solid #333333}.btn-primary.small{width:149px}.btn-primary.invalid{opacity:.4}.btn-primary:focus{background:white;color:#da3635;border:1px solid #da3635;stroke:#da3635}.btn-grid{display:inline-flex;flex-wrap:wrap;gap:8px}.tags-cloud{font-style:normal;justify-content:center;align-items:center;height:28px;border-radius:20px;padding:5px 15px;color:#fff;border-style:none;margin-top:5px;background:#333333}.tags-cloud.unchecked{background:#bdbdbd}.block{padding:0 .5rem;border-bottom:solid 1px #bdbdbd}@media only screen and (max-width : 1024px){.block{padding:0 10px}}.content{margin-bottom:.5rem;display:flex;align-items:center}.content input{font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:400;font-size:.813em;width:100%;border:none;padding-left:10px;text-overflow:ellipsis;background-color:#f8f8f8;color:#696969;outline:none;font-style:italic;margin-top:unset}.content .inputSearch{padding:6px 10px 6px 6px;width:200px;min-width:200px;background-color:#f8f8f8;color:#696969;height:36px;border-radius:50px;margin-right:.25rem}@media only screen and (min-width : 1201px){.content .inputSearch{width:300px;min-width:250px}}@media only screen and (max-width : 1024px){.content .inputSearch{width:100%;margin-bottom:.5rem;margin-right:0}}.content .inputSearch .container{width:100%;height:40px}.content .inputSearch .container .separation{border-right:solid 1px #bdbdbd;width:5px;height:23px;margin-right:5px}@media only screen and (max-width : 1024px){.content{flex-direction:column!important}}.btn-container{width:100%;display:flex}.btnSection{width:100%}@media only screen and (max-width : 1024px){.btnSection{display:contents!important}}.btnSection button{background:white;height:36px;border:1px solid #bdbdbd;padding:10px 12px;outline:none;border-radius:50px;cursor:pointer;text-align:left;transition:all .3s ease;line-height:110%;font-size:1em;line-height:19px;font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:400;font-size:.813em}.btnSection button:hover:not(.selected){background:#f4f4f4}.btnSection button .arrow{background-color:transparent;border-bottom:1px solid black;border-right:1px solid black;transform:translateY(-25%) rotate(45deg);margin:0 5px 0 10px;height:7px;width:7px;transition:all .3s ease}.btnSection button:focus{border-color:#333}.btnSection .selected{background-color:#da3635;border-color:#da3635!important;color:#fff}.btnSection .selected .arrow{background-color:transparent;border-bottom:1px solid white;border-right:1px solid white;transform:translateY(25%) rotate(-135deg);margin:0 5px 0 10px;height:7px;width:7px}.btnSection .btn-filter{height:40px}.btnSection .btn-filter span{line-height:110%}.btnSection .containCheckedFilters{border-color:#da3635}.btnSection .checkboxButton{box-sizing:border-box;background:white;height:40px;width:190px;border:1px solid #bdbdbd;outline:none;cursor:pointer;font-size:1em;line-height:19px;width:auto;border-radius:50px;padding:0 10px;display:flex;align-items:center;justify-content:center;transition:all .3s ease;font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:400;font-size:.813em;line-height:110%}.btnSection .checkboxButton>*{transition:all .3s ease}@media only screen and (max-width : 1024px){.btnSection .checkboxButton{width:max-content}}.btnSection .checkboxButton.checked{border-color:#da3635;background:#fef0f0}.btnSection .checkboxButton:hover:not(.checked){background:#f8f8f8}.btnSection .checkboxButton label{cursor:pointer;font-size:inherit;font-weight:inherit}.btnSection .checkboxButton input[type=checkbox]{-webkit-appearance:none;appearance:none;border-radius:50%;width:20px;min-width:20px;height:20px;border:solid 1px #bdbdbd;background:white;margin:0 5px 0 0;transition:all .3s ease;position:relative}.btnSection .checkboxButton input[type=checkbox]:checked{background:#da3635;border:none}.btnSection .checkboxButton input[type=checkbox]:checked:after{border-bottom:2px solid white;border-left:2px solid white;content:\"\";height:4px;left:4px;opacity:1;position:absolute;top:6px;transform:rotate(-45deg);width:10px}::ng-deep .btn-regular.tertiary{height:40px!important}::ng-deep .btn-regular.tertiary div{line-height:normal}.last-button{margin-left:auto}.footerSearchSection{margin:8px 0;height:40px}.icon{background-color:transparent;border:1px solid transparent;outline:none;cursor:pointer}.icon.pin{padding:4px 6px 8px}.icon.pin:hover .ico-pin-search{background-color:#da3635}.icon.pin:focus{border-color:#da3635}.icon.pin:focus .ico-pin-search{background-color:#da3635}.icon.pin:active{border-color:transparent}.icon.pin:active .ico-pin-search{background-color:#c9ecf3}.icon.close:focus{border-color:#da3635}.icon.close:active{border-color:transparent}a{border:1px solid transparent;padding:8px 8px 6px;color:#da3635;outline:none;font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:700;font-size:1em;line-height:18px;text-decoration:underline;text-align:right}a:hover{color:#b85959}a:focus{color:#da3635;border-color:#da3635;border-radius:4px}a:active{border:none;color:#c9ecf3}.phoneSection{margin:9px 0 18px;display:none}.phoneSection .btnSection{padding:0}@media only screen and (max-width : 1024px){.isntPhoneContent{display:none!important}.phoneSection{display:block}}.filterTags{margin:.5rem 0 0}.filterTags .title{margin-top:5px;color:#696969}.filterTags .reset-icon{padding-top:.2rem;cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.DefaultLayoutDirective, selector: "  [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md],  [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md],  [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm],  [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i4.DefaultLayoutGapDirective, selector: "  [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md],  [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md],  [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm],  [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i4.DefaultLayoutAlignDirective, selector: "  [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md],  [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md],  [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm],  [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { 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: "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: "component", type: i5.SvgIconComponent, selector: "app-svg-icon", inputs: ["icon", "iconClass", "type", "iconColor", "title"] }, { kind: "component", type: i5.ButtonComponent, selector: "app-button", inputs: ["style", "text", "type", "iconType", "iconBtn", "iconPos", "extraClass", "disabled", "active"], outputs: ["action"] }, { kind: "directive", type: i5.ModalOutsideDirective, selector: "[clickOutside]", outputs: ["clickOutside"] }, { kind: "component", type: ModalFilterComponent, selector: "app-modal-filter", inputs: ["modalType", "categories", "modules"], outputs: ["searchEvent", "closeEvent"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: StructureListSearchComponent, decorators: [{
            type: Component,
            args: [{ selector: 'app-structure-list-search', template: "<div class=\"block\">\n  <div class=\"content\">\n    <form\n      class=\"inputSearch\"\n      [formGroup]=\"searchForm\"\n      fxLayout=\"row\"\n      fxLayoutGap=\"4px\"\n      fxLayoutAlign=\" center\"\n      (ngSubmit)=\"applyFilter(searchForm.value.searchTerm)\">\n      <div fxLayout=\"row\" fxLayoutAlign=\"space-between center\" class=\"container\">\n        <input type=\"text\" formControlName=\"searchTerm\" placeholder=\"Rechercher une association, une commune...\" />\n        <button\n          *ngIf=\"this.searchForm.get('searchTerm').value?.length > 0\"\n          (click)=\"clearInput()\"\n          class=\"icon close\"\n          type=\"button\">\n          <div class=\"ico-close-search\"></div>\n        </button>\n        <span *ngIf=\"this.searchForm.get('searchTerm').value?.length > 0\" class=\"separation\"></span>\n        <app-button [style]=\"buttonTypeEnum.searchIcon\" [iconBtn]=\"'search'\" [type]=\"'submit'\"></app-button>\n      </div>\n    </form>\n    <div (clickOutside)=\"closeModal()\" class=\"btn-container\">\n      <div class=\"btnSection\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\" fxLayoutGap=\"4px\">\n        <button\n          class=\"btn-filter isntPhoneContent\"\n          type=\"button\"\n          fxLayout=\"row\"\n          [ngClass]=\"{\n            selected: modalTypeOpened === TypeModal.accompaniment,\n            containCheckedFilters: numberAccompanimentChecked\n          }\"\n          fxLayoutAlign=\"space-between center\"\n          (click)=\"openModal(TypeModal.accompaniment)\">\n          <span>Aide num\u00E9rique</span>\n          <div class=\"arrow\"></div>\n        </button>\n        <button\n          class=\"btn-filter isntPhoneContent\"\n          type=\"button\"\n          fxLayout=\"row\"\n          [ngClass]=\"{\n            selected: modalTypeOpened === TypeModal.training,\n            containCheckedFilters: numberTrainingChecked\n          }\"\n          fxLayoutAlign=\"space-between center\"\n          (click)=\"openModal(TypeModal.training)\">\n          <span>Ateliers</span>\n          <div class=\"arrow\"></div>\n        </button>\n        <button\n          class=\"btn-filter isntPhoneContent\"\n          type=\"button\"\n          fxLayout=\"row\"\n          [ngClass]=\"{\n            selected: modalTypeOpened === TypeModal.public,\n            containCheckedFilters: numberPublicChecked\n          }\"\n          fxLayoutAlign=\"space-between center\"\n          (click)=\"openModal(TypeModal.public)\">\n          <span>Public</span>\n          <div class=\"arrow\"></div>\n        </button>\n        <button\n          class=\"btn-filter isntPhoneContent\"\n          type=\"button\"\n          fxLayout=\"row\"\n          [ngClass]=\"{\n            selected: modalTypeOpened === TypeModal.equipments,\n            containCheckedFilters: numberEquipmentChecked\n          }\"\n          fxLayoutAlign=\"space-between center\"\n          (click)=\"openModal(TypeModal.equipments)\">\n          <span>Mat\u00E9riel et wifi</span>\n          <div class=\"arrow\"></div>\n        </button>\n        <div\n          class=\"checkboxButton\"\n          [ngClass]=\"{\n            checked: searchService.getIndex(checkedModulesFilter, 'passNumerique', 'labelsQualifications') > -1\n          }\">\n          <label fxLayout=\"row\" fxLayoutAlign=\"center center\">\n            <input\n              type=\"checkbox\"\n              value=\"passNumerique\"\n              [checked]=\"searchService.getIndex(checkedModulesFilter, 'passNumerique', 'labelsQualifications') > -1\"\n              (change)=\"externalCheckboxCheck($event, 'labelsQualifications', 'Pass num\u00E9rique')\" />\n            <div class=\"label pass\">Pass num\u00E9rique</div>\n          </label>\n        </div>\n        <div\n          class=\"checkboxButton\"\n          [ngClass]=\"{\n            checked: searchService.getIndex(checkedModulesFilter, 'conseillerNumFranceServices', 'labelsQualifications') > -1\n          }\">\n          <label fxLayout=\"row\" fxLayoutAlign=\"center center\">\n            <input\n              type=\"checkbox\"\n              value=\"conseillerNumFranceServices\"\n              [checked]=\"\n                searchService.getIndex(checkedModulesFilter, 'conseillerNumFranceServices', 'labelsQualifications') > -1\n              \"\n              (change)=\"externalCheckboxCheck($event, 'labelsQualifications', 'Conseillers num\u00E9riques')\" />\n            <div class=\"label pass\">Conseillers num\u00E9riques</div>\n          </label>\n        </div>\n        <div\n          class=\"checkboxButton isntPhoneContent\"\n          [ngClass]=\"{\n            checked: searchService.getIndex(checkedModulesFilter, 'accesLibre', 'accessModality') > -1\n          }\">\n          <label fxLayout=\"row\" fxLayoutAlign=\"center center\">\n            <input\n              type=\"checkbox\"\n              value=\"accesLibre\"\n              [checked]=\"searchService.getIndex(checkedModulesFilter, 'accesLibre', 'accessModality') > -1\"\n              (change)=\"externalCheckboxCheck($event, 'accessModality', 'Acc\u00E8s libre')\" />\n            <div class=\"label pass\">Acc\u00E8s libre</div>\n          </label>\n        </div>\n        <app-button\n          class=\"isntPhoneContent last-button\"\n          [style]=\"buttonTypeEnum.Tertiary\"\n          [text]=\"'Plus de filtres'\"\n          fxLayout=\"row\"\n          fxLayoutAlign=\"space-between center\"\n          (action)=\"openModal(TypeModal.moreFilters)\"></app-button>\n        <div *ngIf=\"modalTypeOpened\">\n          <app-modal-filter\n            [modalType]=\"modalTypeOpened\"\n            [categories]=\"getModalCategory()\"\n            [modules]=\"checkedModulesFilter\"\n            (searchEvent)=\"fetchResults($event)\"\n            (closeEvent)=\"closeModal()\"></app-modal-filter>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div *ngIf=\"checkedModulesFilter.length\" fxLayout=\"row wrap\" fxLayoutGap=\"4px\" class=\"filterTags isntPhoneContent\">\n    <div class=\"title\">Filtres :</div>\n    <app-button\n      *ngFor=\"let filter of checkedModulesFilter\"\n      [style]=\"buttonTypeEnum.TagCloudButton\"\n      [text]=\"filter.displayText ? filter.displayText : filter.id\"\n      (action)=\"removeFilter(filter)\"></app-button>\n    <div class=\"reset-icon\" (click)=\"resetFilters()\">\n      <app-svg-icon [type]=\"'ico'\" [icon]=\"'tagReset'\" [iconColor]=\"'black'\"></app-svg-icon>\n    </div>\n  </div>\n</div>\n", styles: ["html,body,p,span,label,h1,h2,h3,h4,h5,h6,.card-header-text,.welcome-message,.user-name,.profile-user-name,.project-name,.annuaire-label,.event_title,.objective_title{font-family:Lato,Helvetica,sans-serif}.form-input{width:296px;background:#f8f8f8;border:1px solid #dedede;box-sizing:border-box;border-radius:4px;height:36px;padding:8px;font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:400;font-size:.875em}.form-input:focus{border:1px solid #696969;outline:none!important}.switch{position:relative;display:inline-block;margin-left:-55px;height:34px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;top:10px;background-color:#fff;border-radius:7px;width:34px;height:14px;border:1px solid #bdbdbd}.slider:before{position:absolute;content:\"\";height:20px;width:20px;left:-6px;bottom:-3px;background-color:#bdbdbd;transition:.4s;border-radius:50%}input:checked+.slider{border:1px solid #da3635}input:checked+.slider:before{transform:translate(26px);background-color:#da3635}html,body,p,span,label,h1,h2,h3,h4,h5,h6,.card-header-text,.welcome-message,.user-name,.profile-user-name,.project-name,.annuaire-label,.event_title,.objective_title{font-family:Lato,Helvetica,sans-serif}.btn-primary{background:#da3635;border-radius:4px;outline:none;cursor:pointer;color:#fff;height:40px;width:192px;font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:700;font-size:1em;line-height:18px;stroke:#fff;border:1px solid #333333}.btn-primary.small{width:149px}.btn-primary.invalid{opacity:.4}.btn-primary:focus{background:white;color:#da3635;border:1px solid #da3635;stroke:#da3635}.btn-grid{display:inline-flex;flex-wrap:wrap;gap:8px}.tags-cloud{font-style:normal;justify-content:center;align-items:center;height:28px;border-radius:20px;padding:5px 15px;color:#fff;border-style:none;margin-top:5px;background:#333333}.tags-cloud.unchecked{background:#bdbdbd}.block{padding:0 .5rem;border-bottom:solid 1px #bdbdbd}@media only screen and (max-width : 1024px){.block{padding:0 10px}}.content{margin-bottom:.5rem;display:flex;align-items:center}.content input{font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:400;font-size:.813em;width:100%;border:none;padding-left:10px;text-overflow:ellipsis;background-color:#f8f8f8;color:#696969;outline:none;font-style:italic;margin-top:unset}.content .inputSearch{padding:6px 10px 6px 6px;width:200px;min-width:200px;background-color:#f8f8f8;color:#696969;height:36px;border-radius:50px;margin-right:.25rem}@media only screen and (min-width : 1201px){.content .inputSearch{width:300px;min-width:250px}}@media only screen and (max-width : 1024px){.content .inputSearch{width:100%;margin-bottom:.5rem;margin-right:0}}.content .inputSearch .container{width:100%;height:40px}.content .inputSearch .container .separation{border-right:solid 1px #bdbdbd;width:5px;height:23px;margin-right:5px}@media only screen and (max-width : 1024px){.content{flex-direction:column!important}}.btn-container{width:100%;display:flex}.btnSection{width:100%}@media only screen and (max-width : 1024px){.btnSection{display:contents!important}}.btnSection button{background:white;height:36px;border:1px solid #bdbdbd;padding:10px 12px;outline:none;border-radius:50px;cursor:pointer;text-align:left;transition:all .3s ease;line-height:110%;font-size:1em;line-height:19px;font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:400;font-size:.813em}.btnSection button:hover:not(.selected){background:#f4f4f4}.btnSection button .arrow{background-color:transparent;border-bottom:1px solid black;border-right:1px solid black;transform:translateY(-25%) rotate(45deg);margin:0 5px 0 10px;height:7px;width:7px;transition:all .3s ease}.btnSection button:focus{border-color:#333}.btnSection .selected{background-color:#da3635;border-color:#da3635!important;color:#fff}.btnSection .selected .arrow{background-color:transparent;border-bottom:1px solid white;border-right:1px solid white;transform:translateY(25%) rotate(-135deg);margin:0 5px 0 10px;height:7px;width:7px}.btnSection .btn-filter{height:40px}.btnSection .btn-filter span{line-height:110%}.btnSection .containCheckedFilters{border-color:#da3635}.btnSection .checkboxButton{box-sizing:border-box;background:white;height:40px;width:190px;border:1px solid #bdbdbd;outline:none;cursor:pointer;font-size:1em;line-height:19px;width:auto;border-radius:50px;padding:0 10px;display:flex;align-items:center;justify-content:center;transition:all .3s ease;font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:400;font-size:.813em;line-height:110%}.btnSection .checkboxButton>*{transition:all .3s ease}@media only screen and (max-width : 1024px){.btnSection .checkboxButton{width:max-content}}.btnSection .checkboxButton.checked{border-color:#da3635;background:#fef0f0}.btnSection .checkboxButton:hover:not(.checked){background:#f8f8f8}.btnSection .checkboxButton label{cursor:pointer;font-size:inherit;font-weight:inherit}.btnSection .checkboxButton input[type=checkbox]{-webkit-appearance:none;appearance:none;border-radius:50%;width:20px;min-width:20px;height:20px;border:solid 1px #bdbdbd;background:white;margin:0 5px 0 0;transition:all .3s ease;position:relative}.btnSection .checkboxButton input[type=checkbox]:checked{background:#da3635;border:none}.btnSection .checkboxButton input[type=checkbox]:checked:after{border-bottom:2px solid white;border-left:2px solid white;content:\"\";height:4px;left:4px;opacity:1;position:absolute;top:6px;transform:rotate(-45deg);width:10px}::ng-deep .btn-regular.tertiary{height:40px!important}::ng-deep .btn-regular.tertiary div{line-height:normal}.last-button{margin-left:auto}.footerSearchSection{margin:8px 0;height:40px}.icon{background-color:transparent;border:1px solid transparent;outline:none;cursor:pointer}.icon.pin{padding:4px 6px 8px}.icon.pin:hover .ico-pin-search{background-color:#da3635}.icon.pin:focus{border-color:#da3635}.icon.pin:focus .ico-pin-search{background-color:#da3635}.icon.pin:active{border-color:transparent}.icon.pin:active .ico-pin-search{background-color:#c9ecf3}.icon.close:focus{border-color:#da3635}.icon.close:active{border-color:transparent}a{border:1px solid transparent;padding:8px 8px 6px;color:#da3635;outline:none;font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:700;font-size:1em;line-height:18px;text-decoration:underline;text-align:right}a:hover{color:#b85959}a:focus{color:#da3635;border-color:#da3635;border-radius:4px}a:active{border:none;color:#c9ecf3}.phoneSection{margin:9px 0 18px;display:none}.phoneSection .btnSection{padding:0}@media only screen and (max-width : 1024px){.isntPhoneContent{display:none!important}.phoneSection{display:block}}.filterTags{margin:.5rem 0 0}.filterTags .title{margin-top:5px;color:#696969}.filterTags .reset-icon{padding-top:.2rem;cursor:pointer}\n"] }]
        }], ctorParameters: function () {
        return [{ type: undefined, decorators: [{
                        type: Inject,
                        args: [SEARCH_TOKEN]
                    }] }, { type: i1$1.FormBuilder }, { type: i1.ActivatedRoute }, { type: i1.ActivatedRoute }, { type: i1.Router }];
    }, propDecorators: { searchEvent: [{
                type: Output
            }] } });

const STRUCTURE_TOKEN = new InjectionToken('structure-list.structure.repository');

class StructureListComponent {
    constructor(route, router, structureService) {
        this.route = route;
        this.router = router;
        this.structureService = structureService;
        this.selectedStructure = new Structure();
        this.displayMapMarkerId = new EventEmitter();
        this.selectedMarkerId = new EventEmitter();
        this.buttonTypeEnum = ButtonType;
        this.showStructureDetails = false;
        this.route.queryParams.subscribe((queryParams) => {
            if (queryParams.id) {
                if (!this.structure) {
                    this.structureService.getStructure(queryParams.id).subscribe((s) => {
                        this.showDetails(new Structure(s));
                    });
                }
            }
            else {
                this.closeDetails();
            }
        });
    }
    ngOnChanges(changes) {
        if (changes.selectedStructure && this.selectedStructure) {
            this.showDetails(this.selectedStructure);
            this.router.navigate([], {
                relativeTo: this.route,
                queryParams: {
                    id: this.selectedStructure._id
                }
            });
        }
        if (changes.structureList) {
            document.getElementById('listCard').scrollTo(0, 0);
        }
    }
    showDetails(event) {
        this.showStructureDetails = true;
        this.structure = event;
        this.selectedMarkerId.emit(this.structure._id);
    }
    closeDetails() {
        this.selectedMarkerId.emit();
        this.showStructureDetails = false;
    }
    handleCardHover(structure) {
        this.displayMapMarkerId.emit(structure._id);
    }
    mouseLeave() {
        this.displayMapMarkerId.emit(undefined);
    }
}
StructureListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: StructureListComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }, { token: STRUCTURE_TOKEN }], target: i0.ɵɵFactoryTarget.Component });
StructureListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: StructureListComponent, selector: "app-structure-list", inputs: { structureList: "structureList", location: "location", selectedStructure: "selectedStructure" }, outputs: { displayMapMarkerId: "displayMapMarkerId", selectedMarkerId: "selectedMarkerId" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"structureList-container\">\n  <div class=\"structureListHeader hide-on-print\">\n    <div class=\"nbStructuresLabel\" [ngPlural]=\"structureList.length\">\n      <ng-template ngPluralCase=\"0\">0 structure</ng-template>\n      <ng-template ngPluralCase=\"1\">1 structure</ng-template>\n      <ng-template ngPluralCase=\"other\">{{ structureList.length }} structures</ng-template>\n    </div>\n    <ng-content select=\"[slot=structure-list-actions]\"></ng-content>\n  </div>\n\n  <div id=\"listCard\" class=\"listCard\" (mouseleave)=\"mouseLeave()\">\n    <ng-content select=\"[slot=structure-list-elements]\"></ng-content>\n    <p *ngIf=\"structureList && structureList.length <= 0\">Il n'y a aucune r\u00E9ponse correspondant \u00E0 votre recherche</p>\n  </div>\n</div>\n<ng-content></ng-content>\n", styles: [".ico-mglass{position:relative;display:inline-block;background:transparent;border-radius:30px;border:2px solid #333333;height:12px;width:12px;min-width:12px;max-width:12px}.ico-mglass:after{content:\"\";height:2px;width:8px;background:#333333;position:absolute;top:14px;left:10px;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg)}.ico-pin{width:20px;height:20px;max-width:20px;max-height:20px;border-radius:50% 50% 50% 0;background:transparent;transform:rotate(-45deg);left:50%;top:50%;margin:-4px 0 0}.ico-pin.after{content:\"\";width:14px;height:14px;margin:8px 0 0 8px;background:transparent;border-radius:50%}.ico-pin-search{width:18px;height:18px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background-color:#696969}.ico-pin-search:before{content:\"\";position:absolute;left:5px;top:6px;width:7px;height:7px;border-radius:4px;background-color:#fff}.ico-dot-available{height:12px;width:12px;background-color:#41c29c;border-radius:50%;margin-right:8px}.ico-dot-unavailable{height:12px;width:12px;background-color:#da3635;border-radius:50%;margin-right:8px}.ico-dot-unknown{height:12px;width:12px;background-color:#bdbdbd;border-radius:50%;margin-right:8px}.ico-marker-pin{width:30px;height:30px;border-radius:50% 50% 50% 0;background:#da3635;position:absolute;transform:rotate(-45deg);left:50%;top:50%;margin:-15px 0 0 -15px}.ico-marker-pin.selected{background:#da3635}.ico-marker-pin:after{content:\"\";width:10px;height:10px;margin:10px 0 0 10px;background:#fff;position:absolute;border-radius:50%}.ico-marker-pin-sm{width:18px;height:18px;border-radius:50% 50% 50% 0;background:#696969;transform:rotate(-45deg);margin:0 4px}.ico-marker-pin-sm.absolute{position:absolute;margin:0}.ico-marker-pin-sm:after{content:\"\";width:7px;height:7px;margin:6px 0 0 5px;background:#f8f8f8;position:absolute;border-radius:50%}.ico-profile .head{width:12px;height:12px;border-radius:25px;border:2px solid #333333}.ico-profile .body{width:28px;height:10px;border-radius:20px 20px 0 0;border-top:2px solid #333333;border-right:2px solid #333333;border-left:2px solid #333333}.ico-close .mdiv{height:10px;width:2px;margin-left:5px;background-color:#696969;transform:rotate(45deg);z-index:1}.ico-close .md{height:10px;width:2px;background-color:#696969;transform:rotate(90deg);z-index:2}.ico-close-search{width:16px;height:16px;display:inline-block;vertical-align:middle}.ico-close-search:before{transform:rotate(45deg)}.ico-close-search:after{transform:rotate(-45deg)}.ico-close-search:before,.ico-close-search:after{position:absolute;content:\"\";height:16px;width:2px;background-color:#bdbdbd}.ic-arrow-left{box-sizing:border-box;position:relative;display:block;transform:scale(var(--ggs, 1));width:22px;height:22px}.ic-arrow-left:after,.ic-arrow-left:before{content:\"\";display:block;box-sizing:border-box;position:absolute;left:3px}.ic-arrow-left:after{width:8px;height:8px;border-bottom:2px solid;border-left:2px solid;transform:rotate(45deg);bottom:7px}.ic-arrow-left:before{width:16px;height:2px;bottom:10px;background:currentColor}.ic-print{width:.68em;height:1em;border-style:solid;border-color:currentcolor;background-color:transparent;border-width:.07em;border-radius:.05em;margin:0 .16em}.ic-print:before{width:1em;height:.4em;border-width:.07em .21em 0;border-style:solid;border-color:currentColor currentcolor transparent;border-radius:.05em .05em 0 0;top:.25em;left:50%;transform:translate(-50%);background-image:linear-gradient(transparent 20%,currentcolor 20%,currentcolor 60%,transparent 60%)}.ic-print:after{width:.45em;height:.065em;background-color:currentColor;left:50%;transform:translate(-50%);top:.6em;box-shadow:0 .12em,-.1em -.28em 0 .05em}.ic-mail,.ic-mail:after{display:block;box-sizing:border-box;height:14px;border:2px solid}.ic-mail{color:#4f4f4f;overflow:hidden;transform:scale(var(--ggs, 1));position:absolute;width:18px;border-radius:2px}.ic-mail:after{content:\"\";position:absolute;border-radius:3px;width:14px;transform:rotate(-45deg);bottom:3px;left:0}.ic-phone{color:#4f4f4f;box-sizing:border-box;position:absolute;display:block;width:22px;height:22px;transform:scale(var(--ggs, 1))}.ic-phone:after,.ic-phone:before{content:\"\";display:block;box-sizing:border-box;position:absolute}.ic-phone:after{width:18px;height:18px;border-top-left-radius:1px;border-bottom-right-radius:1px;border-bottom-left-radius:12px;border-left:4px solid;border-bottom:4px solid;left:2px;bottom:2px;background:linear-gradient(to left,currentColor 10px,transparent 0) no-repeat right 11px/6px 4px,linear-gradient(to left,currentColor 10px,transparent 0) no-repeat -1px 0/4px 6px}.ic-phone:before{width:20px;height:20px;border:6px double;border-top-color:transparent;border-bottom-color:transparent;border-left-color:transparent;border-radius:50%;transform:rotate(-45deg);bottom:2px;left:2px}.ic-mouse{box-sizing:border-box;position:relative;display:block;transform:scale(var(--ggs, 1));width:16px;height:24px;border:2px solid;border-radius:10px}.ic-mouse:after{content:\"\";display:block;box-sizing:border-box;position:absolute;border-radius:3px;width:2px;height:6px;background:currentColor;top:3px;left:5px}.ic-wifi{color:#000;position:absolute;margin-left:7px;margin-top:13px;width:6px;height:6px;border-radius:50%;border-top:solid 1px currentColor;border-right:solid 1px transparent;border-bottom:solid 1px transparent;border-left:solid 1px transparent}.ic-wifi:before{content:\"\";position:absolute;left:-5px;top:-5px;width:14px;height:14px;border-radius:50%;border-top:solid 1px currentColor;border-right:solid 1px transparent;border-bottom:solid 1px transparent;border-left:solid 1px transparent}.ic-wifi:after{content:\"\";position:absolute;left:-9px;top:-9px;width:22px;height:22px;border-radius:50%;border-top:solid 1px currentColor;border-right:solid 1px transparent;border-bottom:solid 1px transparent;border-left:solid 1px transparent}.ic-screen{box-sizing:border-box;position:absolute;display:block;transform:scale(var(--ggs, 1));width:22px;height:14px;border:2px solid;border-radius:3px;margin-top:-4px}.ic-screen:after,.ic-screen:before{content:\"\";display:block;box-sizing:border-box;position:absolute;border-radius:3px;width:10px;height:2px;background:currentColor;top:14px;left:4px}.ic-screen:before{width:2px;height:6px;top:10px;left:8px}.ic-globe-alt,.ic-globe-alt:after,.ic-globe-alt:before{color:#4f4f4f;display:block;box-sizing:border-box;height:18px;border:2px solid}.ic-globe-alt{position:absolute;transform:scale(var(--ggs, 1));width:18px;border-radius:22px}.ic-globe-alt:after,.ic-globe-alt:before{content:\"\";position:absolute;width:8px;border-radius:100%;top:-2px;left:3px}.ic-globe-alt:after{width:24px;height:20px;border:2px solid transparent;border-bottom:2px solid;top:-11px;left:-5px}.ic-camera{box-sizing:border-box;position:absolute;display:block;transform:scale(var(--ggs, 1));border:2px solid;border-radius:3px;width:18px;height:12px;perspective:24px}.ic-camera:after,.ic-camera:before{content:\"\";display:block;box-sizing:border-box;position:absolute}.ic-camera:before{border:2px solid;border-left-color:transparent;transform:rotateY(-70deg);width:8px;height:8px;right:-7px;top:0}.ic-camera:after{width:10px;height:5px;border-top:2px solid;border-right:2px solid;top:-5px;right:2px;border-top-right-radius:2px}.ic-calendar-today{box-sizing:border-box;position:absolute;display:block;transform:scale(var(--ggs, 1));width:18px;height:18px;border:2px solid;border-top:4px solid;border-radius:3px}.ic-calendar-today:before{content:\"\";display:block;box-sizing:border-box;position:absolute;background:currentColor;height:4px;width:4px;border-radius:2px;right:2px;bottom:2px}.ic-user{display:block;position:absolute;transform:scale(var(--ggs, 1));box-sizing:border-box;width:12px;height:18px}.ic-user:after,.ic-user:before{content:\"\";display:block;box-sizing:border-box;position:absolute;border:2px solid}.ic-user:before{width:8px;height:8px;border-radius:30px;top:0;left:2px}.ic-user:after{width:12px;height:9px;border-bottom:0;border-top-left-radius:3px;border-top-right-radius:3px;top:9px}.ico-close-details{width:44px;height:44px;border-radius:44px;display:flex;justify-content:center;align-items:center;opacity:.8;cursor:pointer}.ico-close-details:before,.ico-close-details:after{content:\"\";width:24px;height:2px;background-color:#333;position:absolute;border-radius:1px}.ico-close-details:hover{background-color:#f4f4f4}.ico-close-details:before{transform:rotate(45deg)}.ico-close-details:after{transform:rotate(-45deg)}.ico-menu,.ico-menu:before,.ico-menu:after{cursor:pointer;border-radius:1px;height:2px;width:23px;background:#000000;position:absolute;display:block;content:\"\"}.ico-menu:before{top:-6px}.ico-menu:after{bottom:-6px}.ico-gg-eye-alt{position:relative;display:block;transform:scale(var(--ggs, 1));width:24px;height:18px;border-bottom-right-radius:100px;border-bottom-left-radius:100px;overflow:hidden;box-sizing:border-box}.ico-gg-eye-alt:after,.ico-gg-eye-alt:before{content:\"\";display:block;border-radius:100px;position:absolute;box-sizing:border-box}.ico-gg-eye-alt:after{top:2px;box-shadow:inset 0 -8px 0 2px #696969,inset 0 0 0 2px #696969;width:24px;height:24px}.ico-gg-eye-alt:before{width:8px;height:8px;border:2px solid #696969;bottom:4px;left:8px;background-color:#696969}.ico-gg-add{box-sizing:border-box;position:relative;display:block;color:#47c562;width:32px;height:32px}.ico-gg-add:after,.ico-gg-add:before{content:\"\";display:block;box-sizing:border-box;position:absolute;width:14px;height:2px;background:currentColor;border-radius:5px;top:8px;left:0px}.ico-gg-add:after{width:2px;height:14px;top:2px;left:6px}.gg-eye-alt{position:relative;display:block;width:18px;height:12px;border-bottom-right-radius:100px;border-bottom-left-radius:100px;overflow:hidden;box-sizing:border-box}.gg-eye-alt:after,.gg-eye-alt:before{content:\"\";display:block;border-radius:100px;position:absolute;box-sizing:border-box}.gg-eye-alt:after{top:2px;box-shadow:inset 0 -8px 0 2px,inset 0 0 0 2px;width:18px;height:18px}.gg-eye-alt:before{width:2px;height:2px;border:2px solid black;bottom:3px;left:7px;background-color:#000}.ico-gg-check{box-sizing:border-box;position:relative;display:block;transform:scale(var(--ggs, 1));width:22px;height:22px;border:1px solid transparent;border-radius:100px;color:#fff}.ico-gg-check:after{content:\"\";display:block;box-sizing:border-box;position:absolute;left:5px;top:-3px;width:7px;height:12px;border-width:0 2px 2px 0;border-style:solid;transform-origin:bottom left;transform:rotate(45deg);color:#fff}html,body,p,span,label,h1,h2,h3,h4,h5,h6,.card-header-text,.welcome-message,.user-name,.profile-user-name,.project-name,.annuaire-label,.event_title,.objective_title{font-family:Lato,Helvetica,sans-serif}.btn-primary{background:#da3635;border-radius:4px;outline:none;cursor:pointer;color:#fff;height:40px;width:192px;font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:700;font-size:1em;line-height:18px;stroke:#fff;border:1px solid #333333}.btn-primary.small{width:149px}.btn-primary.invalid{opacity:.4}.btn-primary:focus{background:white;color:#da3635;border:1px solid #da3635;stroke:#da3635}.btn-grid{display:inline-flex;flex-wrap:wrap;gap:8px}.tags-cloud{font-style:normal;justify-content:center;align-items:center;height:28px;border-radius:20px;padding:5px 15px;color:#fff;border-style:none;margin-top:5px;background:#333333}.tags-cloud.unchecked{background:#bdbdbd}.structureList-container{overflow-y:auto;scrollbar-gutter:stable}.listCard>p{margin-left:1rem}.structureListHeader{height:50px;display:flex;flex-direction:row;align-items:center;margin:8px 16px}.structureListHeader .nbStructuresLabel{font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:400;font-size:.875em;color:#696969;flex:1}::ng-deep .structure-card:last-child .structure{border-bottom:unset!important}@media print{.listCard{display:none}.hide-on-print{display:none!important}}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgPlural, selector: "[ngPlural]", inputs: ["ngPlural"] }, { kind: "directive", type: i3.NgPluralCase, selector: "[ngPluralCase]" }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: StructureListComponent, decorators: [{
            type: Component,
            args: [{ selector: 'app-structure-list', template: "<div class=\"structureList-container\">\n  <div class=\"structureListHeader hide-on-print\">\n    <div class=\"nbStructuresLabel\" [ngPlural]=\"structureList.length\">\n      <ng-template ngPluralCase=\"0\">0 structure</ng-template>\n      <ng-template ngPluralCase=\"1\">1 structure</ng-template>\n      <ng-template ngPluralCase=\"other\">{{ structureList.length }} structures</ng-template>\n    </div>\n    <ng-content select=\"[slot=structure-list-actions]\"></ng-content>\n  </div>\n\n  <div id=\"listCard\" class=\"listCard\" (mouseleave)=\"mouseLeave()\">\n    <ng-content select=\"[slot=structure-list-elements]\"></ng-content>\n    <p *ngIf=\"structureList && structureList.length <= 0\">Il n'y a aucune r\u00E9ponse correspondant \u00E0 votre recherche</p>\n  </div>\n</div>\n<ng-content></ng-content>\n", styles: [".ico-mglass{position:relative;display:inline-block;background:transparent;border-radius:30px;border:2px solid #333333;height:12px;width:12px;min-width:12px;max-width:12px}.ico-mglass:after{content:\"\";height:2px;width:8px;background:#333333;position:absolute;top:14px;left:10px;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg)}.ico-pin{width:20px;height:20px;max-width:20px;max-height:20px;border-radius:50% 50% 50% 0;background:transparent;transform:rotate(-45deg);left:50%;top:50%;margin:-4px 0 0}.ico-pin.after{content:\"\";width:14px;height:14px;margin:8px 0 0 8px;background:transparent;border-radius:50%}.ico-pin-search{width:18px;height:18px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background-color:#696969}.ico-pin-search:before{content:\"\";position:absolute;left:5px;top:6px;width:7px;height:7px;border-radius:4px;background-color:#fff}.ico-dot-available{height:12px;width:12px;background-color:#41c29c;border-radius:50%;margin-right:8px}.ico-dot-unavailable{height:12px;width:12px;background-color:#da3635;border-radius:50%;margin-right:8px}.ico-dot-unknown{height:12px;width:12px;background-color:#bdbdbd;border-radius:50%;margin-right:8px}.ico-marker-pin{width:30px;height:30px;border-radius:50% 50% 50% 0;background:#da3635;position:absolute;transform:rotate(-45deg);left:50%;top:50%;margin:-15px 0 0 -15px}.ico-marker-pin.selected{background:#da3635}.ico-marker-pin:after{content:\"\";width:10px;height:10px;margin:10px 0 0 10px;background:#fff;position:absolute;border-radius:50%}.ico-marker-pin-sm{width:18px;height:18px;border-radius:50% 50% 50% 0;background:#696969;transform:rotate(-45deg);margin:0 4px}.ico-marker-pin-sm.absolute{position:absolute;margin:0}.ico-marker-pin-sm:after{content:\"\";width:7px;height:7px;margin:6px 0 0 5px;background:#f8f8f8;position:absolute;border-radius:50%}.ico-profile .head{width:12px;height:12px;border-radius:25px;border:2px solid #333333}.ico-profile .body{width:28px;height:10px;border-radius:20px 20px 0 0;border-top:2px solid #333333;border-right:2px solid #333333;border-left:2px solid #333333}.ico-close .mdiv{height:10px;width:2px;margin-left:5px;background-color:#696969;transform:rotate(45deg);z-index:1}.ico-close .md{height:10px;width:2px;background-color:#696969;transform:rotate(90deg);z-index:2}.ico-close-search{width:16px;height:16px;display:inline-block;vertical-align:middle}.ico-close-search:before{transform:rotate(45deg)}.ico-close-search:after{transform:rotate(-45deg)}.ico-close-search:before,.ico-close-search:after{position:absolute;content:\"\";height:16px;width:2px;background-color:#bdbdbd}.ic-arrow-left{box-sizing:border-box;position:relative;display:block;transform:scale(var(--ggs, 1));width:22px;height:22px}.ic-arrow-left:after,.ic-arrow-left:before{content:\"\";display:block;box-sizing:border-box;position:absolute;left:3px}.ic-arrow-left:after{width:8px;height:8px;border-bottom:2px solid;border-left:2px solid;transform:rotate(45deg);bottom:7px}.ic-arrow-left:before{width:16px;height:2px;bottom:10px;background:currentColor}.ic-print{width:.68em;height:1em;border-style:solid;border-color:currentcolor;background-color:transparent;border-width:.07em;border-radius:.05em;margin:0 .16em}.ic-print:before{width:1em;height:.4em;border-width:.07em .21em 0;border-style:solid;border-color:currentColor currentcolor transparent;border-radius:.05em .05em 0 0;top:.25em;left:50%;transform:translate(-50%);background-image:linear-gradient(transparent 20%,currentcolor 20%,currentcolor 60%,transparent 60%)}.ic-print:after{width:.45em;height:.065em;background-color:currentColor;left:50%;transform:translate(-50%);top:.6em;box-shadow:0 .12em,-.1em -.28em 0 .05em}.ic-mail,.ic-mail:after{display:block;box-sizing:border-box;height:14px;border:2px solid}.ic-mail{color:#4f4f4f;overflow:hidden;transform:scale(var(--ggs, 1));position:absolute;width:18px;border-radius:2px}.ic-mail:after{content:\"\";position:absolute;border-radius:3px;width:14px;transform:rotate(-45deg);bottom:3px;left:0}.ic-phone{color:#4f4f4f;box-sizing:border-box;position:absolute;display:block;width:22px;height:22px;transform:scale(var(--ggs, 1))}.ic-phone:after,.ic-phone:before{content:\"\";display:block;box-sizing:border-box;position:absolute}.ic-phone:after{width:18px;height:18px;border-top-left-radius:1px;border-bottom-right-radius:1px;border-bottom-left-radius:12px;border-left:4px solid;border-bottom:4px solid;left:2px;bottom:2px;background:linear-gradient(to left,currentColor 10px,transparent 0) no-repeat right 11px/6px 4px,linear-gradient(to left,currentColor 10px,transparent 0) no-repeat -1px 0/4px 6px}.ic-phone:before{width:20px;height:20px;border:6px double;border-top-color:transparent;border-bottom-color:transparent;border-left-color:transparent;border-radius:50%;transform:rotate(-45deg);bottom:2px;left:2px}.ic-mouse{box-sizing:border-box;position:relative;display:block;transform:scale(var(--ggs, 1));width:16px;height:24px;border:2px solid;border-radius:10px}.ic-mouse:after{content:\"\";display:block;box-sizing:border-box;position:absolute;border-radius:3px;width:2px;height:6px;background:currentColor;top:3px;left:5px}.ic-wifi{color:#000;position:absolute;margin-left:7px;margin-top:13px;width:6px;height:6px;border-radius:50%;border-top:solid 1px currentColor;border-right:solid 1px transparent;border-bottom:solid 1px transparent;border-left:solid 1px transparent}.ic-wifi:before{content:\"\";position:absolute;left:-5px;top:-5px;width:14px;height:14px;border-radius:50%;border-top:solid 1px currentColor;border-right:solid 1px transparent;border-bottom:solid 1px transparent;border-left:solid 1px transparent}.ic-wifi:after{content:\"\";position:absolute;left:-9px;top:-9px;width:22px;height:22px;border-radius:50%;border-top:solid 1px currentColor;border-right:solid 1px transparent;border-bottom:solid 1px transparent;border-left:solid 1px transparent}.ic-screen{box-sizing:border-box;position:absolute;display:block;transform:scale(var(--ggs, 1));width:22px;height:14px;border:2px solid;border-radius:3px;margin-top:-4px}.ic-screen:after,.ic-screen:before{content:\"\";display:block;box-sizing:border-box;position:absolute;border-radius:3px;width:10px;height:2px;background:currentColor;top:14px;left:4px}.ic-screen:before{width:2px;height:6px;top:10px;left:8px}.ic-globe-alt,.ic-globe-alt:after,.ic-globe-alt:before{color:#4f4f4f;display:block;box-sizing:border-box;height:18px;border:2px solid}.ic-globe-alt{position:absolute;transform:scale(var(--ggs, 1));width:18px;border-radius:22px}.ic-globe-alt:after,.ic-globe-alt:before{content:\"\";position:absolute;width:8px;border-radius:100%;top:-2px;left:3px}.ic-globe-alt:after{width:24px;height:20px;border:2px solid transparent;border-bottom:2px solid;top:-11px;left:-5px}.ic-camera{box-sizing:border-box;position:absolute;display:block;transform:scale(var(--ggs, 1));border:2px solid;border-radius:3px;width:18px;height:12px;perspective:24px}.ic-camera:after,.ic-camera:before{content:\"\";display:block;box-sizing:border-box;position:absolute}.ic-camera:before{border:2px solid;border-left-color:transparent;transform:rotateY(-70deg);width:8px;height:8px;right:-7px;top:0}.ic-camera:after{width:10px;height:5px;border-top:2px solid;border-right:2px solid;top:-5px;right:2px;border-top-right-radius:2px}.ic-calendar-today{box-sizing:border-box;position:absolute;display:block;transform:scale(var(--ggs, 1));width:18px;height:18px;border:2px solid;border-top:4px solid;border-radius:3px}.ic-calendar-today:before{content:\"\";display:block;box-sizing:border-box;position:absolute;background:currentColor;height:4px;width:4px;border-radius:2px;right:2px;bottom:2px}.ic-user{display:block;position:absolute;transform:scale(var(--ggs, 1));box-sizing:border-box;width:12px;height:18px}.ic-user:after,.ic-user:before{content:\"\";display:block;box-sizing:border-box;position:absolute;border:2px solid}.ic-user:before{width:8px;height:8px;border-radius:30px;top:0;left:2px}.ic-user:after{width:12px;height:9px;border-bottom:0;border-top-left-radius:3px;border-top-right-radius:3px;top:9px}.ico-close-details{width:44px;height:44px;border-radius:44px;display:flex;justify-content:center;align-items:center;opacity:.8;cursor:pointer}.ico-close-details:before,.ico-close-details:after{content:\"\";width:24px;height:2px;background-color:#333;position:absolute;border-radius:1px}.ico-close-details:hover{background-color:#f4f4f4}.ico-close-details:before{transform:rotate(45deg)}.ico-close-details:after{transform:rotate(-45deg)}.ico-menu,.ico-menu:before,.ico-menu:after{cursor:pointer;border-radius:1px;height:2px;width:23px;background:#000000;position:absolute;display:block;content:\"\"}.ico-menu:before{top:-6px}.ico-menu:after{bottom:-6px}.ico-gg-eye-alt{position:relative;display:block;transform:scale(var(--ggs, 1));width:24px;height:18px;border-bottom-right-radius:100px;border-bottom-left-radius:100px;overflow:hidden;box-sizing:border-box}.ico-gg-eye-alt:after,.ico-gg-eye-alt:before{content:\"\";display:block;border-radius:100px;position:absolute;box-sizing:border-box}.ico-gg-eye-alt:after{top:2px;box-shadow:inset 0 -8px 0 2px #696969,inset 0 0 0 2px #696969;width:24px;height:24px}.ico-gg-eye-alt:before{width:8px;height:8px;border:2px solid #696969;bottom:4px;left:8px;background-color:#696969}.ico-gg-add{box-sizing:border-box;position:relative;display:block;color:#47c562;width:32px;height:32px}.ico-gg-add:after,.ico-gg-add:before{content:\"\";display:block;box-sizing:border-box;position:absolute;width:14px;height:2px;background:currentColor;border-radius:5px;top:8px;left:0px}.ico-gg-add:after{width:2px;height:14px;top:2px;left:6px}.gg-eye-alt{position:relative;display:block;width:18px;height:12px;border-bottom-right-radius:100px;border-bottom-left-radius:100px;overflow:hidden;box-sizing:border-box}.gg-eye-alt:after,.gg-eye-alt:before{content:\"\";display:block;border-radius:100px;position:absolute;box-sizing:border-box}.gg-eye-alt:after{top:2px;box-shadow:inset 0 -8px 0 2px,inset 0 0 0 2px;width:18px;height:18px}.gg-eye-alt:before{width:2px;height:2px;border:2px solid black;bottom:3px;left:7px;background-color:#000}.ico-gg-check{box-sizing:border-box;position:relative;display:block;transform:scale(var(--ggs, 1));width:22px;height:22px;border:1px solid transparent;border-radius:100px;color:#fff}.ico-gg-check:after{content:\"\";display:block;box-sizing:border-box;position:absolute;left:5px;top:-3px;width:7px;height:12px;border-width:0 2px 2px 0;border-style:solid;transform-origin:bottom left;transform:rotate(45deg);color:#fff}html,body,p,span,label,h1,h2,h3,h4,h5,h6,.card-header-text,.welcome-message,.user-name,.profile-user-name,.project-name,.annuaire-label,.event_title,.objective_title{font-family:Lato,Helvetica,sans-serif}.btn-primary{background:#da3635;border-radius:4px;outline:none;cursor:pointer;color:#fff;height:40px;width:192px;font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:700;font-size:1em;line-height:18px;stroke:#fff;border:1px solid #333333}.btn-primary.small{width:149px}.btn-primary.invalid{opacity:.4}.btn-primary:focus{background:white;color:#da3635;border:1px solid #da3635;stroke:#da3635}.btn-grid{display:inline-flex;flex-wrap:wrap;gap:8px}.tags-cloud{font-style:normal;justify-content:center;align-items:center;height:28px;border-radius:20px;padding:5px 15px;color:#fff;border-style:none;margin-top:5px;background:#333333}.tags-cloud.unchecked{background:#bdbdbd}.structureList-container{overflow-y:auto;scrollbar-gutter:stable}.listCard>p{margin-left:1rem}.structureListHeader{height:50px;display:flex;flex-direction:row;align-items:center;margin:8px 16px}.structureListHeader .nbStructuresLabel{font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:400;font-size:.875em;color:#696969;flex:1}::ng-deep .structure-card:last-child .structure{border-bottom:unset!important}@media print{.listCard{display:none}.hide-on-print{display:none!important}}\n"] }]
        }], ctorParameters: function () {
        return [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: undefined, decorators: [{
                        type: Inject,
                        args: [STRUCTURE_TOKEN]
                    }] }];
    }, propDecorators: { structureList: [{
                type: Input
            }], location: [{
                type: Input
            }], selectedStructure: [{
                type: Input
            }], displayMapMarkerId: [{
                type: Output
            }], selectedMarkerId: [{
                type: Output
            }] } });

var AccessModality;
(function (AccessModality) {
    AccessModality["free"] = "accesLibre";
    AccessModality["numeric"] = "telephoneVisio";
    AccessModality["meetingOnly"] = "uniquementSurRdv";
    AccessModality["meeting"] = "surRdv";
})(AccessModality || (AccessModality = {}));

var PublicCategorie;
(function (PublicCategorie) {
    PublicCategorie["under16Years"] = "moinsDe16Ans";
    PublicCategorie["young"] = "jeunes1625Ans";
    PublicCategorie["adult"] = "adultes";
    PublicCategorie["elderly"] = "seniorsPlusDe65Ans";
    PublicCategorie["all"] = "toutPublic";
    PublicCategorie["women"] = "uniquementFemmes";
})(PublicCategorie || (PublicCategorie = {}));

class PrintService {
    constructor(router) {
        this.router = router;
        this.isPrinting = false;
    }
    printDocument(documentName, structure) {
        this.isPrinting = true;
        this.structure = structure;
        this.router.navigate([
            '/',
            {
                outlets: {
                    print: ['print', documentName]
                }
            }
        ]);
    }
    printDocuments(documentName, structures) {
        this.isPrinting = true;
        this.structures = structures;
        this.router.navigate([
            '/',
            {
                outlets: {
                    print: ['print', documentName]
                }
            }
        ]);
    }
    onDataReady() {
        setTimeout(() => {
            window.print();
            this.isPrinting = false;
            this.router.navigate([{ outlets: { print: null } }]);
        }, 1500);
    }
}
PrintService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: PrintService, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
PrintService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: PrintService });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: PrintService, decorators: [{
            type: Injectable
        }], ctorParameters: function () { return [{ type: i1.Router }]; } });

var Demarches;
(function (Demarches) {
    Demarches["accompagnantCaf"] = "CAF";
    Demarches["carsat"] = "CARSAT";
    Demarches["cpam"] = "CPAM";
    Demarches["espacePublicNumeriqueepn"] = "Espace public Num\u00E9rique";
    Demarches["impots"] = "Imp\u00F4ts";
    Demarches["logement"] = "Logements";
    Demarches["poleEmploi"] = "P\u00F4le Emploi";
    Demarches["autres"] = "Autres";
})(Demarches || (Demarches = {}));

var Labels;
(function (Labels) {
    Labels["passNumerique"] = "Pass num\u00E9rique";
    Labels["maisonFranceService"] = "Maison france service";
    Labels["aidantsConnect"] = "Aidants connect";
    Labels["fabriqueDeTerritoire"] = "Fabrique de territoire";
    Labels["demarcheMetropolitaine"] = "D\u00E9marches M\u00E9tropolitaines";
    Labels["pix"] = "\u00C9valuation des comp\u00E9tences num\u00E9riques";
    Labels["conseillerNumFranceServices"] = "Conseiller num\u00E9rique";
})(Labels || (Labels = {}));

class LogoCardComponent {
    getName(key) {
        if (Labels[key]) {
            return Labels[key];
        }
        else {
            return Demarches[key];
        }
    }
}
LogoCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LogoCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
LogoCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: LogoCardComponent, selector: "app-logo-card", inputs: { logoPath: "logoPath", name: "name" }, ngImport: i0, template: "<div fxLayout=\"row\" fxLayoutAlign=\"start center\" *ngIf=\"name\">\n  <img [src]=\"'assets/logos/' + name + '.svg'\" [alt]=\"'logo ' + name\" />\n  <p>{{ getName(name) }}</p>\n</div>\n", styles: ["html,body,p,span,label,h1,h2,h3,h4,h5,h6,.card-header-text,.welcome-message,.user-name,.profile-user-name,.project-name,.annuaire-label,.event_title,.objective_title{font-family:Lato,Helvetica,sans-serif}img{margin-right:16px;width:40px}p{font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:400;font-size:1em;margin:0}div{width:250px;min-height:40px;margin-bottom:5px}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.DefaultLayoutDirective, selector: "  [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md],  [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md],  [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm],  [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i4.DefaultLayoutAlignDirective, selector: "  [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md],  [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md],  [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm],  [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: LogoCardComponent, decorators: [{
            type: Component,
            args: [{ selector: 'app-logo-card', template: "<div fxLayout=\"row\" fxLayoutAlign=\"start center\" *ngIf=\"name\">\n  <img [src]=\"'assets/logos/' + name + '.svg'\" [alt]=\"'logo ' + name\" />\n  <p>{{ getName(name) }}</p>\n</div>\n", styles: ["html,body,p,span,label,h1,h2,h3,h4,h5,h6,.card-header-text,.welcome-message,.user-name,.profile-user-name,.project-name,.annuaire-label,.event_title,.objective_title{font-family:Lato,Helvetica,sans-serif}img{margin-right:16px;width:40px}p{font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:400;font-size:1em;margin:0}div{width:250px;min-height:40px;margin-bottom:5px}\n"] }]
        }], propDecorators: { logoPath: [{
                type: Input
            }], name: [{
                type: Input
            }] } });

class StructureDetailsComponent {
    constructor(searchService, structureService, printService, route, router, location) {
        this.searchService = searchService;
        this.structureService = structureService;
        this.printService = printService;
        this.route = route;
        this.router = router;
        this.location = location;
        this.closeDetails = new EventEmitter();
        this.accessModality = AccessModality;
        this.showBaseSkills = false;
        this.showAccessRights = false;
        this.showParentingHelp = false;
        this.showSocialAndProfessional = false;
        this.showDigitalSecurity = false;
        this.printMode = false;
        this.isLoading = true;
        this.lockdownInfoDisplay = false;
        this.structureErrorModalOpenned = false;
        this.fullScreen = false;
        this.keepOriginalOrder = (a, b) => a.key;
        route.url.subscribe((url) => {
            var _a;
            if (((_a = url[0]) === null || _a === void 0 ? void 0 : _a.path) === 'structure') {
                this.structure = new Structure(this.printService.structure);
                this.printMode = true;
                // Display formations for printing
                this.toggleAccessRights();
                this.toggleBaseSkills();
                this.toggleDigitalSecurity();
                this.toggleParentingHelp();
                this.toggleSocialAndProfessional();
                this.initForm();
            }
        });
    }
    ngOnInit() {
        this.isLoading = true;
        this.route.queryParams.subscribe((queryParams) => {
            if (queryParams.id) {
                this.initForm();
            }
            else if (!this.printMode) {
                this.structure = null;
            }
        });
        this.route.data.subscribe((data) => {
            if (data.fullScreen) {
                this.fullScreen = true;
            }
        });
    }
    initForm() {
        return __awaiter(this, void 0, void 0, function* () {
            this.searchService.getCategoriesTraining().subscribe((referentiels) => {
                referentiels.forEach((referentiel) => {
                    if (referentiel.isBaseSkills()) {
                        this.baseSkillssReferentiel = referentiel;
                    }
                    else if (referentiel.isRigthtsAccess()) {
                        this.accessRightsReferentiel = referentiel;
                    }
                    else if (referentiel.isDigitalCultureSecurity()) {
                        this.digitalCultureSecuritysReferentiel = referentiel;
                    }
                    else if (referentiel.isParentingHelp()) {
                        this.parentingHelpsReferentiel = referentiel;
                    }
                    else if (referentiel.isSocialAndProfessional()) {
                        this.socialAndProfessionalsReferentiel = referentiel;
                    }
                });
                this.setServiceCategories();
                if (this.printMode) {
                    this.printService.onDataReady();
                }
                this.isLoading = false;
            });
            const index = this.structure.proceduresAccompaniment.indexOf('autres');
            if (index > -1) {
                this.structure.proceduresAccompaniment.splice(index, 1);
            }
        });
    }
    getEquipmentsLabel(equipment) {
        switch (equipment) {
            case Equipment.wifi:
                return 'Wifi en accès libre';
            case Equipment.bornes:
                return this.structure.nbNumericTerminal > 1 ? 'Bornes numériques' : 'Borne numérique';
            case Equipment.printer:
                return this.structure.nbPrinters > 1 ? 'Imprimantes' : 'Imprimante';
            case Equipment.tablet:
                return this.structure.nbTablets > 1 ? 'Tablettes' : 'Tablette';
            case Equipment.computer:
                return this.structure.nbComputers > 1 ? 'Ordinateurs' : 'Ordinateur';
            case Equipment.scanner:
                return this.structure.nbScanners > 1 ? 'Scanners' : 'Scanner';
            default:
                return null;
        }
    }
    close() {
        this.route.url.subscribe((urls) => {
            if (urls.length > 0 && urls[0].path !== 'orientation') {
                this.router.navigate(['/acteurs'], {
                    relativeTo: this.route,
                    queryParams: {
                        id: null
                    },
                    queryParamsHandling: 'merge'
                });
            }
            else {
                this.isLoading = true;
                this.location.back();
            }
        });
    }
    print() {
        this.printService.printDocument('structure', this.structure);
    }
    getAccessLabel(accessModality) {
        switch (accessModality) {
            case AccessModality.free:
                return 'Accès libre';
            case AccessModality.meeting:
                return 'Sur rendez-vous';
            case AccessModality.meetingOnly:
                return 'Uniquement sur RDV';
            case AccessModality.numeric:
                return 'Téléphone / Visio';
            default:
                return null;
        }
    }
    getPublicLabel(tagetPublic) {
        switch (tagetPublic) {
            case PublicCategorie.young:
                return 'Jeunes (16 - 25 ans)';
            case PublicCategorie.adult:
                return 'Adultes';
            case PublicCategorie.elderly:
                return 'Séniors (+ de 65 ans)';
            case PublicCategorie.all:
                return 'Tout public';
            case PublicCategorie.under16Years:
                return 'Moins de 16 ans';
            case PublicCategorie.women:
                return 'Uniquement femmes';
            default:
                return null;
        }
    }
    setServiceCategories() {
        this.baseSkills = this.structure.baseSkills.map((skill) => _.find(this.baseSkillssReferentiel.modules, { id: skill }));
        this.accessRights = this.structure.accessRight.map((rights) => _.find(this.accessRightsReferentiel.modules, { id: rights }));
        this.parentingHelp = this.structure.parentingHelp.map((help) => _.find(this.parentingHelpsReferentiel.modules, { id: help }));
        this.socialAndProfessional = this.structure.socialAndProfessional.map((skill) => _.find(this.socialAndProfessionalsReferentiel.modules, { id: skill }));
        this.digitalCultureSecurity = this.structure.digitalCultureSecurity.map((skill) => _.find(this.digitalCultureSecuritysReferentiel.modules, { id: skill }));
    }
    isBaseSkills() {
        return this.baseSkills && this.baseSkills[0] !== undefined;
    }
    isAccessRights() {
        return this.accessRights && this.accessRights[0] !== undefined;
    }
    isParentingHelp() {
        return this.parentingHelp && this.parentingHelp[0] !== undefined;
    }
    isSocialAndProfessional() {
        return this.socialAndProfessional && this.socialAndProfessional[0] !== undefined;
    }
    isDigitalSecurity() {
        return this.digitalCultureSecurity && this.digitalCultureSecurity[0] !== undefined;
    }
    filterOnlyEquipments(equipmentsAndServices) {
        return equipmentsAndServices.filter((eqpt) => ['ordinateurs', 'tablettes', 'bornesNumeriques', 'imprimantes', 'scanners', 'wifiEnAccesLibre'].includes(eqpt));
    }
    displayModalError() {
        this.structureErrorModalOpenned = !this.structureErrorModalOpenned;
    }
    sendErrorEmail(modalValue) {
        this.displayModalError();
        if (modalValue.shouldSend) {
            this.structureService.sendMailOnStructureError(this.structure._id, modalValue.content).subscribe(() => { });
        }
    }
    multipleWorkshop() {
        if (this.structure.baseSkills.length +
            this.structure.accessRight.length +
            this.structure.parentingHelp.length +
            this.structure.socialAndProfessional.length +
            this.structure.digitalCultureSecurity.length >
            1) {
            return true;
        }
        return false;
    }
    toggleBaseSkills() {
        this.showBaseSkills = !this.showBaseSkills;
    }
    toggleAccessRights() {
        this.showAccessRights = !this.showAccessRights;
    }
    toggleParentingHelp() {
        this.showParentingHelp = !this.showParentingHelp;
    }
    toggleSocialAndProfessional() {
        this.showSocialAndProfessional = !this.showSocialAndProfessional;
    }
    toggleDigitalSecurity() {
        this.showDigitalSecurity = !this.showDigitalSecurity;
    }
    goToWebsite() {
        window.open(this.structure.website, '_blank');
    }
}
StructureDetailsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: StructureDetailsComponent, deps: [{ token: SEARCH_TOKEN }, { token: STRUCTURE_TOKEN }, { token: PrintService }, { token: i1.ActivatedRoute }, { token: i1.Router }, { token: i3.Location }], target: i0.ɵɵFactoryTarget.Component });
StructureDetailsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: StructureDetailsComponent, selector: "app-structure-details", inputs: { structure: "structure" }, outputs: { closeDetails: "closeDetails" }, providers: [PrintService], ngImport: i0, template: "<div class=\"structure-details\" [ngClass]=\"{ fullScreen: fullScreen === true }\" [@slideInOut] *ngIf=\"structure\">\n  <div class=\"structure-details-container\">\n    <!-- Header info -->\n    <div class=\"structure-details-title\" fxLayout=\"row\" fxLayoutGap=\"8px\" fxLayoutAlign=\"space-evenly center\">\n      <app-svg-icon [type]=\"'ico'\" [icon]=\"'structureAvatar'\" [iconClass]=\"'icon-52'\"></app-svg-icon>\n      <h1 class=\"bold\">{{ structure.structureName }}</h1>\n      <div class=\"ico-close\">\n        <div (click)=\"close()\" class=\"ico-close-details\"></div>\n      </div>\n    </div>\n    <div class=\"structure-details-content\" fxLayout=\"row\" fxLayoutAlign=\"center center\" *ngIf=\"isLoading\">\n      <img class=\"loader-gif\" src=\"/assets/gif/loader_circle.gif\" alt />\n    </div>\n    <div class=\"structure-details-content\" *ngIf=\"!isLoading\">\n      <div class=\"structure-buttons hide-on-print\" fxLayout=\"row\" fxLayoutAlign=\"space-evenly\">\n        <div *ngIf=\"structure.website\" class=\"clickableDiv\" role=\"button\" (click)=\"goToWebsite()\" tabindex=\"0\">\n          <app-svg-icon class=\"icon\" [type]=\"'ico'\" [icon]=\"'web'\" [iconClass]=\"'icon-32'\"></app-svg-icon>\n          <div class=\"iconTitle\">Voir le site</div>\n        </div>\n        <div role=\"button\" class=\"printButton clickableDiv\" (click)=\"print()\" tabindex=\"0\">\n          <app-svg-icon class=\"icon\" [type]=\"'ico'\" [icon]=\"'printStructure'\" [iconClass]=\"'icon-32'\"></app-svg-icon>\n          <div class=\"iconTitle\">Imprimer</div>\n        </div>\n        <div class=\"clickableDiv\" role=\"button\" (click)=\"displayModalError()\" tabindex=\"0\">\n          <app-svg-icon class=\"icon\" [type]=\"'ico'\" [icon]=\"'watch'\" [iconClass]=\"'icon-32'\"></app-svg-icon>\n          <div class=\"iconTitle\">Signaler une erreur</div>\n        </div>\n        <ng-content select=\"[slot=structure-details-actions]\"></ng-content>\n      </div>\n\n      <ng-content select=\"[slot=structure-admin-actions]\"></ng-content>\n\n      <div class=\"structure-details-block\">\n        <div fxLayout=\"column\" fxLayoutGap=\"10px\">\n          <!-- Informations-->\n          <div fxLayout=\"column\">\n            <h2>Informations</h2>\n            <div class=\"info-block\">\n              <div>\n                {{ structure.getLabelTypeStructure() }}\n              </div>\n              <div *ngIf=\"structure.address\">\n                {{ structure.address.numero }} {{ structure.address.street }},\n                {{ structure.address.commune }}\n              </div>\n              <div *ngIf=\"structure.contactPhone\">\n                {{ structure.contactPhone | phone }}\n              </div>\n              <div *ngIf=\"structure.contactMail && structure.contactMail !== 'unknown@unknown.com'\">\n                <a href=\"mailto:{{ structure.contactMail }}\">{{ structure.contactMail }}</a>\n              </div>\n            </div>\n            <!-- Social networks-->\n            <div *ngIf=\"structure.hasSocialNetwork()\" fxLayout=\"row\" fxLayoutAlign=\"none baseline\" fxLayoutGap=\"4px\">\n              <a\n                *ngIf=\"structure.facebook\"\n                target=\"_blank\"\n                class=\"custom-link\"\n                rel=\"noopener noreferrer\"\n                [href]=\"'http://' + structure.facebook\">\n                <app-svg-icon [type]=\"'ico'\" [icon]=\"'facebook'\" [title]=\"'Facebook'\" [iconClass]=\"'icon-30'\"></app-svg-icon>\n              </a>\n              <a\n                *ngIf=\"structure.twitter\"\n                target=\"_blank\"\n                class=\"custom-link\"\n                rel=\"noopener noreferrer\"\n                [href]=\"'http://' + structure.twitter\">\n                <app-svg-icon [type]=\"'ico'\" [icon]=\"'twitter'\" [title]=\"'Twitter'\" [iconClass]=\"'icon-30'\"></app-svg-icon>\n              </a>\n              <a\n                *ngIf=\"structure.instagram\"\n                target=\"_blank\"\n                class=\"custom-link\"\n                rel=\"noopener noreferrer\"\n                [href]=\"'http://' + structure.instagram\">\n                <app-svg-icon [type]=\"'ico'\" [icon]=\"'instagram'\" [title]=\"'Instagram'\" [iconClass]=\"'icon-30'\"></app-svg-icon>\n              </a>\n              <a\n                *ngIf=\"structure.linkedin\"\n                target=\"_blank\"\n                class=\"custom-link\"\n                rel=\"noopener noreferrer\"\n                [href]=\"'http://' + structure.linkedin\">\n                <app-svg-icon [type]=\"'ico'\" [icon]=\"'linkedin'\" [title]=\"'Linkedin'\" [iconClass]=\"'icon-30'\"></app-svg-icon>\n              </a>\n            </div>\n          </div>\n        </div>\n        <div *ngIf=\"structure.description\" class=\"description\">\n          {{ structure.description }}\n        </div>\n        <div *ngIf=\"structure.lockdownActivity && lockdownInfoDisplay\" class=\"info\">\n          {{ structure.lockdownActivity }}\n        </div>\n      </div>\n\n      <div\n        *ngIf=\"structure.accessModality.length > 0 || structure.hours.hasData() || structure.remoteAccompaniment\"\n        class=\"structure-details-block\"\n        fxLayout=\"column\">\n        <div class=\"hours-services-block\">\n          <!-- Opening Hours -->\n          <div *ngIf=\"structure.hours.hasData()\" fxLayout=\"column\">\n            <h2>Horaires</h2>\n            <div fxLayout=\"column\" class=\"opening-hours\">\n              <div *ngFor=\"let day of structure.hours | keyvalue: keepOriginalOrder\">\n                <div *ngIf=\"day.value.open\" class=\"opening-hour\" fxLayout=\"row\" fxLayoutAlign=\"flex-start flex-start\">\n                  <h4 class=\"day\">{{ day.key | day }}</h4>\n                  <div class=\"opening-time\" fxLayout=\"column\" fxLayoutAlign=\"none flex-start\">\n                    <div *ngFor=\"let timeRange of day.value.time\" class=\"daily-opening-time\">\n                      <p *ngIf=\"timeRange.opening\">\n                        {{ timeRange.formatOpeningDate() }} -\n                        {{ timeRange.formatClosingDate() }}\n                      </p>\n                    </div>\n                  </div>\n                </div>\n              </div>\n            </div>\n          </div>\n          <!-- services -->\n          <div *ngIf=\"structure.accessModality.length > 0\" fxLayout=\"column\">\n            <h2>Services</h2>\n            <div fxLayout=\"column\" fxLayoutGap=\"10px\" class=\"services-block\">\n              <div fxLayout=\"column\" fxLayoutGap=\"8px\">\n                <div\n                  fxLayout=\"row\"\n                  fxLayoutAlign=\"none flex-end\"\n                  fxLayoutGap=\"8px\"\n                  *ngFor=\"let acces of structure.accessModality\">\n                  <p>{{ getAccessLabel(acces) }}</p>\n                </div>\n                <p *ngIf=\"structure.pmrAccess\">Accessible aux personnes \u00E0 mobilit\u00E9 r\u00E9duite</p>\n              </div>\n              <div *ngFor=\"let public of structure.publics\" fxLayout=\"row\" fxLayoutAlign=\"none flex-end\" fxLayoutGap=\"8px\">\n                <p>{{ getPublicLabel(public) }}</p>\n              </div>\n              <div\n                *ngFor=\"let accompaniment of structure.publicsAccompaniment\"\n                fxLayout=\"row\"\n                fxLayoutAlign=\"none flex-end\"\n                fxLayoutGap=\"8px\">\n                <p>{{ accompaniment }}</p>\n              </div>\n            </div>\n          </div>\n        </div>\n        <div *ngIf=\"structure.exceptionalClosures\" class=\"bold-info\">\n          <p class=\"description\">{{ structure.exceptionalClosures }}</p>\n        </div>\n        <div *ngIf=\"structure.remoteAccompaniment\" class=\"bold-info\">\n          <h3>Cette structure propose un accompagnement \u00E0 distance.</h3>\n        </div>\n      </div>\n\n      <div\n        *ngIf=\"structure.labelsQualifications.length\"\n        fxLayout=\"column\"\n        class=\"structure-details-block\"\n        fxLayoutAlign=\"baseline baseline\"\n        fxLayoutGap=\"8px\">\n        <h2>Labellisations</h2>\n        <div class=\"wrapper\">\n          <div *ngFor=\"let labels of structure.labelsQualifications\">\n            <app-logo-card [name]=\"labels\"></app-logo-card>\n          </div>\n        </div>\n      </div>\n\n      <ng-content select=\"[slot=structure-members]\"></ng-content>\n\n      <div\n        *ngIf=\"structure.proceduresAccompaniment.length || structure.otherDescription\"\n        fxLayout=\"column\"\n        class=\"structure-details-block\"\n        fxLayoutAlign=\"baseline baseline\"\n        fxLayoutGap=\"12px\">\n        <h2>Aides num\u00E9rique</h2>\n        <div fxLayout=\"column\">\n          <div class=\"wrapper\">\n            <div *ngFor=\"let accompagnement of structure.proceduresAccompaniment.sort()\">\n              <app-logo-card *ngIf=\"accompagnement !== 'autres'\" [name]=\"accompagnement\"></app-logo-card>\n            </div>\n          </div>\n          <p *ngIf=\"structure.otherDescription\" fxLayout=\"column\">\n            {{ structure.otherDescription }}\n          </p>\n        </div>\n      </div>\n\n      <div\n        *ngIf=\"isBaseSkills() || isAccessRights() || isParentingHelp() || isSocialAndProfessional() || isDigitalSecurity()\"\n        fxLayout=\"column\"\n        class=\"structure-details-block noSeparator\"\n        fxLayoutAlign=\"baseline baseline\">\n        <h2>Formations</h2>\n        <div *ngIf=\"structure.freeWorkShop\">\n          <span *ngIf=\"multipleWorkshop()\" class=\"bold-info\">L'acc\u00E8s \u00E0 ces formations est gratuit</span>\n          <span *ngIf=\"!multipleWorkshop()\" class=\"bold-info\">L'acc\u00E8s \u00E0 cette formation est gratuit</span>\n        </div>\n        <div class=\"formationDetails\">\n          <div *ngIf=\"isBaseSkills()\" class=\"collapse\" [ngClass]=\"{ notCollapsed: !showBaseSkills }\">\n            <div fxLayout=\"column\">\n              <div\n                class=\"collapseHeader\"\n                fxLayout=\"row\"\n                fxLayoutGap=\"20px\"\n                fxLayoutAlign=\" center\"\n                (click)=\"toggleBaseSkills()\">\n                <div class=\"titleCollapse\">Comp\u00E9tences de base</div>\n                <div class=\"logo\">\n                  <svg class=\"show\" aria-hidden=\"true\">\n                    <use [attr.xlink:href]=\"'assets/form/sprite.svg#unfold'\"></use>\n                  </svg>\n                  <svg class=\"hide\" aria-hidden=\"true\">\n                    <use [attr.xlink:href]=\"'assets/form/sprite.svg#fold'\"></use>\n                  </svg>\n                </div>\n              </div>\n              <div class=\"detailsContainer\" [@show]=\"showBaseSkills\">\n                <div class=\"details\" *ngFor=\"let skill of baseSkills\">\n                  {{ skill.text }}\n                </div>\n              </div>\n            </div>\n          </div>\n          <div *ngIf=\"isAccessRights()\" class=\"collapse\" [ngClass]=\"{ notCollapsed: !showAccessRights }\">\n            <div fxLayout=\"column\">\n              <div\n                class=\"collapseHeader\"\n                fxLayout=\"row\"\n                fxLayoutGap=\"20px\"\n                fxLayoutAlign=\" center\"\n                (click)=\"toggleAccessRights()\">\n                <div class=\"titleCollapse\">Acc\u00E8s aux droits</div>\n                <div class=\"logo\">\n                  <svg class=\"show\" aria-hidden=\"true\">\n                    <use [attr.xlink:href]=\"'assets/form/sprite.svg#unfold'\"></use>\n                  </svg>\n                  <svg class=\"hide\" aria-hidden=\"true\">\n                    <use [attr.xlink:href]=\"'assets/form/sprite.svg#fold'\"></use>\n                  </svg>\n                </div>\n              </div>\n              <div class=\"detailsContainer\" [@show]=\"showAccessRights\">\n                <div class=\"details\" *ngFor=\"let rights of accessRights\">\n                  {{ rights.text }}\n                </div>\n              </div>\n            </div>\n          </div>\n          <div *ngIf=\"isParentingHelp()\" class=\"collapse\" [ngClass]=\"{ notCollapsed: !showParentingHelp }\">\n            <div fxLayout=\"column\">\n              <div\n                class=\"collapseHeader\"\n                fxLayout=\"row\"\n                fxLayoutGap=\"20px\"\n                fxLayoutAlign=\" center\"\n                (click)=\"toggleParentingHelp()\">\n                <div class=\"titleCollapse\">Aide \u00E0 la parentalit\u00E9</div>\n                <div class=\"logo\">\n                  <svg class=\"show\" aria-hidden=\"true\">\n                    <use [attr.xlink:href]=\"'assets/form/sprite.svg#unfold'\"></use>\n                  </svg>\n                  <svg class=\"hide\" aria-hidden=\"true\">\n                    <use [attr.xlink:href]=\"'assets/form/sprite.svg#fold'\"></use>\n                  </svg>\n                </div>\n              </div>\n              <div class=\"detailsContainer\" [@show]=\"showParentingHelp\">\n                <div class=\"details\" *ngFor=\"let help of parentingHelp\">\n                  {{ help.text }}\n                </div>\n              </div>\n            </div>\n          </div>\n          <div *ngIf=\"isSocialAndProfessional()\" class=\"collapse\" [ngClass]=\"{ notCollapsed: !showSocialAndProfessional }\">\n            <div fxLayout=\"column\">\n              <div\n                class=\"collapseHeader\"\n                fxLayout=\"row\"\n                fxLayoutGap=\"20px\"\n                fxLayoutAlign=\" center\"\n                (click)=\"toggleSocialAndProfessional()\">\n                <div class=\"titleCollapse\">Insertion sociale et professionnelle</div>\n                <div class=\"logo\">\n                  <svg class=\"show\" aria-hidden=\"true\">\n                    <use [attr.xlink:href]=\"'assets/form/sprite.svg#unfold'\"></use>\n                  </svg>\n                  <svg class=\"hide\" aria-hidden=\"true\">\n                    <use [attr.xlink:href]=\"'assets/form/sprite.svg#fold'\"></use>\n                  </svg>\n                </div>\n              </div>\n              <div class=\"detailsContainer\" [@show]=\"showSocialAndProfessional\">\n                <div class=\"details\" *ngFor=\"let skill of socialAndProfessional\">\n                  {{ skill.text }}\n                </div>\n              </div>\n            </div>\n          </div>\n          <div *ngIf=\"isDigitalSecurity()\" class=\"collapse\" [ngClass]=\"{ notCollapsed: !showDigitalSecurity }\">\n            <div fxLayout=\"column\">\n              <div\n                class=\"collapseHeader\"\n                fxLayout=\"row\"\n                fxLayoutGap=\"20px\"\n                fxLayoutAlign=\" center\"\n                (click)=\"toggleDigitalSecurity()\">\n                <div class=\"titleCollapse\">Culture et s\u00E9curit\u00E9 num\u00E9rique</div>\n                <div class=\"logo\">\n                  <svg class=\"show\" aria-hidden=\"true\">\n                    <use [attr.xlink:href]=\"'assets/form/sprite.svg#unfold'\"></use>\n                  </svg>\n                  <svg class=\"hide\" aria-hidden=\"true\">\n                    <use [attr.xlink:href]=\"'assets/form/sprite.svg#fold'\"></use>\n                  </svg>\n                </div>\n              </div>\n              <div class=\"detailsContainer\" [@show]=\"showDigitalSecurity\">\n                <div class=\"details\" *ngFor=\"let skill of digitalCultureSecurity\">\n                  {{ skill.text }}\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n\n      <div\n        *ngIf=\"structure.hasEquipments()\"\n        fxLayout=\"column\"\n        class=\"structure-details-block\"\n        fxLayoutAlign=\"baseline baseline\">\n        <h2>Mat\u00E9riel et wifi</h2>\n        <div fxLayout=\"column\">\n          <div *ngIf=\"filterOnlyEquipments(structure.equipmentsAndServices).includes('wifiEnAccesLibre')\">\n            {{ getEquipmentsLabel('wifiEnAccesLibre') }}\n          </div>\n          <p *ngFor=\"let equipement of filterOnlyEquipments(structure.equipmentsAndServices)\" class=\"no-margin-bottom\">\n            <span *ngIf=\"equipement === 'ordinateurs' && structure.nbComputers\">\n              {{ getEquipmentsLabel(equipement) }} : {{ structure.nbComputers }}\n            </span>\n            <span *ngIf=\"equipement === 'tablettes' && structure.nbTablets\">\n              {{ getEquipmentsLabel(equipement) }} : {{ structure.nbTablets }}\n            </span>\n            <span *ngIf=\"equipement === 'bornesNumeriques' && structure.nbNumericTerminal\">\n              {{ getEquipmentsLabel(equipement) }} :\n              {{ structure.nbNumericTerminal }}\n            </span>\n            <span *ngIf=\"equipement === 'imprimantes' && structure.nbPrinters\">\n              {{ getEquipmentsLabel(equipement) }} : {{ structure.nbPrinters }}\n            </span>\n            <span *ngIf=\"equipement === 'scanners' && structure.nbScanners\">\n              {{ getEquipmentsLabel(equipement) }} : {{ structure.nbScanners }}\n            </span>\n          </p>\n        </div>\n      </div>\n      <ng-content select=\"[slot=structure-details-access]\"></ng-content>\n      <div fxLayout=\"column\" class=\"structure-details-block\" fxLayoutAlign=\"baseline baseline\" fxLayoutGap=\"20px\">\n        <div fxLayout=\"row\" fxLayoutAlign=\"none flex-start\" fxLayoutGap=\"13px\">\n          <p class=\"updated\">Mise \u00E0 jour le {{ structure.updatedAt | date: 'mediumDate' }}</p>\n        </div>\n      </div>\n    </div>\n\n    <ng-content select=\"[slot=structure-details-modals]\"></ng-content>\n    <app-text-input-modal\n      [openned]=\"structureErrorModalOpenned\"\n      [placeholder]=\"'D\u00E9crivez l\\'erreur ici. Ex: Horaires faux...'\"\n      [content]=\"\n        'Voulez-vous notifier res\\'in d\\'une erreur sur la fiche de cet acteur &nbsp;? Votre commentaire sera envoy\u00E9 \u00E0 l\\'acteur en question ainsi qu\\'aux administrateurs.'\n      \"\n      (closed)=\"sendErrorEmail($event)\"\n      (newContent)=\"sendErrorEmail($event)\"></app-text-input-modal>\n  </div>\n</div>\n", styles: ["html,body,p,span,label,h1,h2,h3,h4,h5,h6,.card-header-text,.welcome-message,.user-name,.profile-user-name,.project-name,.annuaire-label,.event_title,.objective_title{font-family:Lato,Helvetica,sans-serif}a{padding:unset;text-decoration:underline;font-size:inherit;font-weight:inherit}p:empty{margin:0}h1{font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:700;font-size:1.25em;color:#333}h2{font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:700;font-size:.875em;color:#696969;text-transform:uppercase;margin-top:0;margin-bottom:12px}h3{font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:400;font-size:1em;margin:0 0 8px}.structure-details-container{position:absolute;z-index:1001;height:calc(100vh - 56px);width:100%;background-color:#fff;overflow:hidden;border-bottom:1px solid #dedede;border-right:1px solid #dedede}.structure-details-title{height:65px;border-bottom:1px solid #dedede;padding:2px 16px 2px 24px}.structure-details-title .ico-close{margin-left:auto}.structure-details-content{height:calc(100% - 65px);padding:0 8px;overflow-y:auto;scrollbar-gutter:stable;font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:400;font-size:.875em}.structure-buttons{width:100%;margin:0 0 16px;position:relative}.structure-buttons .clickableDiv{text-align:center;height:90px;width:115.2px;display:flex;flex-direction:column;cursor:pointer}.structure-buttons .clickableDiv .icon{margin-top:20px;flex:1;display:flex;justify-content:center;align-items:center}.structure-buttons .clickableDiv .iconTitle{font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:400;font-size:.813em;height:36px;display:flex;justify-content:center;align-items:center}.structure-buttons .clickableDiv:hover{text-decoration:underline}@media only screen and (max-width : 980px){.structure-buttons .printButton{display:none!important}}.structure-details-block{margin:0 20px;padding:24px 0;border-bottom:2px solid #f8f8f8}.structure-details-block.noSeparator{border-bottom:none;padding-bottom:0}.structure-details-block .info-block>div{margin-top:4px}.structure-details-block .info-block>div:first-of-type{margin-top:0}.structure-details-block .description{white-space:pre-wrap;margin-top:8px}.structure-details-block .info{color:#f35453;margin-top:8px}.structure-details-block .hours-services-block{display:flex;flex-direction:row}.structure-details-block .hours-services-block>div{flex:1}@media only screen and (max-width : 600px){.structure-details-block .hours-services-block{flex-direction:column}}.structure-details-block .hours-services-block .opening-hours,.structure-details-block .hours-services-block .opening-hours .opening-hour{margin-bottom:8px}.structure-details-block .hours-services-block .opening-hours .opening-hour .day{min-width:70px;margin-top:0;margin-left:0;margin-bottom:0;font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:400;font-size:.875em;color:#696969;text-transform:capitalize}.structure-details-block .hours-services-block .opening-hours .opening-hour .daily-opening-time p{margin:0 0 4px}.structure-details-block .services-block{margin-bottom:8px}.structure-details-block .services-block p{display:list-item;margin:0 0 0 25px}.structure-details-block .wrapper{display:grid;grid-template-columns:1fr 1fr}@media only screen and (max-width : 600px){.structure-details-block .wrapper{grid-template-columns:1fr}}.structure-details-block .formationDetails{width:100%}.structure-details-block .formationDetails .collapse{margin-bottom:13px}@media only screen and (max-width : 320px){.structure-details-block .formationDetails .collapse{width:95%!important}}.structure-details-block .formationDetails .collapse.notCollapsed{border-bottom:2px solid #f8f8f8}.structure-details-block .formationDetails .collapse.notCollapsed .logo .hide{display:none}.structure-details-block .formationDetails .collapse.notCollapsed .logo .show{display:block}.structure-details-block .formationDetails .collapse .titleCollapse{width:100%;font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:400;font-size:1em}.structure-details-block .formationDetails .collapse .collapseHeader{cursor:pointer}.structure-details-block .formationDetails .collapse .logo{height:24px;width:24px}.structure-details-block .formationDetails .collapse .logo svg{width:100%;height:100%;fill:#333}.structure-details-block .formationDetails .collapse .logo .hide,.structure-details-block .formationDetails .collapse .titleCollapse .hide{display:block}.structure-details-block .formationDetails .collapse .logo .show,.structure-details-block .formationDetails .collapse .titleCollapse .show{display:none}.structure-details-block .formationDetails .collapse .detailsContainer{margin:8px 0;padding:8px 0;background-color:#f8f8f8;overflow:hidden}.structure-details-block .formationDetails .collapse .details{padding:8px 16px}.structure-details-block .updated{font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:400;font-size:.875em;color:#696969;font-style:italic}p,.custom-link{font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:400;font-size:1em;margin-top:9px;margin-bottom:9px}p.no-margin,.custom-link.no-margin{margin-top:unset;margin-bottom:unset}p.no-margin-bottom,.custom-link.no-margin-bottom{margin-bottom:unset}.custom-link ::ng-deep svg{border:1px solid white;border-radius:20px}.custom-link ::ng-deep svg:hover{border-color:#bdbdbd}.bold-info{font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:700;font-size:1em}@media print{.structure-details{height:unset!important;overflow:hidden;z-index:unset;width:unset;position:unset!important}.structure-details-container,.structure-details-content{background-color:unset;z-index:unset;position:unset;top:unset;left:unset;max-width:unset;width:unset;height:unset;padding:unset;overflow:hidden;border-right:0}.hide-on-print{display:none!important}}@keyframes fadeBackground{0%{background-color:#3330}to{background-color:#33333340}}.fullScreen{width:calc(100% + 600px)!important;background-color:#33333340;animation:fadeBackground .5s;max-width:unset!important}@media only screen and (max-width : 980px){.fullScreen{width:100%!important}}.structure-details{position:fixed;z-index:1001;height:calc(100vh - 55px);width:100%;max-width:600px}.structure-details .structure-details-container{max-width:600px;opacity:1!important}@media only screen and (max-width : 980px){.structure-details .structure-details-container{max-width:unset}}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.DefaultLayoutDirective, selector: "  [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md],  [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md],  [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm],  [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i4.DefaultLayoutGapDirective, selector: "  [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md],  [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md],  [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm],  [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i4.DefaultLayoutAlignDirective, selector: "  [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md],  [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md],  [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm],  [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "component", type: i5.SvgIconComponent, selector: "app-svg-icon", inputs: ["icon", "iconClass", "type", "iconColor", "title"] }, { kind: "component", type: i5.TextInputModalComponent, selector: "app-text-input-modal", inputs: ["openned", "content", "placeholder"], outputs: ["closed", "newContent"] }, { kind: "component", type: LogoCardComponent, selector: "app-logo-card", inputs: ["logoPath", "name"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }, { kind: "pipe", type: i3.KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: i5.DayPipe, name: "day" }, { kind: "pipe", type: i5.PhonePipe, name: "phone" }], animations: [
        trigger('slideInOut', [
            transition(':enter', [style({ left: '-600px' }), animate('200ms ease-in', style({ left: '0' }))]),
            transition(':leave', [animate('200ms ease-in', style({ left: '-600px' }))])
        ]),
        trigger('fadeInOut', [
            transition(':enter', [
                style({ backgroundColor: 'rgb(00, 00, 00, 0)' }),
                animate('200ms ease-in', style({ backgroundColor: 'rgb(00, 00, 00, 0.6)' }))
            ]),
            transition(':leave', [animate('200ms ease-in', style({ backgroundColor: 'rgb(00, 00, 00, 0)' }))])
        ]),
        trigger('show', [
            state('true', style({ height: AUTO_STYLE, visibility: AUTO_STYLE, margin: '8px 0' })),
            state('false', style({ height: '0px', visibility: 'hidden', margin: '0' })),
            transition('true => false', animate('300ms ease-out')),
            transition('false => true', animate('300ms ease-out'))
        ])
    ] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: StructureDetailsComponent, decorators: [{
            type: Component,
            args: [{ selector: 'app-structure-details', animations: [
                        trigger('slideInOut', [
                            transition(':enter', [style({ left: '-600px' }), animate('200ms ease-in', style({ left: '0' }))]),
                            transition(':leave', [animate('200ms ease-in', style({ left: '-600px' }))])
                        ]),
                        trigger('fadeInOut', [
                            transition(':enter', [
                                style({ backgroundColor: 'rgb(00, 00, 00, 0)' }),
                                animate('200ms ease-in', style({ backgroundColor: 'rgb(00, 00, 00, 0.6)' }))
                            ]),
                            transition(':leave', [animate('200ms ease-in', style({ backgroundColor: 'rgb(00, 00, 00, 0)' }))])
                        ]),
                        trigger('show', [
                            state('true', style({ height: AUTO_STYLE, visibility: AUTO_STYLE, margin: '8px 0' })),
                            state('false', style({ height: '0px', visibility: 'hidden', margin: '0' })),
                            transition('true => false', animate('300ms ease-out')),
                            transition('false => true', animate('300ms ease-out'))
                        ])
                    ], providers: [PrintService], template: "<div class=\"structure-details\" [ngClass]=\"{ fullScreen: fullScreen === true }\" [@slideInOut] *ngIf=\"structure\">\n  <div class=\"structure-details-container\">\n    <!-- Header info -->\n    <div class=\"structure-details-title\" fxLayout=\"row\" fxLayoutGap=\"8px\" fxLayoutAlign=\"space-evenly center\">\n      <app-svg-icon [type]=\"'ico'\" [icon]=\"'structureAvatar'\" [iconClass]=\"'icon-52'\"></app-svg-icon>\n      <h1 class=\"bold\">{{ structure.structureName }}</h1>\n      <div class=\"ico-close\">\n        <div (click)=\"close()\" class=\"ico-close-details\"></div>\n      </div>\n    </div>\n    <div class=\"structure-details-content\" fxLayout=\"row\" fxLayoutAlign=\"center center\" *ngIf=\"isLoading\">\n      <img class=\"loader-gif\" src=\"/assets/gif/loader_circle.gif\" alt />\n    </div>\n    <div class=\"structure-details-content\" *ngIf=\"!isLoading\">\n      <div class=\"structure-buttons hide-on-print\" fxLayout=\"row\" fxLayoutAlign=\"space-evenly\">\n        <div *ngIf=\"structure.website\" class=\"clickableDiv\" role=\"button\" (click)=\"goToWebsite()\" tabindex=\"0\">\n          <app-svg-icon class=\"icon\" [type]=\"'ico'\" [icon]=\"'web'\" [iconClass]=\"'icon-32'\"></app-svg-icon>\n          <div class=\"iconTitle\">Voir le site</div>\n        </div>\n        <div role=\"button\" class=\"printButton clickableDiv\" (click)=\"print()\" tabindex=\"0\">\n          <app-svg-icon class=\"icon\" [type]=\"'ico'\" [icon]=\"'printStructure'\" [iconClass]=\"'icon-32'\"></app-svg-icon>\n          <div class=\"iconTitle\">Imprimer</div>\n        </div>\n        <div class=\"clickableDiv\" role=\"button\" (click)=\"displayModalError()\" tabindex=\"0\">\n          <app-svg-icon class=\"icon\" [type]=\"'ico'\" [icon]=\"'watch'\" [iconClass]=\"'icon-32'\"></app-svg-icon>\n          <div class=\"iconTitle\">Signaler une erreur</div>\n        </div>\n        <ng-content select=\"[slot=structure-details-actions]\"></ng-content>\n      </div>\n\n      <ng-content select=\"[slot=structure-admin-actions]\"></ng-content>\n\n      <div class=\"structure-details-block\">\n        <div fxLayout=\"column\" fxLayoutGap=\"10px\">\n          <!-- Informations-->\n          <div fxLayout=\"column\">\n            <h2>Informations</h2>\n            <div class=\"info-block\">\n              <div>\n                {{ structure.getLabelTypeStructure() }}\n              </div>\n              <div *ngIf=\"structure.address\">\n                {{ structure.address.numero }} {{ structure.address.street }},\n                {{ structure.address.commune }}\n              </div>\n              <div *ngIf=\"structure.contactPhone\">\n                {{ structure.contactPhone | phone }}\n              </div>\n              <div *ngIf=\"structure.contactMail && structure.contactMail !== 'unknown@unknown.com'\">\n                <a href=\"mailto:{{ structure.contactMail }}\">{{ structure.contactMail }}</a>\n              </div>\n            </div>\n            <!-- Social networks-->\n            <div *ngIf=\"structure.hasSocialNetwork()\" fxLayout=\"row\" fxLayoutAlign=\"none baseline\" fxLayoutGap=\"4px\">\n              <a\n                *ngIf=\"structure.facebook\"\n                target=\"_blank\"\n                class=\"custom-link\"\n                rel=\"noopener noreferrer\"\n                [href]=\"'http://' + structure.facebook\">\n                <app-svg-icon [type]=\"'ico'\" [icon]=\"'facebook'\" [title]=\"'Facebook'\" [iconClass]=\"'icon-30'\"></app-svg-icon>\n              </a>\n              <a\n                *ngIf=\"structure.twitter\"\n                target=\"_blank\"\n                class=\"custom-link\"\n                rel=\"noopener noreferrer\"\n                [href]=\"'http://' + structure.twitter\">\n                <app-svg-icon [type]=\"'ico'\" [icon]=\"'twitter'\" [title]=\"'Twitter'\" [iconClass]=\"'icon-30'\"></app-svg-icon>\n              </a>\n              <a\n                *ngIf=\"structure.instagram\"\n                target=\"_blank\"\n                class=\"custom-link\"\n                rel=\"noopener noreferrer\"\n                [href]=\"'http://' + structure.instagram\">\n                <app-svg-icon [type]=\"'ico'\" [icon]=\"'instagram'\" [title]=\"'Instagram'\" [iconClass]=\"'icon-30'\"></app-svg-icon>\n              </a>\n              <a\n                *ngIf=\"structure.linkedin\"\n                target=\"_blank\"\n                class=\"custom-link\"\n                rel=\"noopener noreferrer\"\n                [href]=\"'http://' + structure.linkedin\">\n                <app-svg-icon [type]=\"'ico'\" [icon]=\"'linkedin'\" [title]=\"'Linkedin'\" [iconClass]=\"'icon-30'\"></app-svg-icon>\n              </a>\n            </div>\n          </div>\n        </div>\n        <div *ngIf=\"structure.description\" class=\"description\">\n          {{ structure.description }}\n        </div>\n        <div *ngIf=\"structure.lockdownActivity && lockdownInfoDisplay\" class=\"info\">\n          {{ structure.lockdownActivity }}\n        </div>\n      </div>\n\n      <div\n        *ngIf=\"structure.accessModality.length > 0 || structure.hours.hasData() || structure.remoteAccompaniment\"\n        class=\"structure-details-block\"\n        fxLayout=\"column\">\n        <div class=\"hours-services-block\">\n          <!-- Opening Hours -->\n          <div *ngIf=\"structure.hours.hasData()\" fxLayout=\"column\">\n            <h2>Horaires</h2>\n            <div fxLayout=\"column\" class=\"opening-hours\">\n              <div *ngFor=\"let day of structure.hours | keyvalue: keepOriginalOrder\">\n                <div *ngIf=\"day.value.open\" class=\"opening-hour\" fxLayout=\"row\" fxLayoutAlign=\"flex-start flex-start\">\n                  <h4 class=\"day\">{{ day.key | day }}</h4>\n                  <div class=\"opening-time\" fxLayout=\"column\" fxLayoutAlign=\"none flex-start\">\n                    <div *ngFor=\"let timeRange of day.value.time\" class=\"daily-opening-time\">\n                      <p *ngIf=\"timeRange.opening\">\n                        {{ timeRange.formatOpeningDate() }} -\n                        {{ timeRange.formatClosingDate() }}\n                      </p>\n                    </div>\n                  </div>\n                </div>\n              </div>\n            </div>\n          </div>\n          <!-- services -->\n          <div *ngIf=\"structure.accessModality.length > 0\" fxLayout=\"column\">\n            <h2>Services</h2>\n            <div fxLayout=\"column\" fxLayoutGap=\"10px\" class=\"services-block\">\n              <div fxLayout=\"column\" fxLayoutGap=\"8px\">\n                <div\n                  fxLayout=\"row\"\n                  fxLayoutAlign=\"none flex-end\"\n                  fxLayoutGap=\"8px\"\n                  *ngFor=\"let acces of structure.accessModality\">\n                  <p>{{ getAccessLabel(acces) }}</p>\n                </div>\n                <p *ngIf=\"structure.pmrAccess\">Accessible aux personnes \u00E0 mobilit\u00E9 r\u00E9duite</p>\n              </div>\n              <div *ngFor=\"let public of structure.publics\" fxLayout=\"row\" fxLayoutAlign=\"none flex-end\" fxLayoutGap=\"8px\">\n                <p>{{ getPublicLabel(public) }}</p>\n              </div>\n              <div\n                *ngFor=\"let accompaniment of structure.publicsAccompaniment\"\n                fxLayout=\"row\"\n                fxLayoutAlign=\"none flex-end\"\n                fxLayoutGap=\"8px\">\n                <p>{{ accompaniment }}</p>\n              </div>\n            </div>\n          </div>\n        </div>\n        <div *ngIf=\"structure.exceptionalClosures\" class=\"bold-info\">\n          <p class=\"description\">{{ structure.exceptionalClosures }}</p>\n        </div>\n        <div *ngIf=\"structure.remoteAccompaniment\" class=\"bold-info\">\n          <h3>Cette structure propose un accompagnement \u00E0 distance.</h3>\n        </div>\n      </div>\n\n      <div\n        *ngIf=\"structure.labelsQualifications.length\"\n        fxLayout=\"column\"\n        class=\"structure-details-block\"\n        fxLayoutAlign=\"baseline baseline\"\n        fxLayoutGap=\"8px\">\n        <h2>Labellisations</h2>\n        <div class=\"wrapper\">\n          <div *ngFor=\"let labels of structure.labelsQualifications\">\n            <app-logo-card [name]=\"labels\"></app-logo-card>\n          </div>\n        </div>\n      </div>\n\n      <ng-content select=\"[slot=structure-members]\"></ng-content>\n\n      <div\n        *ngIf=\"structure.proceduresAccompaniment.length || structure.otherDescription\"\n        fxLayout=\"column\"\n        class=\"structure-details-block\"\n        fxLayoutAlign=\"baseline baseline\"\n        fxLayoutGap=\"12px\">\n        <h2>Aides num\u00E9rique</h2>\n        <div fxLayout=\"column\">\n          <div class=\"wrapper\">\n            <div *ngFor=\"let accompagnement of structure.proceduresAccompaniment.sort()\">\n              <app-logo-card *ngIf=\"accompagnement !== 'autres'\" [name]=\"accompagnement\"></app-logo-card>\n            </div>\n          </div>\n          <p *ngIf=\"structure.otherDescription\" fxLayout=\"column\">\n            {{ structure.otherDescription }}\n          </p>\n        </div>\n      </div>\n\n      <div\n        *ngIf=\"isBaseSkills() || isAccessRights() || isParentingHelp() || isSocialAndProfessional() || isDigitalSecurity()\"\n        fxLayout=\"column\"\n        class=\"structure-details-block noSeparator\"\n        fxLayoutAlign=\"baseline baseline\">\n        <h2>Formations</h2>\n        <div *ngIf=\"structure.freeWorkShop\">\n          <span *ngIf=\"multipleWorkshop()\" class=\"bold-info\">L'acc\u00E8s \u00E0 ces formations est gratuit</span>\n          <span *ngIf=\"!multipleWorkshop()\" class=\"bold-info\">L'acc\u00E8s \u00E0 cette formation est gratuit</span>\n        </div>\n        <div class=\"formationDetails\">\n          <div *ngIf=\"isBaseSkills()\" class=\"collapse\" [ngClass]=\"{ notCollapsed: !showBaseSkills }\">\n            <div fxLayout=\"column\">\n              <div\n                class=\"collapseHeader\"\n                fxLayout=\"row\"\n                fxLayoutGap=\"20px\"\n                fxLayoutAlign=\" center\"\n                (click)=\"toggleBaseSkills()\">\n                <div class=\"titleCollapse\">Comp\u00E9tences de base</div>\n                <div class=\"logo\">\n                  <svg class=\"show\" aria-hidden=\"true\">\n                    <use [attr.xlink:href]=\"'assets/form/sprite.svg#unfold'\"></use>\n                  </svg>\n                  <svg class=\"hide\" aria-hidden=\"true\">\n                    <use [attr.xlink:href]=\"'assets/form/sprite.svg#fold'\"></use>\n                  </svg>\n                </div>\n              </div>\n              <div class=\"detailsContainer\" [@show]=\"showBaseSkills\">\n                <div class=\"details\" *ngFor=\"let skill of baseSkills\">\n                  {{ skill.text }}\n                </div>\n              </div>\n            </div>\n          </div>\n          <div *ngIf=\"isAccessRights()\" class=\"collapse\" [ngClass]=\"{ notCollapsed: !showAccessRights }\">\n            <div fxLayout=\"column\">\n              <div\n                class=\"collapseHeader\"\n                fxLayout=\"row\"\n                fxLayoutGap=\"20px\"\n                fxLayoutAlign=\" center\"\n                (click)=\"toggleAccessRights()\">\n                <div class=\"titleCollapse\">Acc\u00E8s aux droits</div>\n                <div class=\"logo\">\n                  <svg class=\"show\" aria-hidden=\"true\">\n                    <use [attr.xlink:href]=\"'assets/form/sprite.svg#unfold'\"></use>\n                  </svg>\n                  <svg class=\"hide\" aria-hidden=\"true\">\n                    <use [attr.xlink:href]=\"'assets/form/sprite.svg#fold'\"></use>\n                  </svg>\n                </div>\n              </div>\n              <div class=\"detailsContainer\" [@show]=\"showAccessRights\">\n                <div class=\"details\" *ngFor=\"let rights of accessRights\">\n                  {{ rights.text }}\n                </div>\n              </div>\n            </div>\n          </div>\n          <div *ngIf=\"isParentingHelp()\" class=\"collapse\" [ngClass]=\"{ notCollapsed: !showParentingHelp }\">\n            <div fxLayout=\"column\">\n              <div\n                class=\"collapseHeader\"\n                fxLayout=\"row\"\n                fxLayoutGap=\"20px\"\n                fxLayoutAlign=\" center\"\n                (click)=\"toggleParentingHelp()\">\n                <div class=\"titleCollapse\">Aide \u00E0 la parentalit\u00E9</div>\n                <div class=\"logo\">\n                  <svg class=\"show\" aria-hidden=\"true\">\n                    <use [attr.xlink:href]=\"'assets/form/sprite.svg#unfold'\"></use>\n                  </svg>\n                  <svg class=\"hide\" aria-hidden=\"true\">\n                    <use [attr.xlink:href]=\"'assets/form/sprite.svg#fold'\"></use>\n                  </svg>\n                </div>\n              </div>\n              <div class=\"detailsContainer\" [@show]=\"showParentingHelp\">\n                <div class=\"details\" *ngFor=\"let help of parentingHelp\">\n                  {{ help.text }}\n                </div>\n              </div>\n            </div>\n          </div>\n          <div *ngIf=\"isSocialAndProfessional()\" class=\"collapse\" [ngClass]=\"{ notCollapsed: !showSocialAndProfessional }\">\n            <div fxLayout=\"column\">\n              <div\n                class=\"collapseHeader\"\n                fxLayout=\"row\"\n                fxLayoutGap=\"20px\"\n                fxLayoutAlign=\" center\"\n                (click)=\"toggleSocialAndProfessional()\">\n                <div class=\"titleCollapse\">Insertion sociale et professionnelle</div>\n                <div class=\"logo\">\n                  <svg class=\"show\" aria-hidden=\"true\">\n                    <use [attr.xlink:href]=\"'assets/form/sprite.svg#unfold'\"></use>\n                  </svg>\n                  <svg class=\"hide\" aria-hidden=\"true\">\n                    <use [attr.xlink:href]=\"'assets/form/sprite.svg#fold'\"></use>\n                  </svg>\n                </div>\n              </div>\n              <div class=\"detailsContainer\" [@show]=\"showSocialAndProfessional\">\n                <div class=\"details\" *ngFor=\"let skill of socialAndProfessional\">\n                  {{ skill.text }}\n                </div>\n              </div>\n            </div>\n          </div>\n          <div *ngIf=\"isDigitalSecurity()\" class=\"collapse\" [ngClass]=\"{ notCollapsed: !showDigitalSecurity }\">\n            <div fxLayout=\"column\">\n              <div\n                class=\"collapseHeader\"\n                fxLayout=\"row\"\n                fxLayoutGap=\"20px\"\n                fxLayoutAlign=\" center\"\n                (click)=\"toggleDigitalSecurity()\">\n                <div class=\"titleCollapse\">Culture et s\u00E9curit\u00E9 num\u00E9rique</div>\n                <div class=\"logo\">\n                  <svg class=\"show\" aria-hidden=\"true\">\n                    <use [attr.xlink:href]=\"'assets/form/sprite.svg#unfold'\"></use>\n                  </svg>\n                  <svg class=\"hide\" aria-hidden=\"true\">\n                    <use [attr.xlink:href]=\"'assets/form/sprite.svg#fold'\"></use>\n                  </svg>\n                </div>\n              </div>\n              <div class=\"detailsContainer\" [@show]=\"showDigitalSecurity\">\n                <div class=\"details\" *ngFor=\"let skill of digitalCultureSecurity\">\n                  {{ skill.text }}\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n\n      <div\n        *ngIf=\"structure.hasEquipments()\"\n        fxLayout=\"column\"\n        class=\"structure-details-block\"\n        fxLayoutAlign=\"baseline baseline\">\n        <h2>Mat\u00E9riel et wifi</h2>\n        <div fxLayout=\"column\">\n          <div *ngIf=\"filterOnlyEquipments(structure.equipmentsAndServices).includes('wifiEnAccesLibre')\">\n            {{ getEquipmentsLabel('wifiEnAccesLibre') }}\n          </div>\n          <p *ngFor=\"let equipement of filterOnlyEquipments(structure.equipmentsAndServices)\" class=\"no-margin-bottom\">\n            <span *ngIf=\"equipement === 'ordinateurs' && structure.nbComputers\">\n              {{ getEquipmentsLabel(equipement) }} : {{ structure.nbComputers }}\n            </span>\n            <span *ngIf=\"equipement === 'tablettes' && structure.nbTablets\">\n              {{ getEquipmentsLabel(equipement) }} : {{ structure.nbTablets }}\n            </span>\n            <span *ngIf=\"equipement === 'bornesNumeriques' && structure.nbNumericTerminal\">\n              {{ getEquipmentsLabel(equipement) }} :\n              {{ structure.nbNumericTerminal }}\n            </span>\n            <span *ngIf=\"equipement === 'imprimantes' && structure.nbPrinters\">\n              {{ getEquipmentsLabel(equipement) }} : {{ structure.nbPrinters }}\n            </span>\n            <span *ngIf=\"equipement === 'scanners' && structure.nbScanners\">\n              {{ getEquipmentsLabel(equipement) }} : {{ structure.nbScanners }}\n            </span>\n          </p>\n        </div>\n      </div>\n      <ng-content select=\"[slot=structure-details-access]\"></ng-content>\n      <div fxLayout=\"column\" class=\"structure-details-block\" fxLayoutAlign=\"baseline baseline\" fxLayoutGap=\"20px\">\n        <div fxLayout=\"row\" fxLayoutAlign=\"none flex-start\" fxLayoutGap=\"13px\">\n          <p class=\"updated\">Mise \u00E0 jour le {{ structure.updatedAt | date: 'mediumDate' }}</p>\n        </div>\n      </div>\n    </div>\n\n    <ng-content select=\"[slot=structure-details-modals]\"></ng-content>\n    <app-text-input-modal\n      [openned]=\"structureErrorModalOpenned\"\n      [placeholder]=\"'D\u00E9crivez l\\'erreur ici. Ex: Horaires faux...'\"\n      [content]=\"\n        'Voulez-vous notifier res\\'in d\\'une erreur sur la fiche de cet acteur &nbsp;? Votre commentaire sera envoy\u00E9 \u00E0 l\\'acteur en question ainsi qu\\'aux administrateurs.'\n      \"\n      (closed)=\"sendErrorEmail($event)\"\n      (newContent)=\"sendErrorEmail($event)\"></app-text-input-modal>\n  </div>\n</div>\n", styles: ["html,body,p,span,label,h1,h2,h3,h4,h5,h6,.card-header-text,.welcome-message,.user-name,.profile-user-name,.project-name,.annuaire-label,.event_title,.objective_title{font-family:Lato,Helvetica,sans-serif}a{padding:unset;text-decoration:underline;font-size:inherit;font-weight:inherit}p:empty{margin:0}h1{font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:700;font-size:1.25em;color:#333}h2{font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:700;font-size:.875em;color:#696969;text-transform:uppercase;margin-top:0;margin-bottom:12px}h3{font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:400;font-size:1em;margin:0 0 8px}.structure-details-container{position:absolute;z-index:1001;height:calc(100vh - 56px);width:100%;background-color:#fff;overflow:hidden;border-bottom:1px solid #dedede;border-right:1px solid #dedede}.structure-details-title{height:65px;border-bottom:1px solid #dedede;padding:2px 16px 2px 24px}.structure-details-title .ico-close{margin-left:auto}.structure-details-content{height:calc(100% - 65px);padding:0 8px;overflow-y:auto;scrollbar-gutter:stable;font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:400;font-size:.875em}.structure-buttons{width:100%;margin:0 0 16px;position:relative}.structure-buttons .clickableDiv{text-align:center;height:90px;width:115.2px;display:flex;flex-direction:column;cursor:pointer}.structure-buttons .clickableDiv .icon{margin-top:20px;flex:1;display:flex;justify-content:center;align-items:center}.structure-buttons .clickableDiv .iconTitle{font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:400;font-size:.813em;height:36px;display:flex;justify-content:center;align-items:center}.structure-buttons .clickableDiv:hover{text-decoration:underline}@media only screen and (max-width : 980px){.structure-buttons .printButton{display:none!important}}.structure-details-block{margin:0 20px;padding:24px 0;border-bottom:2px solid #f8f8f8}.structure-details-block.noSeparator{border-bottom:none;padding-bottom:0}.structure-details-block .info-block>div{margin-top:4px}.structure-details-block .info-block>div:first-of-type{margin-top:0}.structure-details-block .description{white-space:pre-wrap;margin-top:8px}.structure-details-block .info{color:#f35453;margin-top:8px}.structure-details-block .hours-services-block{display:flex;flex-direction:row}.structure-details-block .hours-services-block>div{flex:1}@media only screen and (max-width : 600px){.structure-details-block .hours-services-block{flex-direction:column}}.structure-details-block .hours-services-block .opening-hours,.structure-details-block .hours-services-block .opening-hours .opening-hour{margin-bottom:8px}.structure-details-block .hours-services-block .opening-hours .opening-hour .day{min-width:70px;margin-top:0;margin-left:0;margin-bottom:0;font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:400;font-size:.875em;color:#696969;text-transform:capitalize}.structure-details-block .hours-services-block .opening-hours .opening-hour .daily-opening-time p{margin:0 0 4px}.structure-details-block .services-block{margin-bottom:8px}.structure-details-block .services-block p{display:list-item;margin:0 0 0 25px}.structure-details-block .wrapper{display:grid;grid-template-columns:1fr 1fr}@media only screen and (max-width : 600px){.structure-details-block .wrapper{grid-template-columns:1fr}}.structure-details-block .formationDetails{width:100%}.structure-details-block .formationDetails .collapse{margin-bottom:13px}@media only screen and (max-width : 320px){.structure-details-block .formationDetails .collapse{width:95%!important}}.structure-details-block .formationDetails .collapse.notCollapsed{border-bottom:2px solid #f8f8f8}.structure-details-block .formationDetails .collapse.notCollapsed .logo .hide{display:none}.structure-details-block .formationDetails .collapse.notCollapsed .logo .show{display:block}.structure-details-block .formationDetails .collapse .titleCollapse{width:100%;font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:400;font-size:1em}.structure-details-block .formationDetails .collapse .collapseHeader{cursor:pointer}.structure-details-block .formationDetails .collapse .logo{height:24px;width:24px}.structure-details-block .formationDetails .collapse .logo svg{width:100%;height:100%;fill:#333}.structure-details-block .formationDetails .collapse .logo .hide,.structure-details-block .formationDetails .collapse .titleCollapse .hide{display:block}.structure-details-block .formationDetails .collapse .logo .show,.structure-details-block .formationDetails .collapse .titleCollapse .show{display:none}.structure-details-block .formationDetails .collapse .detailsContainer{margin:8px 0;padding:8px 0;background-color:#f8f8f8;overflow:hidden}.structure-details-block .formationDetails .collapse .details{padding:8px 16px}.structure-details-block .updated{font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:400;font-size:.875em;color:#696969;font-style:italic}p,.custom-link{font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:400;font-size:1em;margin-top:9px;margin-bottom:9px}p.no-margin,.custom-link.no-margin{margin-top:unset;margin-bottom:unset}p.no-margin-bottom,.custom-link.no-margin-bottom{margin-bottom:unset}.custom-link ::ng-deep svg{border:1px solid white;border-radius:20px}.custom-link ::ng-deep svg:hover{border-color:#bdbdbd}.bold-info{font-family:Lato,Helvetica,sans-serif;font-style:normal;font-weight:700;font-size:1em}@media print{.structure-details{height:unset!important;overflow:hidden;z-index:unset;width:unset;position:unset!important}.structure-details-container,.structure-details-content{background-color:unset;z-index:unset;position:unset;top:unset;left:unset;max-width:unset;width:unset;height:unset;padding:unset;overflow:hidden;border-right:0}.hide-on-print{display:none!important}}@keyframes fadeBackground{0%{background-color:#3330}to{background-color:#33333340}}.fullScreen{width:calc(100% + 600px)!important;background-color:#33333340;animation:fadeBackground .5s;max-width:unset!important}@media only screen and (max-width : 980px){.fullScreen{width:100%!important}}.structure-details{position:fixed;z-index:1001;height:calc(100vh - 55px);width:100%;max-width:600px}.structure-details .structure-details-container{max-width:600px;opacity:1!important}@media only screen and (max-width : 980px){.structure-details .structure-details-container{max-width:unset}}\n"] }]
        }], ctorParameters: function () {
        return [{ type: undefined, decorators: [{
                        type: Inject,
                        args: [SEARCH_TOKEN]
                    }] }, { type: undefined, decorators: [{
                        type: Inject,
                        args: [STRUCTURE_TOKEN]
                    }] }, { type: PrintService }, { type: i1.ActivatedRoute }, { type: i1.Router }, { type: i3.Location }];
    }, propDecorators: { structure: [{
                type: Input
            }], closeDetails: [{
                type: Output
            }] } });

class StructureModule {
    constructor(searchRepository, structureRepository) {
        this.searchRepository = searchRepository;
        this.structureRepository = structureRepository;
        if ([searchRepository].includes(null)) {
            throw new Error('Cannot import `StructureListModule` without calling `forRoot` with valid parameters: you must provide defined `searchRepository` and `structureRepository`.');
        }
    }
    static forRoot(searchRepository, structureRepository) {
        return {
            ngModule: StructureModule,
            providers: [
                {
                    provide: SEARCH_TOKEN,
                    useClass: searchRepository
                },
                {
                    provide: STRUCTURE_TOKEN,
                    useClass: structureRepository
                }
            ]
        };
    }
}
StructureModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: StructureModule, deps: [{ token: SEARCH_TOKEN, optional: true }, { token: STRUCTURE_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.NgModule });
StructureModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.0", ngImport: i0, type: StructureModule, declarations: [ModalFilterComponent,
        StructureListSearchComponent,
        CardComponent,
        StructureDetailsComponent,
        LogoCardComponent,
        StructureListComponent], imports: [CommonModule,
        FlexModule,
        ReactiveFormsModule,
        SvgIconModule,
        ButtonModule,
        ModalModule,
        DayModule,
        PhoneModule,
        DistanceModule,
        TextInputModalModule], exports: [StructureListSearchComponent, StructureListComponent, StructureDetailsComponent, CardComponent] });
StructureModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: StructureModule, imports: [CommonModule,
        FlexModule,
        ReactiveFormsModule,
        SvgIconModule,
        ButtonModule,
        ModalModule,
        DayModule,
        PhoneModule,
        DistanceModule,
        TextInputModalModule] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: StructureModule, decorators: [{
            type: NgModule,
            args: [{
                    declarations: [
                        ModalFilterComponent,
                        StructureListSearchComponent,
                        CardComponent,
                        StructureDetailsComponent,
                        LogoCardComponent,
                        StructureListComponent
                    ],
                    exports: [StructureListSearchComponent, StructureListComponent, StructureDetailsComponent, CardComponent],
                    imports: [
                        CommonModule,
                        FlexModule,
                        ReactiveFormsModule,
                        SvgIconModule,
                        ButtonModule,
                        ModalModule,
                        DayModule,
                        PhoneModule,
                        DistanceModule,
                        TextInputModalModule
                    ]
                }]
        }], ctorParameters: function () {
        return [{ type: undefined, decorators: [{
                        type: Optional
                    }, {
                        type: Inject,
                        args: [SEARCH_TOKEN]
                    }] }, { type: undefined, decorators: [{
                        type: Optional
                    }, {
                        type: Inject,
                        args: [STRUCTURE_TOKEN]
                    }] }];
    } });

class Category {
    constructor(obj) {
        Object.assign(this, obj, {
            modules: obj && obj.modules
                ? obj.modules.map((module) => new Module(module.display_id ? module.display_id : module.id, module.text, module.text))
                : null
        });
    }
    isBaseSkills() {
        return this.id === 'baseSkills';
    }
    isRigthtsAccess() {
        return this.id === 'accessRight';
    }
    isParentingHelp() {
        return this.id === 'parentingHelp';
    }
    isDigitalCultureSecurity() {
        return this.id === 'digitalCultureSecurity';
    }
    isSocialAndProfessional() {
        return this.id === 'socialAndProfessional';
    }
}

/**
 * Generated bundle index. Do not edit.
 */

export { AccessModality, Address, CardComponent, Category, Day, Demarches, Equipment, Filter, GEOMETRY_POLYGON_TOKEN, GeoJson, INITIAL_POSITION_TOKEN, Labels, MARKER_TYPE_TOKEN, MapComponent, MapModule, Module, OpeningDay, PersonalOffer, PublicCategorie, SEARCH_TOKEN, STRUCTURE_TOKEN, Structure, StructureDetailsComponent, StructureListComponent, StructureListSearchComponent, StructureModule, Time, TypeModal, Week, Weekday, ZOOM_LEVEL_TOKEN, typeStructureEnum };
//# sourceMappingURL=gouvfr-anct-mediation-numerique.mjs.map