@netgrif/components-core
Version:
Netgrif Application engine frontend core Angular library
71 lines • 7.28 kB
JavaScript
/**
* Objects that represent keys to the map of available data fields in {@link CaseDataset} search category.
*
* Since javascript maps don't support objects as keys this class has a serialized form, that is used as a `string` key.
*
* This class also acts as an autocomplete option when the target datafield is selected. The real data fields are then extracted from the
* map to which this object is a key.
*/
export class DatafieldMapKey {
_inputType;
_title;
static serializedForm(type, title) {
return `${type}#${title}`;
}
static parse(serializedMapKey) {
const parts = serializedMapKey.split('#');
return new DatafieldMapKey(parts.shift(), parts.join('#'));
}
constructor(_inputType, _title) {
this._inputType = _inputType;
this._title = _title;
}
get title() {
return this._title;
}
get type() {
return this._inputType;
}
get icon() {
switch (this._inputType) {
case 'boolean':
return 'toggle_off';
case 'date':
return 'today';
case 'enumeration':
return 'radio_button_checked';
case 'file':
return 'insert_drive_file';
case 'fileList':
return 'file_copy';
case 'multichoice':
return 'check_box';
case 'number':
return 'looks_one';
case 'user':
return 'person';
case 'userList':
return 'people';
case 'dateTime':
return 'schedule';
default:
return 'text_format';
}
}
/**
* Alias for [toSerializedForm()]{@link DatafieldMapKey#toSerializedForm}
*/
get value() {
return this.toSerializedForm();
}
/**
* Alias for [title]{@link DatafieldMapKey#title}
*/
get text() {
return this.title;
}
toSerializedForm() {
return DatafieldMapKey.serializedForm(this._inputType, this._title);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWZpZWxkLW1hcC1rZXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL3NlYXJjaC9tb2RlbHMvZGF0YWZpZWxkLW1hcC1rZXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7Ozs7Ozs7R0FPRztBQUNILE1BQU0sT0FBTyxlQUFlO0lBV0Y7SUFBc0I7SUFUckMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFZLEVBQUUsS0FBYTtRQUNwRCxPQUFPLEdBQUcsSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFTSxNQUFNLENBQUMsS0FBSyxDQUFDLGdCQUF3QjtRQUN4QyxNQUFNLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUMsT0FBTyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxZQUFzQixVQUFVLEVBQVksTUFBTTtRQUE1QixlQUFVLEdBQVYsVUFBVSxDQUFBO1FBQVksV0FBTSxHQUFOLE1BQU0sQ0FBQTtJQUNsRCxDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ1osT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFXLElBQUk7UUFDWCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQVcsSUFBSTtRQUNYLFFBQVEsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNyQixLQUFLLFNBQVM7Z0JBQ1YsT0FBTyxZQUFZLENBQUM7WUFDeEIsS0FBSyxNQUFNO2dCQUNQLE9BQU8sT0FBTyxDQUFDO1lBQ25CLEtBQUssYUFBYTtnQkFDZCxPQUFPLHNCQUFzQixDQUFDO1lBQ2xDLEtBQUssTUFBTTtnQkFDUCxPQUFPLG1CQUFtQixDQUFDO1lBQy9CLEtBQUssVUFBVTtnQkFDWCxPQUFPLFdBQVcsQ0FBQztZQUN2QixLQUFLLGFBQWE7Z0JBQ2QsT0FBTyxXQUFXLENBQUM7WUFDdkIsS0FBSyxRQUFRO2dCQUNULE9BQU8sV0FBVyxDQUFDO1lBQ3ZCLEtBQUssTUFBTTtnQkFDUCxPQUFPLFFBQVEsQ0FBQztZQUNwQixLQUFLLFVBQVU7Z0JBQ1gsT0FBTyxRQUFRLENBQUM7WUFDcEIsS0FBSyxVQUFVO2dCQUNYLE9BQU8sVUFBVSxDQUFDO1lBQ3RCO2dCQUNJLE9BQU8sYUFBYSxDQUFDO1NBQzVCO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxLQUFLO1FBQ1osT0FBTyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLElBQUk7UUFDWCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVNLGdCQUFnQjtRQUNuQixPQUFPLGVBQWUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEUsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtTZWFyY2hBdXRvY29tcGxldGVPcHRpb259IGZyb20gJy4vY2F0ZWdvcnkvc2VhcmNoLWF1dG9jb21wbGV0ZS1vcHRpb24nO1xuXG4vKipcbiAqIE9iamVjdHMgdGhhdCByZXByZXNlbnQga2V5cyB0byB0aGUgbWFwIG9mIGF2YWlsYWJsZSBkYXRhIGZpZWxkcyBpbiB7QGxpbmsgQ2FzZURhdGFzZXR9IHNlYXJjaCBjYXRlZ29yeS5cbiAqXG4gKiBTaW5jZSBqYXZhc2NyaXB0IG1hcHMgZG9uJ3Qgc3VwcG9ydCBvYmplY3RzIGFzIGtleXMgdGhpcyBjbGFzcyBoYXMgYSBzZXJpYWxpemVkIGZvcm0sIHRoYXQgaXMgdXNlZCBhcyBhIGBzdHJpbmdgIGtleS5cbiAqXG4gKiBUaGlzIGNsYXNzIGFsc28gYWN0cyBhcyBhbiBhdXRvY29tcGxldGUgb3B0aW9uIHdoZW4gdGhlIHRhcmdldCBkYXRhZmllbGQgaXMgc2VsZWN0ZWQuIFRoZSByZWFsIGRhdGEgZmllbGRzIGFyZSB0aGVuIGV4dHJhY3RlZCBmcm9tIHRoZVxuICogbWFwIHRvIHdoaWNoIHRoaXMgb2JqZWN0IGlzIGEga2V5LlxuICovXG5leHBvcnQgY2xhc3MgRGF0YWZpZWxkTWFwS2V5IGltcGxlbWVudHMgU2VhcmNoQXV0b2NvbXBsZXRlT3B0aW9uPHN0cmluZz4ge1xuXG4gICAgcHVibGljIHN0YXRpYyBzZXJpYWxpemVkRm9ybSh0eXBlOiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7dHlwZX0jJHt0aXRsZX1gO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgcGFyc2Uoc2VyaWFsaXplZE1hcEtleTogc3RyaW5nKTogRGF0YWZpZWxkTWFwS2V5IHtcbiAgICAgICAgY29uc3QgcGFydHMgPSBzZXJpYWxpemVkTWFwS2V5LnNwbGl0KCcjJyk7XG4gICAgICAgIHJldHVybiBuZXcgRGF0YWZpZWxkTWFwS2V5KHBhcnRzLnNoaWZ0KCksIHBhcnRzLmpvaW4oJyMnKSk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIF9pbnB1dFR5cGUsIHByb3RlY3RlZCBfdGl0bGUpIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHRpdGxlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl90aXRsZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHR5cGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lucHV0VHlwZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGljb24oKTogc3RyaW5nIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLl9pbnB1dFR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgICAgICAgICAgIHJldHVybiAndG9nZ2xlX29mZic7XG4gICAgICAgICAgICBjYXNlICdkYXRlJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3RvZGF5JztcbiAgICAgICAgICAgIGNhc2UgJ2VudW1lcmF0aW9uJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3JhZGlvX2J1dHRvbl9jaGVja2VkJztcbiAgICAgICAgICAgIGNhc2UgJ2ZpbGUnOlxuICAgICAgICAgICAgICAgIHJldHVybiAnaW5zZXJ0X2RyaXZlX2ZpbGUnO1xuICAgICAgICAgICAgY2FzZSAnZmlsZUxpc3QnOlxuICAgICAgICAgICAgICAgIHJldHVybiAnZmlsZV9jb3B5JztcbiAgICAgICAgICAgIGNhc2UgJ211bHRpY2hvaWNlJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2NoZWNrX2JveCc7XG4gICAgICAgICAgICBjYXNlICdudW1iZXInOlxuICAgICAgICAgICAgICAgIHJldHVybiAnbG9va3Nfb25lJztcbiAgICAgICAgICAgIGNhc2UgJ3VzZXInOlxuICAgICAgICAgICAgICAgIHJldHVybiAncGVyc29uJztcbiAgICAgICAgICAgIGNhc2UgJ3VzZXJMaXN0JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3Blb3BsZSc7XG4gICAgICAgICAgICBjYXNlICdkYXRlVGltZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdzY2hlZHVsZSc7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiAndGV4dF9mb3JtYXQnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWxpYXMgZm9yIFt0b1NlcmlhbGl6ZWRGb3JtKClde0BsaW5rIERhdGFmaWVsZE1hcEtleSN0b1NlcmlhbGl6ZWRGb3JtfVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgdmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9TZXJpYWxpemVkRm9ybSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFsaWFzIGZvciBbdGl0bGVde0BsaW5rIERhdGFmaWVsZE1hcEtleSN0aXRsZX1cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHRleHQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGl0bGU7XG4gICAgfVxuXG4gICAgcHVibGljIHRvU2VyaWFsaXplZEZvcm0oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIERhdGFmaWVsZE1hcEtleS5zZXJpYWxpemVkRm9ybSh0aGlzLl9pbnB1dFR5cGUsIHRoaXMuX3RpdGxlKTtcbiAgICB9XG59XG4iXX0=