{"version":3,"file":"sinequa-components-result.mjs","sources":["../../../projects/components/result/result-extracts/result-extracts.ts","../../../projects/components/result/result-extracts/result-extracts.html","../../../projects/components/result/result-icon/icons.ts","../../../projects/components/result/result-icon/result-icon.ts","../../../projects/components/result/result-icon/result-icon.html","../../../projects/components/result/result-missing-terms/result-missing-terms.ts","../../../projects/components/result/result-missing-terms/result-missing-terms.html","../../../projects/components/result/result-title/result-title.ts","../../../projects/components/result/result-title/result-title.html","../../../projects/components/result/result-source/result-source.ts","../../../projects/components/result/result-source/result-source.html","../../../projects/components/result/result-thumbnail/result-thumbnail.ts","../../../projects/components/result/result-thumbnail/result-thumbnail.html","../../../projects/components/result/user-rating/user-rating.ts","../../../projects/components/result/user-rating/user-rating.html","../../../projects/components/result/sponsored-results/sponsored-results.ts","../../../projects/components/result/sponsored-results/sponsored-results.html","../../../projects/components/result/results-counter/results-counter.ts","../../../projects/components/result/results-counter/results-counter.html","../../../projects/components/result/result-duplicates/result-duplicates.component.ts","../../../projects/components/result/result-duplicates/result-duplicates.component.html","../../../projects/components/result/result-duplicates-list/result-duplicates-list.component.ts","../../../projects/components/result/result-duplicates-list/result-duplicates-list.component.html","../../../projects/components/result/result-duplicates-spacer/result-duplicates-spacer.component.ts","../../../projects/components/result/result-module.ts","../../../projects/components/result/messages/en.ts","../../../projects/components/result/messages/fr.ts","../../../projects/components/result/messages/de.ts","../../../projects/components/result/messages/index.ts","../../../projects/components/result/sinequa-components-result.ts"],"sourcesContent":["import {Component, Input, OnChanges} from \"@angular/core\";\nimport {Utils} from \"@sinequa/core/base\";\nimport {Record} from \"@sinequa/core/web-services\";\n\n@Component({\n    selector: \"sq-result-extracts\",\n    templateUrl: \"./result-extracts.html\",\n    styles: [`\np, ul {\n    margin: 0;\n}\n.sq-single-extract {\n    display: -webkit-box;\n    -webkit-line-clamp: var(--line-clamp, 4);\n    -webkit-box-orient: vertical;\n}\n.extracts-text {\n    word-break: break-word;\n}\n.sq-matching-passage {\n    max-height: 6em;\n    overflow: hidden;\n}\n    `],\n    standalone: false\n})\nexport class ResultExtracts implements OnChanges {\n    @Input() record: Record;\n    @Input() showTextAlways: boolean;\n    @Input() showLongExtracts: boolean;\n    @Input() hideDate: boolean;\n    @Input() maxLongExtracts: number;\n    @Input() dateFormat: Intl.DateTimeFormatOptions = {year: 'numeric', month: 'short', day: 'numeric'};\n    text: string | undefined;\n    longExtracts: string[] | undefined;\n    extractsClass: string;\n\n    ngOnChanges() {\n        this.text = undefined;\n        this.longExtracts = undefined;\n        if (this.showTextAlways) {\n            this.text = Utils.encodeHTML(this.record.text);\n            this.extractsClass = \"sq-text-extracts\";\n        }\n        else {\n            if (this.showLongExtracts && this.record.extracts) {\n                this.longExtracts = this.record.extracts\n                    .filter((extract,i) => (!this.maxLongExtracts || i < this.maxLongExtracts) && !!extract.highlighted) // Note: keep only extracts with 11.7 format - older format not supported\n                    .map(extract => extract.highlighted.replace(/\\{b\\}/g, \"<strong>\").replace(/\\{nb\\}/g, \"</strong>\"));\n                this.extractsClass = \"sq-long-extracts\";\n            }\n            else if (this.record.matchingpassages?.passages?.[0]) {\n              this.text = this.record.matchingpassages.passages?.[0].highlightedText;\n              this.extractsClass = \"sq-matching-passage\";\n            }\n            else if (this.record.relevantExtracts) {\n                this.text = this.record.relevantExtracts;\n                this.extractsClass = \"sq-relevant-extracts\";\n            }\n            else {\n                this.text = Utils.encodeHTML(this.record.text);\n                this.extractsClass = \"sq-text-extracts\";\n            }\n        }\n\n    }\n\n}\n","<ng-container *ngIf=\"text || longExtracts\">\n    <p *ngIf=\"text\" class=\"{{extractsClass}} sq-text sq-single-extract\">\n        <span *ngIf=\"record.modified && !hideDate\" class=\"extracts-date\">{{record.modified | sqDate:dateFormat}}{{!!text ? ' - ' : ''}}</span>\n        <span class=\"extracts-text\" [innerHTML]=\"text\"></span>\n    </p>\n    <ng-container *ngIf=\"longExtracts\">\n        <p *ngIf=\"record.modified && !hideDate\" class=\"{{extractsClass}} extracts-date sq-text\">{{record.modified | sqDate:dateFormat}}</p>\n        <ul *ngIf=\"longExtracts\" class=\"{{extractsClass}} sq-text\">\n            <li *ngFor=\"let extract of longExtracts\" [innerHTML]=\"extract\"></li>\n        </ul>\n    </ng-container>\n</ng-container>\n","export interface IconFormat {\r\n    icon: string;\r\n    color?: string;\r\n}\r\n\r\nexport const defaultFormatIcons: Record<string, IconFormat> = {\r\n    \"extractslocations\": { icon: \"far fa-file-alt\" },\r\n    \"matchlocations\": { icon: \"far fa-flag\" },\r\n    \"geo\": { icon: \"fas fa-map-marker-alt\" },\r\n    \"person\": { icon: \"fas fa-user\" },\r\n    \"company\": { icon: \"fas fa-building\" },\r\n    \"title\": { icon: \"fas fa-tag\" },\r\n    \"modified\": { icon: \"far fa-calendar-alt\" },\r\n    \"size\": { icon: \"fas fa-weight-hanging\" },\r\n    \"treepath\": { icon: \"fas fa-folder-open\" },\r\n    \"filename\": { icon: \"far fa-file-alt\" },\r\n    \"authors\": { icon: \"fas fa-user-edit\" },\r\n    \"accesslists\": { icon: \"fas fa-lock\" },\r\n    \"doctype\": { icon: \"far fa-file\" },\r\n    \"documentlanguages\": { icon: \"fas fa-globe-americas\" },\r\n    \"globalrelevance\": { icon: \"far fa-star\" },\r\n    \"indexationtime\": { icon: \"fas fa-search\" },\r\n    \"concepts\": { icon: \"far fa-comment-dots\" },\r\n    \"keywords\": { icon: \"fas fa-tags\" },\r\n    \"matchingpartnames\": { icon: \"fas fa-align-left\" },\r\n    \"msgfrom\": { icon: \"fas fa-envelope\" },\r\n    \"msgto\": { icon: \"fas fa-envelope-open-text\" },\r\n\r\n    \"file\": { icon: \"far fa-file\" },\r\n    \"htm\": { icon: \"fas fa-globe-europe\", color: '#4545bf' },\r\n    \"html\": { icon: \"fas fa-globe-europe\", color: '#4545bf' },\r\n    \"xhtm\": { icon: \"fas fa-globe-europe\", color: '#4545bf' },\r\n    \"xhtml\": { icon: \"fas fa-globe-europe\", color: '#4545bf' },\r\n    \"mht\": { icon: \"fas fa-globe-europe\", color: '#4545bf' },\r\n    \"doc\": { icon: \"far fa-file-word\", color: '#3f3fca' },\r\n    \"docx\": { icon: \"far fa-file-word\", color: '#3f3fca' },\r\n    \"docm\": { icon: \"far fa-file-word\", color: '#3f3fca' },\r\n    \"dot\": { icon: \"far fa-file-word\", color: '#3f3fca' },\r\n    \"dotx\": { icon: \"far fa-file-word\", color: '#3f3fca' },\r\n    \"dotm\": { icon: \"far fa-file-word\", color: '#3f3fca' },\r\n    \"rtf\": { icon: \"far fa-file-word\", color: '#3f3fca' },\r\n    \"odt\": { icon: \"far fa-file-word\", color: 'grey' },\r\n    \"ott\": { icon: \"far fa-file-word\", color: 'grey' },\r\n    \"gdoc\": { icon: \"far fa-file-word\", color: 'blue' },\r\n    \"xls\": { icon: \"far fa-file-excel\", color: 'green' },\r\n    \"xlsx\": { icon: \"far fa-file-excel\", color: 'green' },\r\n    \"xlt\": { icon: \"far fa-file-excel\", color: 'green' },\r\n    \"xltx\": { icon: \"far fa-file-excel\", color: 'green' },\r\n    \"xlsm\": { icon: \"far fa-file-excel\", color: 'green' },\r\n    \"xltm\": { icon: \"far fa-file-excel\", color: 'green' },\r\n    \"gsheet\": { icon: \"far fa-file-excel\", color: 'darkgreen' },\r\n    \"ods\": { icon: \"far fa-file-excel\", color: 'lightgreen' },\r\n    \"ots\": { icon: \"far fa-file-excel\", color: 'lightgreen' },\r\n    \"ppt\": { icon: \"far fa-file-powerpoint\", color: '#e64b30' },\r\n    \"pptx\": { icon: \"far fa-file-powerpoint\", color: '#e64b30' },\r\n    \"pptm\": { icon: \"far fa-file-powerpoint\", color: '#e64b30' },\r\n    \"pptm2\": { icon: \"far fa-file-powerpoint\", color: '#e64b30' },\r\n    \"pps\": { icon: \"far fa-file-powerpoint\", color: '#e64b30' },\r\n    \"ppsx\": { icon: \"far fa-file-powerpoint\", color: '#e64b30' },\r\n    \"ppsm\": { icon: \"far fa-file-powerpoint\", color: '#e64b30' },\r\n    \"pot\": { icon: \"far fa-file-powerpoint\", color: '#e64b30' },\r\n    \"potx\": { icon: \"far fa-file-powerpoint\", color: '#e64b30' },\r\n    \"potm\": { icon: \"far fa-file-powerpoint\", color: '#e64b30' },\r\n    \"odp\": { icon: \"far fa-file-powerpoint\", color: 'red' },\r\n    \"otp\": { icon: \"far fa-file-powerpoint\", color: 'red' },\r\n    \"gslides\": { icon: \"far fa-file-powerpoint\", color: 'orange' },\r\n    \"pdf\": { icon: \"far fa-file-pdf\", color: '#ec2e2e' },\r\n    \"jpg\": { icon: \"far fa-file-image\", color: '#4545bf' },\r\n    \"jpeg\": { icon: \"far fa-file-image\", color: '#4545bf' },\r\n    \"bmp\": { icon: \"far fa-file-image\", color: '#4545bf' },\r\n    \"tiff\": { icon: \"far fa-file-image\", color: '#4545bf' },\r\n    \"tif\": { icon: \"far fa-file-image\", color: '#4545bf' },\r\n    \"gif\": { icon: \"far fa-file-image\", color: '#4545bf' },\r\n    \"png\": { icon: \"far fa-file-image\", color: '#4545bf' },\r\n    \"mp4\": { icon: \"far fa-file-video\", color: '#4545bf' },\r\n    \"flv\": { icon: \"far fa-file-video\", color: '#4545bf' },\r\n    \"swf\": { icon: \"far fa-file-video\", color: '#4545bf' },\r\n    \"mts\": { icon: \"far fa-file-video\", color: '#4545bf' },\r\n    \"divx\": { icon: \"far fa-file-video\", color: '#4545bf' },\r\n    \"wmv\": { icon: \"far fa-file-video\", color: '#4545bf' },\r\n    \"avi\": { icon: \"far fa-file-video\", color: '#4545bf' },\r\n    \"mov\": { icon: \"far fa-file-video\", color: '#4545bf' },\r\n    \"mpg\": { icon: \"far fa-file-video\", color: '#4545bf' },\r\n    \"mpeg\": { icon: \"far fa-file-video\", color: '#4545bf' },\r\n    \"asf\": { icon: \"far fa-file-video\", color: '#4545bf' },\r\n    \"rm\": { icon: \"far fa-file-video\", color: '#4545bf' },\r\n    \"mp3\": { icon: \"far fa-file-audio\", color: 'lightblue' },\r\n    \"wav\": { icon: \"far fa-file-audio\", color: 'lightblue' },\r\n    \"ogg\": { icon: \"far fa-file-audio\", color: 'lightblue' },\r\n    \"wma\": { icon: \"far fa-file-audio\", color: 'lightblue' },\r\n    \"aac\": { icon: \"far fa-file-audio\", color: 'lightblue' },\r\n    \"m3u\": { icon: \"far fa-file-audio\", color: 'lightblue' },\r\n    \"txt\": { icon: \"far fa-file-alt\", color: '#202020' },\r\n    \"text\": { icon: \"far fa-file-alt\", color: '#202020' },\r\n    \"xml\": { icon: \"far fa-file-code\", color: '#4545bf' },\r\n    \"cs\": { icon: \"far fa-file-code\", color: '#4545bf' },\r\n    \"java\": { icon: \"far fa-file-code\", color: '#4545bf' },\r\n    \"cpp\": { icon: \"far fa-file-code\", color: '#4545bf' },\r\n    \"c\": { icon: \"far fa-file-code\", color: '#4545bf' },\r\n    \"h\": { icon: \"far fa-file-code\", color: '#4545bf' },\r\n    \"hpp\": { icon: \"far fa-file-code\", color: '#4545bf' },\r\n    \"js\": { icon: \"far fa-file-code\", color: '#4545bf' },\r\n    \"ts\": { icon: \"far fa-file-code\", color: '#4545bf' },\r\n    \"zip\": { icon: \"far fa-file-archive\", color: 'yellow' },\r\n    \"7zip\": { icon: \"far fa-file-archive\", color: 'yellow' },\r\n    \"7z\": { icon: \"far fa-file-archive\", color: 'yellow' },\r\n    \"rar\": { icon: \"far fa-file-archive\", color: 'yellow' },\r\n    \"gz\": { icon: \"far fa-file-archive\", color: 'yellow' },\r\n    \"notes\": { icon: \"fas fa-file-invoice\", color: 'orange' },\r\n    \"quickr\": { icon: \"fas fa-file-invoice\", color: 'orange' },\r\n    \"email\": { icon: \"far fa-envelope\", color: 'black' },\r\n    \"mail\": { icon: \"far fa-envelope\", color: 'black' },\r\n    \"msg\": { icon: \"far fa-envelope\", color: 'black' },\r\n    \"mdb\": { icon: \"far fa-database\", color: 'purple' },\r\n    \"odb\": { icon: \"far fa-database\", color: 'darkred' },\r\n    \"otb\": { icon: \"far fa-database\", color: 'darkred' },\r\n    \"xsn\": { icon: \"fas fa-file-excel\", color: 'purple' },\r\n    \"gform\": { icon: \"fas fa-file-excel\", color: 'purple' },\r\n    \"one\": { icon: \"far fa-book\", color: 'purple' },\r\n    \"odf\": { icon: \"fas fa-file-medical-alt\", color: 'grey' },\r\n    \"otf\": { icon: \"fas fa-file-medical-alt\", color: 'grey' },\r\n    \"vsdx\": { icon: \"far fa-object-group\", color: 'purple' },\r\n    \"vsx\": { icon: \"far fa-object-group\", color: 'purple' },\r\n    \"vtx\": { icon: \"far fa-object-group\", color: 'purple' },\r\n    \"vdx\": { icon: \"far fa-object-group\", color: 'purple' },\r\n    \"vssx\": { icon: \"far fa-object-group\", color: 'purple' },\r\n    \"vstx\": { icon: \"far fa-object-group\", color: 'purple' },\r\n    \"vsdm\": { icon: \"far fa-object-group\", color: 'purple' },\r\n    \"vssm\": { icon: \"far fa-object-group\", color: 'purple' },\r\n    \"vstm\": { icon: \"far fa-object-group\", color: 'purple' },\r\n    \"vdw\": { icon: \"far fa-object-group\", color: 'purple' },\r\n    \"vsd\": { icon: \"far fa-object-group\", color: 'purple' },\r\n    \"vss\": { icon: \"far fa-object-group\", color: 'purple' },\r\n    \"vst\": { icon: \"far fa-object-group\", color: 'purple' },\r\n    \"odg\": { icon: \"far fa-object-group\", color: 'orange' },\r\n    \"otg\": { icon: \"far fa-object-group\", color: 'orange' },\r\n    \"gdraw\": { icon: \"far fa-object-group\", color: 'red' },\r\n    \"pub\": { icon: \"far fa-object-group\", color: 'darkgreen' },\r\n    \"ldap\": { icon: \"far fa-users\", color: 'brown' },\r\n    \"ad\": { icon: \"far fa-users\", color: 'brown' },\r\n    \"mmp\": { icon: \"fas fa-file-medical\", color: 'grey' },\r\n    \"mppx\": { icon: \"fas fa-file-medical\", color: 'grey' },\r\n}","import { Component, Input, OnChanges } from \"@angular/core\";\nimport { Record as SqRecord } from \"@sinequa/core/web-services\";\nimport { IconFormat, defaultFormatIcons } from \"./icons\";\n\n@Component({\n    selector: \"sq-result-icon\",\n    templateUrl: \"./result-icon.html\",\n    standalone: false\n})\nexport class ResultIcon implements OnChanges {\n    /**\n     * Record which file extension is displayed as an icon\n     */\n    @Input() record: SqRecord;\n\n    /**\n     * Any forced icon to fetch from the mappings list\n     */\n    @Input() icon?: string;\n\n    /**\n     * Any icons overriding elements\n     * This will still use the default icons but will patch it with the provided data\n     */\n    @Input() set formatIcons(icons: Record<string, IconFormat>) {\n        this._formatIcons = { ...defaultFormatIcons, ...(icons || {}) }\n    }\n\n    get formatIcons() {\n        return this._formatIcons;\n    }\n\n    /**\n     * Integer controlling the icon's size\n     */\n    @Input() size: number = 1;\n\n    /**\n     * Whether the icon should be colorized\n     */\n    @Input() colorize: boolean = true;\n\n    @Input() otherClass: string = 'fa-fw';\n\n    private _formatIcons = defaultFormatIcons;\n\n    iconClass: string | undefined;\n    color: string | undefined;\n\n    ngOnChanges(): void {\n        this.iconClass = undefined;\n        this.color = undefined;\n\n        if (this.record || this.icon) {\n            const mapping = this.formatIcons[this.icon || this.record.fileext] || this.formatIcons.file;\n            this.iconClass = mapping.icon;\n            this.color = this.colorize ? mapping.color : undefined;\n        }\n    }\n}","<span *ngIf=\"iconClass\"\r\n    class=\"{{iconClass}} {{otherClass}} sq-icon-file-{{record?.fileext}}\"\r\n    [style.color]=\"color\"\r\n    [style.font-size.em]=\"size\"\r\n    title=\"{{icon || record.fileext}}\">\r\n</span>","import {ChangeDetectionStrategy, Component, Input, OnChanges} from \"@angular/core\";\nimport {SearchService} from \"@sinequa/components/search\";\nimport {Query} from \"@sinequa/core/app-utils\";\nimport {Utils} from \"@sinequa/core/base\";\nimport {Record} from \"@sinequa/core/web-services\";\n\n@Component({\n    selector: \"sq-result-missing-terms\",\n    templateUrl: \"./result-missing-terms.html\",\n    styleUrls: [\"./result-missing-terms.css\"],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false\n})\nexport class ResultMissingTerms implements OnChanges {\n    @Input() record: Record;\n    @Input() query?: Query;\n    @Input() showMustInclude = true;\n\n    missingTerms: string[];\n\n    constructor(\n        public searchService: SearchService\n    ) {}\n\n    ngOnChanges() {\n        this.missingTerms = this.record.termspresence\n            ?.filter(tp => Utils.eqNC(tp.presence, \"missing\"))\n            .map(tp => tp.term) || [];\n    }\n\n    mustInclude(term: string) {\n        const query = this.query || this.searchService.query;\n        // Strip surrounding brackets if the term uses adjacent syntax (e.g. \"[exit code]\" → \"exit code\")\n        const bracketMatch = term.match(/^\\[(.+)\\]$/);\n        const cleanTerm = bracketMatch ? bracketMatch[1] : term;\n        if(query.text) {\n            // Escape special regex characters to avoid regex injection (e.g. brackets becoming character classes)\n            const escapedTerm = cleanTerm.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n            query.text = query.text.replace(new RegExp(`\\\\b${escapedTerm}\\\\b`, 'gi'), \"\");\n        }\n        query.addConcepts([cleanTerm], '+');\n        if(this.searchService.isSearchRouteActive() && query === this.searchService.query) {\n            this.searchService.search();\n        }\n    }\n}\n","<ng-container *ngIf=\"missingTerms.length > 0\">\n    <span class=\"sq-missing-terms-label\">{{'msg#results.missingTerms' | sqMessage}}</span>\n    <span class=\"sq-missing-terms\">\n        <span *ngFor=\"let term of missingTerms\" class=\"sq-missing-term ms-1\">{{term}}</span>\n    </span>\n    <ng-container *ngIf=\"showMustInclude\">\n        <span class=\"sq-missing-terms-label ms-1\">{{'msg#results.mustInclude' | sqMessage}}</span>\n        <span class=\"sq-missing-terms\">\n            <a role=\"button\" *ngFor=\"let term of missingTerms\" (click)=\"mustInclude(term)\" class=\"ms-1\">{{term}}</a>\n        </span>\n    </ng-container>\n</ng-container>\n","import { Component, EventEmitter, Input, OnChanges, Output, ViewEncapsulation } from \"@angular/core\";\n\nimport { SearchService } from \"@sinequa/components/search\";\nimport { Utils } from \"@sinequa/core/base\";\nimport { AuditEventType, Record } from \"@sinequa/core/web-services\";\n\n\n@Component({\n    selector: \"sq-result-title\",\n    templateUrl: \"./result-title.html\",\n    styles: [`\nsq-result-title {\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n}\n.match-highlight {\n    font-weight: bold;\n    font-style: italic;\n}\n    `],\n    encapsulation: ViewEncapsulation.None // Currently necessary for the match-highlight\n    ,\n    standalone: false\n})\nexport class ResultTitle implements OnChanges {\n    /** The record which title we want to display */\n    @Input() record: Record;\n    /**\n     * \"open\" mode: Display a link which opens the original document (url1) if available, or emits a titleClicked event to perform an action otherwise\n     * \"action\" mode: Display a link which emits a titleClicked event to perform an action\n     * \"open-if-url\" mode: Display a link which opens the original document (url1) if available, or displays a SPAN with the title otherwise\n     * \"display\" mode: Only display a SPAN element (no link)\n     */\n    @Input() titleLinkBehavior: \"open\" | \"action\" | \"open-if-url\" | \"display\" = \"open\";\n    /** Optional field name containing the title. Otherwise displayTitle or title are used */\n    @Input() field: string = \"\";\n    /** Optional custom target used in the link */\n    @Input() originalDocTarget: string | undefined;\n    /** Column containing the original document's URL */\n    @Input() urlColumn = \"url1\";\n    /** Event emitter to perform actions at the parent level */\n    @Output() titleClicked = new EventEmitter<boolean>();   // TODO: Custom options to get title & URL (replace pluginservice)\n\n    public title: string;\n\n    constructor(\n        public searchService: SearchService) {\n    }\n\n    public ngOnChanges() {\n        this.title = this.getTitle();\n    }\n\n    get hasLinkBehaviour(): boolean {\n        return this.titleLinkBehavior === \"open\" || (this.titleLinkBehavior === \"open-if-url\" && !!this.url);\n    }\n\n    /**\n     * A span is shown in \"display\" mode or \"open-if-url\" mode when no url is present\n     * A link is shown in all other cases (even in \"open\" mode with no url, which is equivalent to \"action\" mode)\n     */\n    get hasSpanBehaviour(): boolean {\n        return this.titleLinkBehavior === \"display\" || (this.titleLinkBehavior === \"open-if-url\" && !this.url);\n    }\n\n    public get href(): string {\n        return (this.hasLinkBehaviour && this.url) || \"#\";\n    }\n\n    public get target(): string {\n        return (this.hasLinkBehaviour && this.url) ? this.originalDocTarget || '_blank' : \"_self\";\n    }\n\n    public get url(): string | undefined {\n        return this.record[this.urlColumn] || this.record.originalUrl;\n    }\n\n    private getTitle(): string {\n        return Utils.escapeHtml(this.record[this.field])\n            || this.record.displayTitle\n            || Utils.escapeHtml(this.record.title);\n    }\n\n    public click() : boolean {\n        const isLink = this.hasLinkBehaviour && !!this.url; // true if this is a regular link (performs the default action)\n        if(isLink) {\n          const type = this.record[this.urlColumn]? AuditEventType.Click_ResultLink : AuditEventType.Doc_CacheOriginal;\n          this.searchService.notifyOpenOriginalDocument(this.record, undefined, type);\n        }\n        this.titleClicked.emit(isLink); // Can be use to trigger actions\n        return isLink;\n    }\n}\n","<!-- Display a regular SPAN if the component is supposed to have a link behavior but has no URL -->\n<span *ngIf=\"hasSpanBehaviour\" class=\"sq-result-title\" title=\"{{this.record.title}}\" [innerHTML]=\"title\"></span>\n<!-- Display a link if a URL exists or the component is used to trigger an action -->\n<a *ngIf=\"!hasSpanBehaviour\" class=\"sq-result-title\" title=\"{{this.record.title}}\" href=\"{{href}}\" target=\"{{target}}\" [innerHTML]=\"title\" (click)=\"click()\"></a>\n","import { ChangeDetectionStrategy, Component, Input } from \"@angular/core\";\n\nimport { SearchService } from \"@sinequa/components/search\";\nimport { ValueItem } from \"@sinequa/core/app-utils\";\nimport { AuditEventType, Record } from \"@sinequa/core/web-services\";\n\n@Component({\n    selector: \"sq-result-source\",\n    templateUrl: \"./result-source.html\",\n    styleUrls: [\"./result-source.scss\"],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false\n})\nexport class ResultSource {\n    @Input() record: Record;\n    @Input() treepathColumn = \"treepath\";\n    @Input() displayTreepath: boolean;\n    @Input() displayTreepathMinLevel = 0;\n    @Input() displayTreepathMaxLevel: number;\n    @Input() urlColumn = \"url1\";\n    @Input() displayUrl: boolean = true;\n\n    constructor(\n        public searchService: SearchService) {\n    }\n\n    get source(): ValueItem[] {\n        if(this.displayTreepath && this.record[this.treepathColumn]) {\n            const treepath = this.record[this.treepathColumn][0] as string;\n            if(treepath?.length >= 2) {\n                return treepath.substring(1, treepath.length-1).split('/')\n                    .slice(this.displayTreepathMinLevel, this.displayTreepathMaxLevel)\n                    .map((path,i,array) => ({\n                            display: path,\n                            value: '/'+array.slice(0,i+1).join('/')+'/*'\n                        }));\n            }\n        }\n        return [];\n    }\n\n    get url(): string {\n        return this.displayUrl && this.record[this.urlColumn];\n    }\n\n    get urlDecoded(): string {\n        const url = this.url;\n        try {\n            return decodeURI(url);\n        }\n        catch(e) {\n            return url;\n        }\n    }\n\n    select(item: ValueItem){\n        if(this.searchService.addFieldSelect(this.treepathColumn, item)) {\n            this.searchService.search();\n        }\n        return false;\n    }\n\n    notifyClick() {\n      if(this.url) {\n        this.searchService.notifyOpenOriginalDocument(this.record, undefined, AuditEventType.Click_ResultLink);\n      }\n    }\n\n}\n","<span>\n    <a href=\"#\" *ngFor=\"let s of source\" class=\"path\" (click)=\"select(s)\" title=\"Select this source\">{{s.display | sqMessage}}</a>\n</span>\n<span *ngIf=\"source.length > 0 && url\"> - </span>\n<a *ngIf=\"url\" (click)=\"notifyClick()\" href=\"{{url}}\" target=\"_blank\">{{urlDecoded}}</a>\n","import {Component, Input, ChangeDetectionStrategy, OnChanges} from \"@angular/core\";\nimport {Record} from \"@sinequa/core/web-services\";\nimport {AppService} from \"@sinequa/core/app-utils\";\nimport {SearchService} from \"@sinequa/components/search\";\n\n@Component({\n    selector: \"sq-result-thumbnail\",\n    templateUrl: \"./result-thumbnail.html\",\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false\n})\nexport class ResultThumbnail implements OnChanges {\n    @Input() record: Record;\n    @Input() linkBehavior = true;\n    @Input() thumbnailColumn: string;\n    @Input() defaultThumbnail: string;\n    @Input() urlColumn = \"url1\";\n\n    thumbnailUrl?: string;\n    href?: string;\n\n    constructor(\n        private appService: AppService,\n        private searchService: SearchService) {\n    }\n\n    ngOnChanges(): void {\n        let url = this.record[this.thumbnailColumn] // Custom column, if any\n               || this.record.thumbnailUrl // Standard column\n               || this.defaultThumbnail; // Default column\n        this.thumbnailUrl = this.appService.updateUrlForCors(url);\n        this.href = this.linkBehavior? this.record[this.urlColumn] : undefined;\n    }\n\n    onClick() {\n        this.searchService.notifyOpenOriginalDocument(this.record);\n    }\n}\n","<a *ngIf=\"thumbnailUrl && href\" href=\"{{href}}\" target=\"_blank\" (click)=\"onClick()\">\n  <img src=\"{{thumbnailUrl}}\">\n</a>\n\n<img *ngIf=\"thumbnailUrl && !href\" src=\"{{thumbnailUrl}}\">\n","import {Component, OnInit, Input, ChangeDetectorRef} from \"@angular/core\";\nimport {Record, CCRating, UserRatingsWebService, UserRatingResponse} from \"@sinequa/core/web-services\";\n\n@Component({\n    selector: \"sq-user-rating\",\n    templateUrl: \"./user-rating.html\",\n    styleUrls: [\"./user-rating.css\"],\n    standalone: false\n})\nexport class UserRating implements OnInit {\n    @Input() record: Record;\n    @Input() ratingsColumn: string;\n    @Input() averageColumn: string;\n    @Input() updateDocWeight: boolean;\n    @Input() count: number;\n    @Input() values: string;\n    @Input() titles: string;\n    @Input() caption: string;\n    @Input() showAverage: boolean;\n    userRatingIndex: number;\n    averageRatingIndex: number;\n    ratingValues: string[];\n\n    constructor(\n        private userRatingService: UserRatingsWebService,\n        private changeDetector: ChangeDetectorRef) {\n    }\n\n    ngOnInit() {\n        this.ensureRatingValues();\n        this.handleResponse(this.userRatingService.getRecordRating(this.record, this.getCCRating()));\n    }\n\n    getCCRating(): CCRating {\n        return {\n            ratingsColumn: this.ratingsColumn,\n            averageColumn: this.averageColumn,\n            updateDocWeight: this.updateDocWeight,\n            ratingsDistribution: this.ratingValues\n        };\n    }\n\n    get messageParams() {\n        return {\n            values: {\n                average: this.getAverageRating()\n            }\n        };\n    }\n\n    getTitle(ratingIndex: number): string {\n        if (this.titles) {\n            return this.titles.split(\";\")[ratingIndex] || \"\";\n        }\n        else {\n            return \"\";\n        }\n    }\n\n    getRating(ratingIndex: number): string {\n        return this.ratingValues[ratingIndex];\n    }\n\n    getAverageRating(): string {\n        if (this.averageRatingIndex < 0) {\n            return \"\";\n        }\n        else {\n            return this.ratingValues[this.averageRatingIndex];\n        }\n    }\n\n    select(selectedRatingIndex: number) {\n        //If selected rating was already selected, remove the rating\n        if (this.userRatingIndex === selectedRatingIndex) {\n            this.userRatingService.deleteRating(this.record, this.getCCRating()).subscribe(this.handleResponse);\n        }\n        else {\n            this.userRatingService.setRating(this.record, selectedRatingIndex, this.getCCRating()).subscribe(this.handleResponse);\n        }\n    }\n\n    private ensureRatingValues() {\n        if (!this.ratingValues) {\n            const count = this.count || 0;\n\n            //Work out rating value range\n            if (this.values) {\n                //Use predefined values\n                this.ratingValues = this.values.split(\";\");\n\n                //Initialize missing values - so that ratingValues.length matches config.count\n                for (let i = this.ratingValues.length; i < count; i++) {\n                    this.ratingValues.push((i + 1).toString());\n                }\n            }\n            else {\n                //Generates [1, ... config.count]\n                this.ratingValues = Array(count).fill(0).map((_, i) => (i + 1).toString());\n            }\n        }\n    }\n\n    private handleResponse = (response: UserRatingResponse) => {\n        this.userRatingIndex    = response.rating;\n        this.averageRatingIndex = response.averagerating;\n\n        this.changeDetector.markForCheck();\n    }\n}\n","<ul class=\"sq-user-rating-stars\">\n    <!-- caption -->\n    <li *ngIf=\"caption\" class=\"sq-user-rating-caption\">\n        <span>{{caption|sqMessage}}</span>\n    </li>\n    <!-- rating stars -->\n    <li *ngFor=\"let r of ratingValues; let i = index\" class=\"sq-user-rating-item\">\n        <a class=\"sq-user-rating-star\" title=\"{{getTitle(i)}}\" href=\"javascript:void(0)\" (click)=\"select(i)\">\n            <span class=\"{{(i <= userRatingIndex) ? 'fas fa-star' : 'far fa-star'}}\"></span>\n        </a>\n    </li>\n    <!-- average rating -->\n    <li *ngIf=\"showAverage && getAverageRating() !== undefined && getAverageRating() !== ''\" class=\"sq-user-rating-average\">\n        <span>{{'msg#userRatings.average'|sqMessage:messageParams}}</span>\n    </li>\n</ul>\n","import { ChangeDetectorRef, Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\n\nimport { SearchService } from \"@sinequa/components/search\";\nimport { AppService, Query } from \"@sinequa/core/app-utils\";\nimport { Utils } from \"@sinequa/core/base\";\nimport { AuditEvent, AuditEventType, AuditWebService, LinkResult, SponsoredLinksWebService } from \"@sinequa/core/web-services\";\n\n@Component({\n    selector: 'sq-sponsored-results',\n    templateUrl: './sponsored-results.html',\n    styleUrls: [\"./sponsored-results.scss\"],\n    standalone: false\n})\n\n/**\n * Represent the component that display the sponsored results on result page.\n * NOTE: this class and (its containing file) could have been named SponsoredLinks but this naming causes\n * the file to be flagged as ads by Adblock.\n */\nexport class SponsoredResults implements OnChanges, OnInit {\n    @Input() query: Query;\n    public sponsoredlinks: LinkResult[];\n\n    private lastText: string;\n    private currentPage?: number;\n    private linksQuery: Query;\n    private initDone: boolean;\n    private webService: string;\n\n    constructor(\n        private appService: AppService,\n        private searchService: SearchService,\n        private sponsoredResultsService: SponsoredLinksWebService,\n        private auditService: AuditWebService,\n        private changeDetectorRef: ChangeDetectorRef) {\n    }\n\n    /**\n     * Considers the text of the new query and sees if the list of the sponsored lists needs to be updated.\n     *\n     * @param text The text of the new query.\n     * @memberof SponsoredLinks\n     */\n    private updateSponsoredLinksIfNecessary(text: string): void {\n        if (!this.appService.app) {\n            return; // logout\n        }\n\n        let redoQuery = false;\n        const currentWS = this.getWebService();\n        if (!Utils.eqNC(this.webService, currentWS)) {\n            this.webService = currentWS;\n            redoQuery = true;\n        }\n\n        if (!redoQuery && !Utils.eqNC(this.lastText, text)) {\n            this.lastText = text;\n            redoQuery = true;\n        }\n\n        if (!redoQuery && this.currentPage !== this.searchService.query.page) {\n            this.currentPage = this.searchService.query.page;\n            redoQuery = true;\n        }\n\n        if (redoQuery) {\n            if (!Utils.isEmpty(this.webService) && !Utils.isEmpty(text)) {\n                this.linksQuery.text = text;\n                this.linksQuery.page = this.currentPage;\n                Utils.subscribe(\n                    this.sponsoredResultsService.getLinks(this.linksQuery, this.webService),\n                    (results) => {\n                        this.sponsoredlinks = results?.links?.map(link => ({...link, url: this.getUrl(link)}));\n                        this.auditLinksDisplay();\n                        this.changeDetectorRef.markForCheck();\n                    },\n                    (error) => console.log(`Could not retrieve sponsored links: ${error}.`)\n                );\n            } else {\n                this.sponsoredlinks = [];\n            }\n        }\n    }\n\n    /**\n     * Retrieves the web service for sponsored links.\n     * If it is defined both in the component configuration and the app configuration,\n     * this method returns the one in the component configuration.\n     *\n     * @returns the web service for sponsored links.\n     */\n    private getWebService(): string {\n        return (this.appService.app && this.appService.app.sponsoredLinks) || \"\";\n    }\n\n    ngOnChanges(changes: SimpleChanges) {\n        if (!this.initDone) {\n            this.initialize();\n        }\n\n        if (changes['query'] || changes['results']) {\n            this.updateSponsoredLinksIfNecessary(Utils.trim(this.query.text || \"\"));\n        }\n    }\n\n    private initialize(): void {\n        if (this.initDone) {\n            return;\n        }\n\n        if (this.appService.ccquery) {\n            this.linksQuery = new Query(this.appService.ccquery.name);\n        } else {\n            return;\n        }\n        this.initDone = true;\n    }\n\n    ngOnInit(): void {\n        this.initialize();\n    }\n\n    auditLinksDisplay() {\n        if (!!this.sponsoredlinks && this.sponsoredlinks.length > 0) {\n            const auditEvents: AuditEvent[] = [];\n            this.sponsoredlinks.forEach(link => {\n                auditEvents.push({\n                    type: AuditEventType.Link_Display,\n                    detail: {\n                        resultid: this.searchService.results && this.searchService.results.id,\n                        linkid: link.id,\n                        rank: link.rank,\n                        title: link.title,\n                        url: link.url\n                    }\n                });\n            });\n            this.auditService.notify(auditEvents);\n        }\n    }\n\n    click(link: LinkResult) {\n        this.auditService.notifySponsoredLink(AuditEventType.Link_Click, link,\n            this.searchService.results && this.searchService.results.id || \"\");\n    }\n\n    private getUrl(link: LinkResult): string {\n        return link.url.indexOf('%PREVIEW_URL%') !== -1\n            ? `#/preview?id=${encodeURIComponent(link.url.split('%PREVIEW_URL%')[1])}&query=${encodeURIComponent(this.query.toJsonForQueryString())}`\n            : link.url;\n    }\n}\n","<ul class=\"sq-sponsored-links-list\" *ngIf=\"!!sponsoredlinks && sponsoredlinks.length\" >\n    <li *ngFor=\"let link of sponsoredlinks\" class=\"sponsored-item\" >\n        <div class=\"sq-sponsored-link-view\">\n            <div *ngIf=\"link.thumbnail\" class=\"sq-sponsored-link-view-thumbnail\">\n                <a href=\"{{link.url}}\" (click)=\"click(link)\" target=\"_blank\">\n                    <img src=\"{{link.thumbnail}}\">\n                </a>\n            </div>\n            <div class=\"sq-sponsored-link-view-info\">\n                <a href=\"{{link.url}}\" (click)=\"click(link)\" target=\"_blank\" title=\"{{(link.tooltip || link.title) | sqMessage}}\">{{link.title | sqMessage}}</a>\n                <div *ngIf=\"link.summary\" class=\"sq-sponsored-link-view-summary\">{{link.summary | sqMessage}}</div>\n            </div>\n        </div>\n    </li>\n</ul>\n","import {Input, Component} from \"@angular/core\";\n\n@Component({\n    selector: \"sq-results-counter\",\n    templateUrl: \"./results-counter.html\",\n    styles: [`\n  .sq-results-count {\n    white-space: nowrap;\n  }\n  `],\n    standalone: false\n})\nexport class ResultsCounter {\n  @Input() rowCount: number;\n}\n","<div class=\"sq-results-count\">{{'msg#results.resultsCount' | sqMessage:{values: {count: rowCount} } }}</div>","import { ChangeDetectionStrategy, Component, Input, OnChanges } from \"@angular/core\";\nimport { Record } from \"@sinequa/core/web-services\";\n\n@Component({\n    selector: 'sq-result-duplicates',\n    templateUrl: './result-duplicates.component.html',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false\n})\nexport class ResultDuplicatesComponent implements OnChanges {\n  @Input() record: Record;\n\n  exactDuplicates: number;\n  nearDuplicates: number;\n\n  ngOnChanges() {\n    this.exactDuplicates = (this.record.groupcount || 1) - 1;\n    this.nearDuplicates = this.record.$duplicateCount || 0;\n  }\n}\n","<span *ngIf=\"exactDuplicates\">\n  {{'msg#results.duplicates.exact' | sqMessage:{count: exactDuplicates} }}\n</span>\n<span *ngIf=\"exactDuplicates && nearDuplicates\">\n  {{'msg#results.duplicates.and' | sqMessage }}\n</span>\n<span *ngIf=\"nearDuplicates\">\n  {{'msg#results.duplicates.near' | sqMessage:{count: nearDuplicates} }}\n</span>\n","import { ChangeDetectionStrategy, Component, ContentChild, Input, OnChanges, TemplateRef } from \"@angular/core\";\nimport { SearchService } from \"@sinequa/components/search\";\nimport { AppService } from \"@sinequa/core/app-utils\";\nimport { Record } from \"@sinequa/core/web-services\";\nimport { map, Observable, tap } from \"rxjs\";\n\n@Component({\n    selector: 'sq-result-duplicates-list',\n    templateUrl: './result-duplicates-list.component.html',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false\n})\nexport class ResultDuplicatesListComponent implements OnChanges {\n  @Input() record: Record;\n\n  @ContentChild(TemplateRef) duplicateTpl?: TemplateRef<any>;\n\n  duplicates$: Observable<Record[]> | undefined;\n  searching = false;\n\n  constructor(\n    public searchService: SearchService,\n    public appService: AppService\n  ) {}\n\n  ngOnChanges() {\n    const groupByFields = this.getGroupByFields();\n    this.duplicates$ = undefined;\n    if(groupByFields.length > 0) {\n      const query = this.searchService.makeQuery();\n      for(let field of groupByFields) {\n        const value = this.record[field];\n        if(!value) {\n          console.error(`Field ${field} does not exist in record ${this.record.id}`);\n          return;\n        }\n        query.addFilter({field, value});\n      }\n      query.addFilter({field: \"id\", operator: 'neq', value: this.record.id});\n      query.groupBy = 'id'; // Hack to override the group by applied by the web service\n      this.searching = true;\n      this.duplicates$ = this.searchService.getResults(query, undefined, {searchInactive: true}).pipe(\n        tap(r => this.record.groupcount = r.rowCount + 1), // It's possible that this query finds more duplicates than the original groupcount, because it is computed without filter\n        map(r => r.records),\n        tap(() => this.searching = false)\n      );\n    }\n  }\n\n  getGroupByFields(): string[] {\n    // Note: to be replaced by the actual value of the group by clause to be included in the results\n    if(this.searchService.query.groupBy) {\n      return this.searchService.query.groupBy.trim().split(' ');\n    }\n    else if(this.appService.ccquery?.['removeDuplicates']) {\n      if(this.appService.ccquery?.['useNearHash']) {\n        return [\"nearhash\"];\n      }\n      else {\n        return [\"exacthash\"];\n      }\n    }\n    return [];\n  }\n\n}\n","\n<ul class=\"list-group\">\n  <li *ngFor=\"let duplicate of duplicates$ | async \"\n    class=\"list-group-item\">\n    <ng-container *ngTemplateOutlet=\"\n      duplicateTpl || defaultDuplicateTpl;\n      context:{\n        $implicit: duplicate\n      }\"\n    >\n    </ng-container>\n  </li>\n\n  <li *ngIf=\"searching\" class=\"list-group-item text-center\">\n    <span class=\"fas fa-spinner fa-spin\"></span>\n  </li>\n</ul>\n\n<ng-template #defaultDuplicateTpl let-duplicate>\n  <sq-result-source [record]=\"duplicate\" [displayTreepath]=\"true\"></sq-result-source>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from \"@angular/core\";\nimport { Record } from \"@sinequa/core/web-services\";\n\n@Component({\n    selector: 'sq-result-duplicates-spacer',\n    template: '',\n    styleUrls: ['./result-duplicates-spacer.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false\n})\nexport class ResultDuplicatesSpacerComponent {\n  @Input()\n  set record(record: Record) {\n    this.isDuplicate = !!record.$isDuplicate;\n  }\n\n  @HostBinding(\"class.sq-duplicate\")\n  isDuplicate = false;\n}\n","import {NgModule} from \"@angular/core\";\nimport {CommonModule} from \"@angular/common\";\nimport {FormsModule, ReactiveFormsModule} from \"@angular/forms\";\n\nimport {IntlModule} from \"@sinequa/core/intl\";\n\nimport {UtilsModule} from \"@sinequa/components/utils\";\nimport {CollapseModule} from \"@sinequa/components/collapse\";\n\nimport {ResultTitle} from \"./result-title/result-title\";\nimport {ResultSource} from \"./result-source/result-source\";\nimport {ResultExtracts} from \"./result-extracts/result-extracts\";\nimport {ResultMissingTerms} from \"./result-missing-terms/result-missing-terms\";\nimport {ResultThumbnail} from \"./result-thumbnail/result-thumbnail\";\nimport {UserRating} from \"./user-rating/user-rating\";\nimport {SponsoredResults} from './sponsored-results/sponsored-results';\nimport {ResultsCounter} from \"./results-counter/results-counter\";\nimport {ResultIcon} from \"./result-icon/result-icon\";\nimport {ResultDuplicatesComponent} from \"./result-duplicates/result-duplicates.component\";\nimport {ResultDuplicatesListComponent} from \"./result-duplicates-list/result-duplicates-list.component\";\nimport { ResultDuplicatesSpacerComponent } from \"./result-duplicates-spacer/result-duplicates-spacer.component\";\n\n@NgModule({\n    imports: [\n        CommonModule,\n        FormsModule, ReactiveFormsModule,\n\n        IntlModule,\n\n        UtilsModule,\n        CollapseModule\n    ],\n    declarations: [\n        ResultTitle, ResultExtracts,\n        ResultMissingTerms,\n        ResultThumbnail, UserRating,\n        SponsoredResults, ResultsCounter,\n        ResultIcon, ResultSource,\n        ResultDuplicatesComponent, ResultDuplicatesListComponent, ResultDuplicatesSpacerComponent\n    ],\n    exports: [\n        ResultTitle, ResultExtracts,\n        ResultMissingTerms,\n        ResultThumbnail, UserRating,\n        SponsoredResults, ResultsCounter,\n        ResultIcon, ResultSource,\n        ResultDuplicatesComponent, ResultDuplicatesListComponent, ResultDuplicatesSpacerComponent\n    ]\n})\nexport class ResultModule {\n}\n","export default {\n    results: {\n        missingTerms: \"Missing terms:\",\n        mustInclude: \"| Must include:\",\n        resultsCount: \"{count, plural, =0 {no results} one {# result} other {# results}}\",\n        duplicates: {\n          exact: \"{count, plural, =0 {no exact duplicate} one {# exact duplicate} other {# exact duplicates}}\",\n          near: \"{count, plural, =0 {no near duplicate} one {# near duplicate} other {# near duplicates}}\",\n          and: \"and\"\n        },\n    },\n    userRatings: {\n        average: \"Average: {average}\"\n    },\n};\n","export default {\n    results: {\n        missingTerms: \"Termes manquants :\",\n        mustInclude: \"| Doit inclure:\",\n        resultsCount: \"{count, plural, =0 {aucune réponse} one {# réponse} other {# réponses}}\",\n        duplicates: {\n          exact: \"{count, plural, =0 {aucun doublon exact} one {# doublon exact} other {# doublons exacts}}\",\n          near: \"{count, plural, =0 {aucun doublon approximatif} one {# doublon approximatif} other {# doublons approximatifs}}\",\n          and: \"et\"\n        },\n    },\n    userRatings: {\n        average: \"Moyenne : {average}\"\n    },\n};\n","export default {\n    \"results\": {\n        \"missingTerms\": \"fehlende Begriffe:\",\n        \"mustInclude\": \"| Muss enthalten:\",\n        \"resultsCount\": \"{count, plural, =0 {keine Ergebnisse} one {# Ergebnis} other {# Ergebnisse}}\",\n        \"duplicates\": {\n          \"exact\": \"{count, plural, =0 {kein exaktes Duplikat} one {# exaktes Duplikat} other {# exakte Duplikate}}\",\n          \"near\": \"{count, plural, =0 {kein ungefähres Duplikat} one {# ungefähres Duplikat} other {# ungefähre Duplikate}}\",\n          \"and\": \"und\"\n        },\n    },\n    \"userRatings\": {\n        \"average\": \"Durchschnittlich: {average}\"\n    },\n};\n","import {Utils} from \"@sinequa/core/base\";\nimport {enSearch, frSearch, deSearch} from \"@sinequa/components/search\";\nimport {enCollapse, frCollapse, deCollapse} from \"@sinequa/components/collapse\";\n\nimport _enResult from \"./en\";\nimport _frResult from \"./fr\";\nimport _deResult from \"./de\";\n\nconst enResult = Utils.merge({}, _enResult, enSearch, enCollapse);\nconst frResult = Utils.merge({}, _frResult, frSearch, frCollapse);\nconst deResult = Utils.merge({}, _deResult, deSearch, deCollapse);\n\nexport { enResult, frResult, deResult };\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3","i4","i5","i4.ResultSource"],"mappings":"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"}