Skip to content

Commit

Permalink
feat: UIG-2929 - vl-search-filter-next - introductie component
Browse files Browse the repository at this point in the history
De `vl-rich-data` component uitgebreid met vl-search-filter-next integratie.
Font-family naamvariabelen verbeterd.
Storybook verbeterd & cypress testen uitgebreid.
  • Loading branch information
Goldflow committed Nov 7, 2024
1 parent 4790b58 commit 7d6f804
Show file tree
Hide file tree
Showing 22 changed files with 934 additions and 148 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -210,17 +210,17 @@ describe('story vl-rich-data-table - filter', () => {
});

it('should be able to filter on a field', () => {
cy.get('vl-rich-data-table').find(`input[name="${filterField}"]`).type(filterValue);
cy.get('vl-rich-data-table').find(`[name="${filterField}"]`).shadow().find('input').type(filterValue);
});

it('should be able to find the filtered data in the table', () => {
cy.get('vl-rich-data-table').find(`input[name="${filterField}"]`).type(filterValue);
cy.get('vl-rich-data-table').find(`[name="${filterField}"]`).shadow().find('input').type(filterValue);
const filteredData = data.filter((row) => row[filterField].indexOf(filterValue) !== -1);
shouldMatchTableData(filteredData);
});

it('should not be able to find data not corresponding to search fields', () => {
cy.get('vl-rich-data-table').find(`input[name="${filterField}"]`).type(filterValue);
cy.get('vl-rich-data-table').find(`[name="${filterField}"]`).shadow().find('input').type(filterValue);
executeForEveryRow((row, rowIndex) => shouldNotMatchCellWithData(row, rowIndex, data));
});
});
Expand Down
11 changes: 9 additions & 2 deletions apps/storybook/.storybook/vlux-meta-data/vlux-meta-data.json
Original file line number Diff line number Diff line change
Expand Up @@ -280,9 +280,16 @@
"planningInfo": "[v1 naar v2 - beschikbaar](/docs/planning-2024-van-v1-naar-v2-beschikbaar--documentatie#radio-group--radio)"
},
"elements-search-filter": {
"vStatus": "v1-todo",
"vStatus": "v1-replace",
"legacyText": "vl-search-filter",
"planningInfo": "[v1 naar v2 - planning](/docs/planning-2024-van-v1-naar-v2-planning--documentatie)"
"nextText": "[vl-search-filter-next](/docs/components-next-search-filter--documentatie)",
"planningInfo": "[v1 naar v2 - beschikbaar](/docs/planning-2024-van-v1-naar-v2-beschikbaar--documentatie#search-filter)"
},
"components-next-search-filter": {
"vStatus": "v2-next",
"legacyText": "[vl-search-filter](/docs/elements-search-filter--documentatie)",
"nextText": "vl-search-filter-next",
"planningInfo": "[v1 naar v2 - beschikbaar](/docs/planning-2024-van-v1-naar-v2-beschikbaar--documentatie#search-filter)"
},
"elements-search-results": {
"vStatus": "v1-todo"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import {Meta} from '@storybook/blocks';
- [Aanpak](#aanpak)
- [Geïmpacteerde Web Componenten](#geïmpacteerde-web-componenten)


## Aanpak

Op deze pagina vind je een overzicht van de web componenten die geïmpacteerd zijn door de migratie van v1 naar v2
Expand All @@ -25,24 +24,6 @@ beschikbaar is (zal zijn), je kan doorklikken op de naam om naar de documentatie
- typisch hebben de legacy en de next variant dezelfde naam, maar niet altijd
- momenteel zijn er enkel v1 releases, wat is er zal gebeuren in v2 is informatief; er is nog geen v2 beschikbaar


[//]: # (## Releases)
[//]: # (### tem v1.37.x)
[//]: # ()
[//]: # (Sinds een jaar zijn we stelselmatig next componenten aan het introduceren. )
[//]: # ()
[//]: # (Van de volgende web componenten bestaat er een next variant: [Button](#button), [Checkbox](#checkbox),)
[//]: # ([Datepicker](#datepicker), [Doormat](#doormat), [Form Label](#form-label),)
[//]: # ([Form Validation Message / Error Message](#form-validation-message--error-message), [Icon](#icon),)
[//]: # ([Infotext](#infotext), [Input Field](#input-field), [Link](#link), [Pattern](#pattern), [Properties](#properties),)
[//]: # ([Radio Group / Radio](#radio-group--radio), [Select / MultiSelect / Select Rich](#select--multiselect--select-rich),)
[//]: # ([Steps / Step](#steps--step), [Textarea / Textarea Rich](#textarea--textarea-rich), [Title](#title),)
[//]: # ([Upload](#upload))
[//]: # ()
[//]: # (Volgende componenten werden geschrapt, zie hieronder voor de nieuwe aanpak: [Form](#form),)
[//]: # ([Form Annotation](#form-annotation), [Form Validation](#form-validation))


## Geïmpacteerde Web Componenten

### Button
Expand Down Expand Up @@ -425,38 +406,6 @@ gebruiken dit niet meer.
</tr>
</table>


[//]: # (### Introduction)

[//]: # ()
[//]: # (<table style={{width: 100 + '%'}}>)
[//]: # ( <tr>)
[//]: # ( <th>Naam</th>)
[//]: # ( <th>Toestand</th>)
[//]: # ( <th>v1 - Artifact</th>)
[//]: # ( <th>v1 - Gebruik</th>)
[//]: # ( <th>v2 - Artifact</th>)
[//]: # ( <th>v2 - Gebruik</th>)
[//]: # ( </tr>)
[//]: # ( <tr>)
[//]: # ( <td>[Introduction [legacy]]&#40;/docs/elements-introduction--documentatie&#41;</td>)
[//]: # ( <td>wordt deprecated</td>)
[//]: # ( <td>elements</td>)
[//]: # ( <td><code>{`<p is="vl-introduction">`}</code></td>)
[//]: # ( <td>-</td>)
[//]: # ( <td>-</td>)
[//]: # ( </tr>)
[//]: # ( <tr>)
[//]: # ( <td>[Introduction [next]]&#40;TODO&#41;</td>)
[//]: # ( <td>release 1.40.0 [te bevestigen]]</td>)
[//]: # ( <td>tokens/next</td>)
[//]: # ( <td><code>{`<p class="vl-introduction-next">`}</code></td>)
[//]: # ( <td>tokens</td>)
[//]: # ( <td><code>{`<p class="vl-introduction">`}</code></td>)
[//]: # ( </tr>)
[//]: # (</table>)


### Link

`Button Link [legacy]` verdwijnt in v2, gebruik een `<vl-link>` of een `<vl-button>`.
Expand Down Expand Up @@ -557,7 +506,6 @@ gebruiken dit niet meer.
</tr>
</table>


### Radio Group / Radio

<table style={{width: 100 + '%'}}>
Expand Down Expand Up @@ -604,6 +552,36 @@ gebruiken dit niet meer.
</table>


### Search Filter

<table style={{width: 100 + '%'}}>
<tr>
<th>Naam</th>
<th>Toestand</th>
<th>v1 - Artifact</th>
<th>v1 - Gebruik</th>
<th>v2 - Artifact</th>
<th>v2 - Gebruik</th>
</tr>
<tr>
<td>[Search Filter [legacy]](/docs/elements-search-filter--documentatie)</td>
<td>deprecated</td>
<td>elements</td>
<td><code>{`<vl-search-filter>`}</code></td>
<td>-</td>
<td>-</td>
</tr>
<tr>
<td>[Search Filter [next]](/docs/components-next-search-filter--documentatie)</td>
<td>release v1.42.0</td>
<td>components/next</td>
<td><code>{`<vl-search-filter-next>`}</code></td>
<td>components</td>
<td><code>{`<vl-search-filter>`}</code></td>
</tr>
</table>


### Select / MultiSelect / Select Rich

<table style={{width: 100 + '%'}}>
Expand Down
4 changes: 2 additions & 2 deletions libs/common/utilities/src/css/font/fonts.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
export const baseFontLocation = 'https://cdn.omgeving.vlaanderen.be/domg/govflanders-font/22.0.2';

// Flanders font
export const fontFamily = 'FlandersArtSans';
export const serifFontFamily = 'FlandersArtSerif';
export const fontFamily = 'Flanders Art Sans';
export const serifFontFamily = 'Flanders Art Serif';

// Icon font
export const iconFontFamily = 'vlaanderen-icon-classic';
Expand Down
32 changes: 32 additions & 0 deletions libs/components/components.web-types.json
Original file line number Diff line number Diff line change
Expand Up @@ -1386,6 +1386,38 @@
]
}
},
{
"name": "vl-search-filter-next",
"description": "<span style=\"color: rgb(25,140,25)\">[next-component]</span><br/><br/>\n\n<VluxAlert type=\"info\">\n{`\n In de v2 versie van deze component gebruik je hem via de custom-tag, de interne implementatie is voor de rest gelijk gebleven aan deze van de v1 versie.\n In v3 zal deze component grondig herwerkt worden; in de context van een herwerking van de vl-data-table.\n`}\n</VluxAlert>\n\nGebruik de `search-filter-next` component om een zoek filter te tonen op een pagina.",
"doc-url": "https://milieuinfo.github.io/uigov-builds/release/DOMG-WC-VERSION/storybook/?path=/docs/components-next-search-filter--documentatie",
"attributes": [
{
"name": "custom-css",
"description": "Custom CSS string.<br>Wordt toegevoegd aan de adoptedStyleSheets in de shadow DOM van de component.",
"default": "null"
},
{
"name": "filter-title",
"description": "De titel van deze zoekfilter.",
"default": ""
},
{
"name": "alt",
"description": "Alternatieve (transparante) achtergrond.",
"default": "false"
},
{
"name": "mobile-modal",
"description": "Activeert geoptimaliseerde weergave voor mobiele apparaten.<br>Dit wordt ook geactiveerd als de viewport kleiner is dan 768px.",
"default": "false"
},
{
"name": "mobile-modal-title",
"description": "Stelt de titel in van deze zoekfilter op mobiele apparaten.<br> Als die niet gedeclareerd is, wordt de waarde van filter-title gebruikt.",
"default": ""
}
]
},
{
"name": "vl-steps-next",
"description": "<span style=\"color: rgb(25,140,25)\">[next-component]</span><br/>Gebruik de `steps-next` component om een verticale lijst van stappen af te beelden om de gebruiker door een procedure te begeleiden.<br/>\n\nDeze component is de nieuwe versie van de [vl-steps](/docs/components-steps--documentatie) component, we raden aan deze versie te gebruiken.",
Expand Down
1 change: 1 addition & 0 deletions libs/components/src/next/search-filter/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { VlSearchFilterComponent } from './vl-search-filter.component';
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
import { ArgTypes } from '@storybook/web-components';
import { CATEGORIES, defaultArgs, defaultArgTypes, TYPES } from '@domg-wc/common-storybook';
import { searchFilterDefaults } from '../vl-search-filter.defaults';

export const searchFilterArgs = {
...defaultArgs,
...searchFilterDefaults,
};

export const searchFilterArgTypes: ArgTypes<typeof searchFilterArgs> = {
...defaultArgTypes(true),
filterTitle: {
name: 'filter-title',
description: 'De titel van deze zoekfilter.',
table: {
type: { summary: TYPES.STRING },
category: CATEGORIES.ATTRIBUTES,
defaultValue: { summary: searchFilterArgs.filterTitle },
},
},
alt: {
name: 'alt',
description: 'Alternatieve (transparante) achtergrond.',
table: {
type: { summary: TYPES.BOOLEAN },
category: CATEGORIES.ATTRIBUTES,
defaultValue: { summary: searchFilterArgs.alt },
},
},
mobileModal: {
name: 'mobile-modal',
description:
'Activeert geoptimaliseerde weergave voor mobiele apparaten.<br>Dit wordt ook geactiveerd als de viewport kleiner is dan 768px.',
table: {
type: { summary: TYPES.STRING },
category: CATEGORIES.ATTRIBUTES,
defaultValue: { summary: searchFilterArgs.mobileModal },
},
},
mobileModalTitle: {
name: 'mobile-modal-title',
description:
'Stelt de titel in van deze zoekfilter op mobiele apparaten.<br> Als die niet gedeclareerd is, wordt de waarde van filter-title gebruikt.',
table: {
type: { summary: TYPES.STRING },
category: CATEGORIES.ATTRIBUTES,
defaultValue: { summary: searchFilterArgs.mobileModalTitle },
},
},
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
import {ArgTypes, Canvas} from '@storybook/addon-docs';

import * as VlSearchFilterStories from './vl-search-filter.stories';

# Search Filter - next

<VluxMetaData id="components-next-search-filter" />

<br/>

<VluxAlert type="info">
{`
In de v2 versie van deze component gebruik je hem via de custom-tag, de interne implementatie is voor de rest gelijk gebleven aan deze van de v1 versie.
In v3 zal deze component grondig herwerkt worden; in de context van een herwerking van de vl-data-table.
`}
</VluxAlert>

Gebruik de `search-filter-next` component om een zoek filter te tonen op een pagina.


## Voorbeeld

```js
import { VlSearchFilterComponent } from '@domg-wc/components/next/search-filter';
```

```html
<vl-search-filter-next></vl-search-filter-next>
```

<Canvas of={VlSearchFilterStories.SearchFilterDefault}/>


## Configuratie

<ArgTypes of={VlSearchFilterStories.SearchFilterDefault}/>


## Referenties

[Documentatie Digitaal Vlaanderen - Search Filter](https://overheid.vlaanderen.be/webuniversum/v3/documentation/components/vl-ui-search-filter)
Loading

0 comments on commit 7d6f804

Please sign in to comment.