0.0.0-rc.7 • Published 6 months ago
@feedmepos/custom-attributes v0.0.0-rc.7
@feedmepos/custom-attributes
Package Features
The @feedmepos/custom-attributes package provides a set of tools to manage and filter custom attributes for entities such as restaurants. The main features include:
- Filter Builder:
FmCustomAttributeFilterA vue component that enables users to build complex filter queries based on custom attributes. - Rule Validation Function:
mongoQueryA function that evaluates MongoDB-style queries against custom attribute data to determine if they match the specified rules.
Rule Validation Function
The mongoQuery function is used to evaluate a set of rules against custom attribute data. It takes two parameters: the data to be evaluated and the rule to be applied. The function returns a boolean indicating whether the data matches the rule.
Development
pnpm install
pnpm devRelease Package
- Create a new release and tag on GitHub
- The package will be published to npm and github registry by @feedmepos/custom-attributes-action
Add to existing project
Install packages
pnpm install @feedmepos/custom-attributesAdd style.css to your App.vue
import '@feedmepos/custom-attributes/style.css';How to use the components
import { FmCustomAttributeFilter } from '@feedmepos/custom-attributes';
<FmCustomAttributeFilter
:attributes="[
{ key: 'name', type: 'string', entity: 'restaurant' },
{ key: 'region', type: 'string', entity: 'restaurant' },
{ key: 'staffCount', type: 'number', entity: 'restaurant' },
{ key: 'memberCount', type: 'number', entity: 'restaurant' },
]"
:model-value="filter"
@update:model-value="(v) => (filter = v)"
/>Filter Data
/**
* filter = { "logic": "AND", "rules": [ { "logic": "AND", "rules": [ { "property": "name", "operator": "$eq", "value": "123" } ] }, { "logic": "AND", "rules": [ { "property": "region", "operator": "$eq", "value": "123" } ] }, { "logic": "AND", "rules": [ { "property": "name", "operator": "$eq", "value": "123123" }, { "property": "staffCount", "operator": "$eq", "value": 123 } ] } ] }
*
* values: FdoCustomAttribute = {
* name: '123',
* region: '123',
* staffCount: 123,
* memberCount: 123123
* }
*/
const testResult = mongoQuery(values, filter);
const result = restaurants.filter((r) => mongoQuery(r.customAttribute, filter));Screenshot
Multiple group

One group filter

0.0.0-rc.7
6 months ago
0.0.0-rc.6
9 months ago
0.0.0-rc.5
10 months ago
0.0.0-rc.4
10 months ago
0.0.0-rc.3
10 months ago
0.0.0-rc.2
10 months ago