@netgrif/components-core
Version:
Netgrif Application engine frontend core Angular library
51 lines • 7.33 kB
JavaScript
import { Injectable } from '@angular/core';
import * as i0 from "@angular/core";
/**
* A utility service that aims to provide elasticsearch query string query index names for data set queries.
*
* If your app uses a customised elasticsearch database mapping for Case objects, that affects the way data fields are indexed you must
* provide an updated version of this service, so that search can generate correct queries.
*
* You are encouraged to use this service when creating {@link Filter}s, with elastic query string queries, so that future changes to the
* default mapping don't affect your existing code.
*/
export class SearchIndexResolverService {
KEYWORD = '.keyword';
constructor() { }
/**
* Constructs the index name for the specified field.
*
* Note that almost all combinations are valid and will not throw an error when used to query the database, but not all combinations are
* used by the application engine. The {@link SearchIndex} class has some information about which field types map to which indices, but
* you should consult the backend documentation for more reliable information.
* @param dataFieldIdentifier import ID of the queried data field
* @param index the queried index
* @param keyword whether the keyword of a TEXT index should be queried
* @returns the full name of the specified index
*/
getIndex(dataFieldIdentifier, index, keyword = false) {
return `dataSet.${dataFieldIdentifier}.${index}${keyword ? this.KEYWORD : ''}`;
}
/**
* Constructs the index name for the specified core field.
*
* Note that almost all combinations are valid and will not throw an error when used to query the database, but not all combinations are
* used by the application engine. The {@link SearchIndex} class has some information about which field types map to which indices, but
* you should consult the backend documentation for more reliable information.
* @param index the queried index
* @param keyword whether the keyword of a TEXT index should be queried
* @returns the full name of the specified index
*/
getCoreIndex(index, keyword = false) {
return `${index}${keyword ? this.KEYWORD : ''}`;
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SearchIndexResolverService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SearchIndexResolverService, providedIn: 'root' });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SearchIndexResolverService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}], ctorParameters: () => [] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWluZGV4LXJlc29sdmVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL3NlYXJjaC9zZWFyY2gta2V5d29yZC1yZXNvbHZlci1zZXJ2aWNlL3NlYXJjaC1pbmRleC1yZXNvbHZlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBR3pDOzs7Ozs7OztHQVFHO0FBSUgsTUFBTSxPQUFPLDBCQUEwQjtJQUVuQixPQUFPLEdBQUcsVUFBVSxDQUFDO0lBRXJDLGdCQUFnQixDQUFDO0lBRWpCOzs7Ozs7Ozs7O09BVUc7SUFDRSxRQUFRLENBQUMsbUJBQTJCLEVBQUUsS0FBa0IsRUFBRSxPQUFPLEdBQUcsS0FBSztRQUM1RSxPQUFPLFdBQVcsbUJBQW1CLElBQUksS0FBSyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7SUFDbkYsQ0FBQztJQUVDOzs7Ozs7Ozs7T0FTRztJQUNFLFlBQVksQ0FBQyxLQUFhLEVBQUUsT0FBTyxHQUFHLEtBQUs7UUFDOUMsT0FBTyxHQUFHLEtBQUssR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQ3BELENBQUM7d0dBakNVLDBCQUEwQjs0R0FBMUIsMEJBQTBCLGNBRnpCLE1BQU07OzRGQUVQLDBCQUEwQjtrQkFIdEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTZWFyY2hJbmRleH0gZnJvbSAnLi4vbW9kZWxzL3NlYXJjaC1pbmRleCc7XG5cbi8qKlxuICogQSB1dGlsaXR5IHNlcnZpY2UgdGhhdCBhaW1zIHRvIHByb3ZpZGUgZWxhc3RpY3NlYXJjaCBxdWVyeSBzdHJpbmcgcXVlcnkgaW5kZXggbmFtZXMgZm9yIGRhdGEgc2V0IHF1ZXJpZXMuXG4gKlxuICogSWYgeW91ciBhcHAgdXNlcyBhIGN1c3RvbWlzZWQgZWxhc3RpY3NlYXJjaCBkYXRhYmFzZSBtYXBwaW5nIGZvciBDYXNlIG9iamVjdHMsIHRoYXQgYWZmZWN0cyB0aGUgd2F5IGRhdGEgZmllbGRzIGFyZSBpbmRleGVkIHlvdSBtdXN0XG4gKiBwcm92aWRlIGFuIHVwZGF0ZWQgdmVyc2lvbiBvZiB0aGlzIHNlcnZpY2UsIHNvIHRoYXQgc2VhcmNoIGNhbiBnZW5lcmF0ZSBjb3JyZWN0IHF1ZXJpZXMuXG4gKlxuICogWW91IGFyZSBlbmNvdXJhZ2VkIHRvIHVzZSB0aGlzIHNlcnZpY2Ugd2hlbiBjcmVhdGluZyB7QGxpbmsgRmlsdGVyfXMsIHdpdGggZWxhc3RpYyBxdWVyeSBzdHJpbmcgcXVlcmllcywgc28gdGhhdCBmdXR1cmUgY2hhbmdlcyB0byB0aGVcbiAqIGRlZmF1bHQgbWFwcGluZyBkb24ndCBhZmZlY3QgeW91ciBleGlzdGluZyBjb2RlLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hJbmRleFJlc29sdmVyU2VydmljZSB7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgS0VZV09SRCA9ICcua2V5d29yZCc7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0cyB0aGUgaW5kZXggbmFtZSBmb3IgdGhlIHNwZWNpZmllZCBmaWVsZC5cbiAgICAgKlxuICAgICAqIE5vdGUgdGhhdCBhbG1vc3QgYWxsIGNvbWJpbmF0aW9ucyBhcmUgdmFsaWQgYW5kIHdpbGwgbm90IHRocm93IGFuIGVycm9yIHdoZW4gdXNlZCB0byBxdWVyeSB0aGUgZGF0YWJhc2UsIGJ1dCBub3QgYWxsIGNvbWJpbmF0aW9ucyBhcmVcbiAgICAgKiB1c2VkIGJ5IHRoZSBhcHBsaWNhdGlvbiBlbmdpbmUuIFRoZSB7QGxpbmsgU2VhcmNoSW5kZXh9IGNsYXNzIGhhcyBzb21lIGluZm9ybWF0aW9uIGFib3V0IHdoaWNoIGZpZWxkIHR5cGVzIG1hcCB0byB3aGljaCBpbmRpY2VzLCBidXRcbiAgICAgKiB5b3Ugc2hvdWxkIGNvbnN1bHQgdGhlIGJhY2tlbmQgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSByZWxpYWJsZSBpbmZvcm1hdGlvbi5cbiAgICAgKiBAcGFyYW0gZGF0YUZpZWxkSWRlbnRpZmllciBpbXBvcnQgSUQgb2YgdGhlIHF1ZXJpZWQgZGF0YSBmaWVsZFxuICAgICAqIEBwYXJhbSBpbmRleCB0aGUgcXVlcmllZCBpbmRleFxuICAgICAqIEBwYXJhbSBrZXl3b3JkIHdoZXRoZXIgdGhlIGtleXdvcmQgb2YgYSBURVhUIGluZGV4IHNob3VsZCBiZSBxdWVyaWVkXG4gICAgICogQHJldHVybnMgdGhlIGZ1bGwgbmFtZSBvZiB0aGUgc3BlY2lmaWVkIGluZGV4XG4gICAgICovXG4gIHB1YmxpYyBnZXRJbmRleChkYXRhRmllbGRJZGVudGlmaWVyOiBzdHJpbmcsIGluZGV4OiBTZWFyY2hJbmRleCwga2V5d29yZCA9IGZhbHNlKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiBgZGF0YVNldC4ke2RhdGFGaWVsZElkZW50aWZpZXJ9LiR7aW5kZXh9JHtrZXl3b3JkID8gdGhpcy5LRVlXT1JEIDogJyd9YDtcbiAgfVxuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0cyB0aGUgaW5kZXggbmFtZSBmb3IgdGhlIHNwZWNpZmllZCBjb3JlIGZpZWxkLlxuICAgICAqXG4gICAgICogTm90ZSB0aGF0IGFsbW9zdCBhbGwgY29tYmluYXRpb25zIGFyZSB2YWxpZCBhbmQgd2lsbCBub3QgdGhyb3cgYW4gZXJyb3Igd2hlbiB1c2VkIHRvIHF1ZXJ5IHRoZSBkYXRhYmFzZSwgYnV0IG5vdCBhbGwgY29tYmluYXRpb25zIGFyZVxuICAgICAqIHVzZWQgYnkgdGhlIGFwcGxpY2F0aW9uIGVuZ2luZS4gVGhlIHtAbGluayBTZWFyY2hJbmRleH0gY2xhc3MgaGFzIHNvbWUgaW5mb3JtYXRpb24gYWJvdXQgd2hpY2ggZmllbGQgdHlwZXMgbWFwIHRvIHdoaWNoIGluZGljZXMsIGJ1dFxuICAgICAqIHlvdSBzaG91bGQgY29uc3VsdCB0aGUgYmFja2VuZCBkb2N1bWVudGF0aW9uIGZvciBtb3JlIHJlbGlhYmxlIGluZm9ybWF0aW9uLlxuICAgICAqIEBwYXJhbSBpbmRleCB0aGUgcXVlcmllZCBpbmRleFxuICAgICAqIEBwYXJhbSBrZXl3b3JkIHdoZXRoZXIgdGhlIGtleXdvcmQgb2YgYSBURVhUIGluZGV4IHNob3VsZCBiZSBxdWVyaWVkXG4gICAgICogQHJldHVybnMgdGhlIGZ1bGwgbmFtZSBvZiB0aGUgc3BlY2lmaWVkIGluZGV4XG4gICAgICovXG4gIHB1YmxpYyBnZXRDb3JlSW5kZXgoaW5kZXg6IHN0cmluZywga2V5d29yZCA9IGZhbHNlKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiBgJHtpbmRleH0ke2tleXdvcmQgPyB0aGlzLktFWVdPUkQgOiAnJ31gO1xuICB9XG59XG4iXX0=