UNPKG

@alauda-fe/common

Version:

Alauda frontend team common codes.

47 lines 4.88 kB
export const DEFAULT_OPERATOR = '='; /** * 将basic的conditions转换为advanced形式 * 如: * [ * { * condition: 'category1', * operator: '=', * values: ['con1', 'con2'] * }, * { * condition: 'category2', * operator: '!=', * values: ['con11'] * }, * { * condition: '!custom' * } * ] * 将会转化为: * '[category1 = (con1,con2)],[category2 != (con11)],[!custom]' */ export function MultiSearchAdvanced(conditions) { return conditions ?.map(condition => condition.condition ? condition.operator ? `[${condition.condition} ${condition.operator || ''} (${condition.values?.join(',')})]` : `[${condition.condition}]` : '') ?.filter(Boolean) ?.join(','); } // 上述函数的反解析 export function MultiSearchBasic(advancedConditions) { const reg = /\[(?:(?<condition>[^,]+?)\s(?<operator>[\s\S]+?)\s\((?<values>[^\]]*?)\)|(?<customCondition>[^,]+?))\](?:,|$)/g; const matches = Array.from(advancedConditions?.matchAll(reg) || []); return matches.map(match => { const { groups } = match; const condition = groups.condition || groups.customCondition; return { condition, operator: groups.operator, values: groups.values?.split(','), }; }); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvbXVsdGktc2VhcmNoL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFXLEdBQUcsQ0FBQztBQUU1Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsVUFBNkI7SUFDL0QsT0FBTyxVQUFVO1FBQ2YsRUFBRSxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FDaEIsU0FBUyxDQUFDLFNBQVM7UUFDakIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRO1lBQ2xCLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxTQUFTLElBQ3JCLFNBQVMsQ0FBQyxRQUFRLElBQUksRUFDeEIsS0FBSyxTQUFTLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSTtZQUN0QyxDQUFDLENBQUMsSUFBSSxTQUFTLENBQUMsU0FBUyxHQUFHO1FBQzlCLENBQUMsQ0FBQyxFQUFFLENBQ1A7UUFDRCxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDakIsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDaEIsQ0FBQztBQUVELFdBQVc7QUFDWCxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLGtCQUEwQjtJQUUxQixNQUFNLEdBQUcsR0FDUCxnSEFBZ0gsQ0FBQztJQUVuSCxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNwRSxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDekIsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQztRQUN6QixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxJQUFJLE1BQU0sQ0FBQyxlQUFlLENBQUM7UUFFN0QsT0FBTztZQUNMLFNBQVM7WUFDVCxRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7WUFDekIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQztTQUNsQyxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VhcmNoQ29uZGl0aW9uIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX09QRVJBVE9SOiBzdHJpbmcgPSAnPSc7XG5cbi8qKlxuICog5bCGYmFzaWPnmoRjb25kaXRpb25z6L2s5o2i5Li6YWR2YW5jZWTlvaLlvI9cbiAqIOWmgu+8mlxuICogW1xuICogIHtcbiAqICAgIGNvbmRpdGlvbjogJ2NhdGVnb3J5MScsXG4gKiAgICBvcGVyYXRvcjogJz0nLFxuICogICAgdmFsdWVzOiBbJ2NvbjEnLCAnY29uMiddXG4gKiAgfSxcbiAqICB7XG4gKiAgICBjb25kaXRpb246ICdjYXRlZ29yeTInLFxuICogICAgb3BlcmF0b3I6ICchPScsXG4gKiAgICB2YWx1ZXM6IFsnY29uMTEnXVxuICogIH0sXG4gKiAge1xuICogICAgY29uZGl0aW9uOiAnIWN1c3RvbSdcbiAqICB9XG4gKiBdXG4gKiDlsIbkvJrovazljJbkuLrvvJpcbiAqICdbY2F0ZWdvcnkxID0gKGNvbjEsY29uMildLFtjYXRlZ29yeTIgIT0gKGNvbjExKV0sWyFjdXN0b21dJ1xuICovXG5leHBvcnQgZnVuY3Rpb24gTXVsdGlTZWFyY2hBZHZhbmNlZChjb25kaXRpb25zOiBTZWFyY2hDb25kaXRpb25bXSk6IHN0cmluZyB7XG4gIHJldHVybiBjb25kaXRpb25zXG4gICAgPy5tYXAoY29uZGl0aW9uID0+XG4gICAgICBjb25kaXRpb24uY29uZGl0aW9uXG4gICAgICAgID8gY29uZGl0aW9uLm9wZXJhdG9yXG4gICAgICAgICAgPyBgWyR7Y29uZGl0aW9uLmNvbmRpdGlvbn0gJHtcbiAgICAgICAgICAgICAgY29uZGl0aW9uLm9wZXJhdG9yIHx8ICcnXG4gICAgICAgICAgICB9ICgke2NvbmRpdGlvbi52YWx1ZXM/LmpvaW4oJywnKX0pXWBcbiAgICAgICAgICA6IGBbJHtjb25kaXRpb24uY29uZGl0aW9ufV1gXG4gICAgICAgIDogJycsXG4gICAgKVxuICAgID8uZmlsdGVyKEJvb2xlYW4pXG4gICAgPy5qb2luKCcsJyk7XG59XG5cbi8vIOS4iui/sOWHveaVsOeahOWPjeino+aekFxuZXhwb3J0IGZ1bmN0aW9uIE11bHRpU2VhcmNoQmFzaWMoXG4gIGFkdmFuY2VkQ29uZGl0aW9uczogc3RyaW5nLFxuKTogU2VhcmNoQ29uZGl0aW9uW10ge1xuICBjb25zdCByZWcgPVxuICAgIC9cXFsoPzooPzxjb25kaXRpb24+W14sXSs/KVxccyg/PG9wZXJhdG9yPltcXHNcXFNdKz8pXFxzXFwoKD88dmFsdWVzPlteXFxdXSo/KVxcKXwoPzxjdXN0b21Db25kaXRpb24+W14sXSs/KSlcXF0oPzosfCQpL2c7XG5cbiAgY29uc3QgbWF0Y2hlcyA9IEFycmF5LmZyb20oYWR2YW5jZWRDb25kaXRpb25zPy5tYXRjaEFsbChyZWcpIHx8IFtdKTtcbiAgcmV0dXJuIG1hdGNoZXMubWFwKG1hdGNoID0+IHtcbiAgICBjb25zdCB7IGdyb3VwcyB9ID0gbWF0Y2g7XG4gICAgY29uc3QgY29uZGl0aW9uID0gZ3JvdXBzLmNvbmRpdGlvbiB8fCBncm91cHMuY3VzdG9tQ29uZGl0aW9uO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbmRpdGlvbixcbiAgICAgIG9wZXJhdG9yOiBncm91cHMub3BlcmF0b3IsXG4gICAgICB2YWx1ZXM6IGdyb3Vwcy52YWx1ZXM/LnNwbGl0KCcsJyksXG4gICAgfTtcbiAgfSk7XG59XG4iXX0=