UNPKG

@talend/react-faceted-search

Version:
77 lines (76 loc) 2.67 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateUniqueBadgeId = exports.generateBadge = exports.createFacetedBadgeDefinition = exports.addOperatorsProps = void 0; var _utils = require("@talend/utils"); var _lodash = require("lodash"); const getAttribute = badgeDefinitionRaw => (0, _lodash.get)(badgeDefinitionRaw, 'attribute'); const createBadgeId = attribute => `${attribute}-${(0, _utils.randomUUID)()}`; const getOperators = badgeDefinitionRaw => (0, _lodash.get)(badgeDefinitionRaw, 'operators'); const getType = badgeDefinitionRaw => (0, _lodash.get)(badgeDefinitionRaw, 'type'); const getTypeProperties = badgeDefinitionRaw => (0, _lodash.get)(badgeDefinitionRaw, 'typeProperties'); const getLabel = badgeDefinitionRaw => (0, _lodash.get)(badgeDefinitionRaw, 'label'); const facetedBadgeDefinitionStruct = { properties: { attribute: name, initialOpenedOperator: false, initialOpenedValue: false, label: '', operator: {}, operators: [], type: '' }, metadata: { badgeId: '', badgesPerFacet: 1, entitiesPerBadge: 'N' } }; const fromRaw = badgeDefinitionRaw => { const newStruct = Object.create(facetedBadgeDefinitionStruct); const name = getAttribute(badgeDefinitionRaw); const typeProperties = getTypeProperties(badgeDefinitionRaw); newStruct.properties = { attribute: name, initialOperatorOpened: true, initialValueOpened: false, label: getLabel(badgeDefinitionRaw), operator: {}, operators: [], type: getType(badgeDefinitionRaw), ...typeProperties }; newStruct.metadata = { ...badgeDefinitionRaw.metadata, operators: getOperators(badgeDefinitionRaw) }; return newStruct; }; const addOperatorsProps = operators => badge => ({ ...badge, properties: { ...badge.properties, operator: Array.isArray(operators) && operators[0], operators: Array.isArray(operators) && operators } }); exports.addOperatorsProps = addOperatorsProps; const generateUniqueBadgeId = badge => ({ ...badge, metadata: { ...badge.metadata, badgeId: createBadgeId(badge.properties.attribute) } }); exports.generateUniqueBadgeId = generateUniqueBadgeId; const createFacetedBadgeDefinition = badgeDefinitionRaw => { if (badgeDefinitionRaw) { return fromRaw(badgeDefinitionRaw); } return Object.create(facetedBadgeDefinitionStruct); }; exports.createFacetedBadgeDefinition = createFacetedBadgeDefinition; const generateBadge = operators => (0, _lodash.flow)([generateUniqueBadgeId, addOperatorsProps(operators)]); exports.generateBadge = generateBadge; //# sourceMappingURL=badgeDefinition.type.js.map