@operato/form 2.0.0-alpha.8 → 2.0.0-alpha.86

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/CHANGELOG.md +121 -0
  2. package/demo/index.html +14 -3
  3. package/dist/src/components/ox-custom-input.d.ts +1 -1
  4. package/dist/src/components/ox-custom-select.d.ts +1 -1
  5. package/dist/src/components/ox-file-uploader.d.ts +1 -1
  6. package/dist/src/components/ox-file-uploader.js +7 -7
  7. package/dist/src/components/ox-file-uploader.js.map +1 -1
  8. package/dist/src/components/ox-form-paginator.d.ts +1 -1
  9. package/dist/src/components/ox-search-form.d.ts +2 -2
  10. package/dist/src/components/ox-search-form.js +36 -36
  11. package/dist/src/components/ox-search-form.js.map +1 -1
  12. package/dist/src/filters/filter-checkbox.d.ts +1 -1
  13. package/dist/src/filters/filter-checkbox.js +4 -2
  14. package/dist/src/filters/filter-checkbox.js.map +1 -1
  15. package/dist/src/filters/filter-input-barcode.d.ts +1 -1
  16. package/dist/src/filters/filter-input-barcode.js.map +1 -1
  17. package/dist/src/filters/filter-input.d.ts +1 -1
  18. package/dist/src/filters/filter-input.js.map +1 -1
  19. package/dist/src/filters/filter-range-date.d.ts +1 -1
  20. package/dist/src/filters/filter-range-date.js +14 -3
  21. package/dist/src/filters/filter-range-date.js.map +1 -1
  22. package/dist/src/filters/filter-range-number.d.ts +1 -1
  23. package/dist/src/filters/filter-range-number.js.map +1 -1
  24. package/dist/src/filters/filter-select.d.ts +1 -1
  25. package/dist/src/filters/filter-select.js.map +1 -1
  26. package/dist/src/filters/filter-styles.js +38 -28
  27. package/dist/src/filters/filter-styles.js.map +1 -1
  28. package/dist/src/filters/index.d.ts +1 -1
  29. package/dist/src/filters/index.js +1 -1
  30. package/dist/src/filters/index.js.map +1 -1
  31. package/dist/src/filters/ox-filters-form-base.d.ts +5 -8
  32. package/dist/src/filters/ox-filters-form-base.js +92 -69
  33. package/dist/src/filters/ox-filters-form-base.js.map +1 -1
  34. package/dist/src/filters/registry.d.ts +1 -1
  35. package/dist/src/filters/registry.js.map +1 -1
  36. package/dist/src/{filters/types.d.ts → types.d.ts} +10 -0
  37. package/dist/src/types.js.map +1 -0
  38. package/dist/stories/{ox-filter-form-barcode.stories.js → ox-filters-form-barcode.stories.js} +14 -6
  39. package/dist/stories/ox-filters-form-barcode.stories.js.map +1 -0
  40. package/dist/stories/{ox-filter-form-base.stories.d.ts → ox-filters-form-base.stories.d.ts} +3 -2
  41. package/dist/stories/ox-filters-form-base.stories.js +133 -0
  42. package/dist/stories/ox-filters-form-base.stories.js.map +1 -0
  43. package/dist/tsconfig.tsbuildinfo +1 -1
  44. package/package.json +17 -16
  45. package/src/components/ox-file-uploader.ts +7 -7
  46. package/src/components/ox-search-form.ts +83 -83
  47. package/src/filters/filter-checkbox.ts +5 -3
  48. package/src/filters/filter-input-barcode.ts +1 -1
  49. package/src/filters/filter-input.ts +1 -1
  50. package/src/filters/filter-range-date.ts +21 -6
  51. package/src/filters/filter-range-number.ts +1 -1
  52. package/src/filters/filter-select.ts +1 -1
  53. package/src/filters/filter-styles.ts +38 -28
  54. package/src/filters/index.ts +1 -1
  55. package/src/filters/ox-filters-form-base.ts +100 -71
  56. package/src/filters/registry.ts +1 -1
  57. package/src/{filters/types.ts → types.ts} +13 -0
  58. package/stories/{ox-filter-form-barcode.stories.ts → ox-filters-form-barcode.stories.ts} +13 -5
  59. package/stories/ox-filters-form-base.stories.ts +150 -0
  60. package/themes/form-theme.css +1 -1
  61. package/dist/src/filters/types.js.map +0 -1
  62. package/dist/stories/ox-filter-form-barcode.stories.js.map +0 -1
  63. package/dist/stories/ox-filter-form-base.stories.js +0 -82
  64. package/dist/stories/ox-filter-form-base.stories.js.map +0 -1
  65. package/stories/ox-filter-form-base.stories.ts +0 -97
  66. /package/dist/src/{filters/types.js → types.js} +0 -0
  67. /package/dist/stories/{ox-filter-form-barcode.stories.d.ts → ox-filters-form-barcode.stories.d.ts} +0 -0
@@ -12,11 +12,19 @@ export default {
12
12
  const Template = ({ value, filters, urlParamsSensitive }) => html `
13
13
  <link href="/themes/app-theme.css" rel="stylesheet" />
14
14
  <link href="/themes/form-theme.css" rel="stylesheet" />
15
- <link href="https://fonts.googleapis.com/css?family=Material+Icons&display=block" rel="stylesheet" />
16
- <style>
17
- body {
18
- }
19
- </style>
15
+
16
+ <link
17
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL@20..48,100..700,0..1"
18
+ rel="stylesheet"
19
+ />
20
+ <link
21
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL@20..48,100..700,0..1"
22
+ rel="stylesheet"
23
+ />
24
+ <link
25
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Sharp:opsz,wght,FILL@20..48,100..700,0..1"
26
+ rel="stylesheet"
27
+ />
20
28
 
21
29
  <ox-filters-form-base
22
30
  .value=${value}
@@ -79,4 +87,4 @@ Regular.args = {
79
87
  }
80
88
  ]
81
89
  };
82
- //# sourceMappingURL=ox-filter-form-barcode.stories.js.map
90
+ //# sourceMappingURL=ox-filters-form-barcode.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ox-filters-form-barcode.stories.js","sourceRoot":"","sources":["../../stories/ox-filters-form-barcode.stories.ts"],"names":[],"mappings":"AAAA,OAAO,wCAAwC,CAAA;AAE/C,OAAO,EAAE,IAAI,EAAkB,MAAM,KAAK,CAAA;AAE1C,eAAe;IACb,KAAK,EAAE,yBAAyB;IAChC,SAAS,EAAE,yBAAyB;IACpC,QAAQ,EAAE;QACR,KAAK,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;QAC5B,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;QAC9B,kBAAkB,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;KAC3C;CACF,CAAA;AAcD,MAAM,QAAQ,GAAoB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAY,EAAE,EAAE,CAAC,IAAI,CAAA;;;;;;;;;;;;;;;;;;aAkB/E,KAAK;eACH,OAAO;4BACM,kBAAkB;sBACxB,CAAC,CAAc,EAAE,EAAE;IACnC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAA;AAC1C,CAAC;;;CAGJ,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACxC,OAAO,CAAC,IAAI,GAAG;IACb,OAAO,EAAE;QACP;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,MAAM;YACb,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,KAAK;YACZ,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,GAAG,EAAE;gBACZ,OAAO;oBACL;wBACE,OAAO,EAAE,EAAE;wBACX,KAAK,EAAE,EAAE;qBACV;oBACD;wBACE,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,KAAK;qBACb;oBACD;wBACE,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,KAAK;qBACb;iBACF,CAAA;YACH,CAAC;SACF;QACD;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,OAAO;YACd,QAAQ,EAAE,SAAS;SACpB;QACD;YACE,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,MAAM;YACb,QAAQ,EAAE,SAAS;SACpB;KACF;CACF,CAAA","sourcesContent":["import '../src/filters/ox-filters-form-base.js'\n\nimport { html, TemplateResult } from 'lit'\n\nexport default {\n title: 'ox-filters-form-barcode',\n component: 'ox-filters-form-barcode',\n argTypes: {\n value: { control: 'object' },\n filters: { control: 'object' },\n urlParamsSensitive: { control: 'boolean' }\n }\n}\n\ninterface Story<T> {\n (args: T): TemplateResult\n args?: Partial<T>\n argTypes?: Record<string, unknown>\n}\n\ninterface ArgTypes {\n value?: object\n filters?: object\n urlParamsSensitive: boolean\n}\n\nconst Template: Story<ArgTypes> = ({ value, filters, urlParamsSensitive }: ArgTypes) => html`\n <link href=\"/themes/app-theme.css\" rel=\"stylesheet\" />\n <link href=\"/themes/form-theme.css\" rel=\"stylesheet\" />\n\n <link\n href=\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL@20..48,100..700,0..1\"\n rel=\"stylesheet\"\n />\n <link\n href=\"https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL@20..48,100..700,0..1\"\n rel=\"stylesheet\"\n />\n <link\n href=\"https://fonts.googleapis.com/css2?family=Material+Symbols+Sharp:opsz,wght,FILL@20..48,100..700,0..1\"\n rel=\"stylesheet\"\n />\n\n <ox-filters-form-base\n .value=${value}\n .filters=${filters}\n ?url-params-sensitive=${urlParamsSensitive}\n @filters-change=${(e: CustomEvent) => {\n console.log('filters changed', e.detail)\n }}\n >\n </ox-filters-form-base>\n`\n\nexport const Regular = Template.bind({})\nRegular.args = {\n filters: [\n {\n name: 'test',\n type: 'barcode',\n label: 'name',\n operator: 'eq'\n },\n {\n name: 'active',\n type: 'boolean',\n label: 'active',\n operator: 'eq'\n },\n {\n name: 'sss',\n type: 'select',\n label: 'sss',\n operator: 'eq',\n options: () => {\n return [\n {\n display: '',\n value: ''\n },\n {\n display: 'ABC',\n value: 'ABC'\n },\n {\n display: 'DEF',\n value: 'DEF'\n }\n ]\n }\n },\n {\n name: 'range',\n type: 'number',\n label: 'range',\n operator: 'between'\n },\n {\n name: 'date-range',\n type: 'datetime',\n label: 'date',\n operator: 'between'\n }\n ]\n}\n"]}
@@ -1,5 +1,6 @@
1
1
  import '../src/filters/ox-filters-form-base.js';
2
2
  import { TemplateResult } from 'lit';
3
+ import { FilterConfig, FilterValue } from '../src/index.js';
3
4
  declare const _default: {
4
5
  title: string;
5
6
  component: string;
@@ -22,8 +23,8 @@ interface Story<T> {
22
23
  argTypes?: Record<string, unknown>;
23
24
  }
24
25
  interface ArgTypes {
25
- value?: object;
26
- filters?: object;
26
+ value?: FilterValue[];
27
+ filters?: FilterConfig[];
27
28
  urlParamsSensitive: boolean;
28
29
  }
29
30
  export declare const Regular: Story<ArgTypes>;
@@ -0,0 +1,133 @@
1
+ import '../src/filters/ox-filters-form-base.js';
2
+ import { html } from 'lit';
3
+ export default {
4
+ title: 'ox-filters-form-base',
5
+ component: 'ox-filters-form-base',
6
+ argTypes: {
7
+ value: { control: 'object' },
8
+ filters: { control: 'object' },
9
+ urlParamsSensitive: { control: 'boolean' }
10
+ }
11
+ };
12
+ const Template = ({ value, filters, urlParamsSensitive }) => html `
13
+ <link href="/themes/app-theme.css" rel="stylesheet" />
14
+ <link href="/themes/form-theme.css" rel="stylesheet" />
15
+ <link
16
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL@20..48,100..700,0..1"
17
+ rel="stylesheet"
18
+ />
19
+ <link
20
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL@20..48,100..700,0..1"
21
+ rel="stylesheet"
22
+ />
23
+ <link
24
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Sharp:opsz,wght,FILL@20..48,100..700,0..1"
25
+ rel="stylesheet"
26
+ />
27
+
28
+ <style>
29
+ body {
30
+ height: 500px;
31
+ }
32
+ </style>
33
+
34
+ <style>
35
+ ox-filters-form-base {
36
+ --input-gap-vertical: 8px;
37
+ --input-gap-horizontal: 16px;
38
+
39
+ --ox-filters-input-placeholder-color: var(--primary-color);
40
+
41
+ --ox-filters-input-border: 1px solid rgba(0, 0, 0, 0.2);
42
+ --ox-filters-input-focus-border: 1px solid var(--primary-color);
43
+ --ox-filters-input-font: normal 14px var(--theme-font);
44
+ --ox-filters-input-color: var(--primary-text-color);
45
+ --ox-filters-input-focus-color: var(--primary-color);
46
+ --ox-filters-label-font: normal 14px var(--theme-font);
47
+ --ox-filters-label-color: var(--primary-text-color);
48
+
49
+ --ox-filters-form-gap: var(--input-gap-vertical, 8px) var(--input-gap-horizontal, 16px);
50
+ --ox-filters-input-padding: 6px 2px;
51
+ }
52
+ </style>
53
+
54
+ <ox-filters-form-base
55
+ .value=${value}
56
+ .filters=${filters}
57
+ ?url-params-sensitive=${urlParamsSensitive}
58
+ @filters-change=${(e) => {
59
+ console.log('filters changed', e.detail);
60
+ }}
61
+ >
62
+ </ox-filters-form-base>
63
+ `;
64
+ export const Regular = Template.bind({});
65
+ Regular.args = {
66
+ filters: [
67
+ {
68
+ name: 'search',
69
+ type: 'search',
70
+ label: 'search',
71
+ operator: 'eq',
72
+ value: ''
73
+ },
74
+ {
75
+ name: 'test',
76
+ type: 'string',
77
+ label: 'name',
78
+ operator: 'eq',
79
+ value: 'No Name'
80
+ },
81
+ {
82
+ name: 'active',
83
+ type: 'boolean',
84
+ label: 'active',
85
+ operator: 'eq',
86
+ value: true,
87
+ onchange: (value, formBase) => {
88
+ const sss = formBase.getFieldByName('sss');
89
+ sss.value = value ? 'DEF' : 'ABC';
90
+ return false;
91
+ }
92
+ },
93
+ {
94
+ name: 'sss',
95
+ type: 'select',
96
+ label: 'sss',
97
+ operator: 'eq',
98
+ options: () => {
99
+ return [
100
+ {
101
+ display: '',
102
+ value: ''
103
+ },
104
+ {
105
+ display: 'ABC',
106
+ value: 'ABC'
107
+ },
108
+ {
109
+ display: 'DEF',
110
+ value: 'DEF'
111
+ }
112
+ ];
113
+ }
114
+ },
115
+ {
116
+ name: 'range',
117
+ type: 'number',
118
+ label: 'range',
119
+ operator: 'between'
120
+ },
121
+ {
122
+ name: 'date-range',
123
+ type: 'date',
124
+ label: 'date',
125
+ operator: 'between',
126
+ value: [
127
+ { name: 'week', params: { relativeWeeks: -1 } },
128
+ { name: 'today', params: { relativeDays: +1 } }
129
+ ]
130
+ }
131
+ ]
132
+ };
133
+ //# sourceMappingURL=ox-filters-form-base.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ox-filters-form-base.stories.js","sourceRoot":"","sources":["../../stories/ox-filters-form-base.stories.ts"],"names":[],"mappings":"AAAA,OAAO,wCAAwC,CAAA;AAE/C,OAAO,EAAE,IAAI,EAAkB,MAAM,KAAK,CAAA;AAG1C,eAAe;IACb,KAAK,EAAE,sBAAsB;IAC7B,SAAS,EAAE,sBAAsB;IACjC,QAAQ,EAAE;QACR,KAAK,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;QAC5B,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;QAC9B,kBAAkB,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;KAC3C;CACF,CAAA;AAcD,MAAM,QAAQ,GAAoB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAY,EAAE,EAAE,CAAC,IAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA2C/E,KAAM;eACJ,OAAQ;4BACK,kBAAkB;sBACxB,CAAC,CAAc,EAAE,EAAE;IACnC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAA;AAC1C,CAAC;;;CAGJ,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACxC,OAAO,CAAC,IAAI,GAAG;IACb,OAAO,EAAE;QACP;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,EAAE;SACV;QACD;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,MAAM;YACb,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,SAAS;SACjB;QACD;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE,CAAC,KAAK,EAAE,QAA2B,EAAE,EAAE;gBAC/C,MAAM,GAAG,GAAG,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAqB,CAAA;gBAC9D,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;gBAEjC,OAAO,KAAK,CAAA;YACd,CAAC;SACF;QACD;YACE,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,KAAK;YACZ,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,GAAG,EAAE;gBACZ,OAAO;oBACL;wBACE,OAAO,EAAE,EAAE;wBACX,KAAK,EAAE,EAAE;qBACV;oBACD;wBACE,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,KAAK;qBACb;oBACD;wBACE,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,KAAK;qBACb;iBACF,CAAA;YACH,CAAC;SACF;QACD;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,OAAO;YACd,QAAQ,EAAE,SAAS;SACpB;QACD;YACE,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,MAAM;YACb,QAAQ,EAAE,SAAS;YACnB,KAAK,EAAE;gBACL,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE;gBAC/C,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE;aAChD;SACF;KACF;CACF,CAAA","sourcesContent":["import '../src/filters/ox-filters-form-base.js'\n\nimport { html, TemplateResult } from 'lit'\nimport { OxFiltersFormBase, FilterConfig, FilterValue } from '../src/index.js'\n\nexport default {\n title: 'ox-filters-form-base',\n component: 'ox-filters-form-base',\n argTypes: {\n value: { control: 'object' },\n filters: { control: 'object' },\n urlParamsSensitive: { control: 'boolean' }\n }\n}\n\ninterface Story<T> {\n (args: T): TemplateResult\n args?: Partial<T>\n argTypes?: Record<string, unknown>\n}\n\ninterface ArgTypes {\n value?: FilterValue[]\n filters?: FilterConfig[]\n urlParamsSensitive: boolean\n}\n\nconst Template: Story<ArgTypes> = ({ value, filters, urlParamsSensitive }: ArgTypes) => html`\n <link href=\"/themes/app-theme.css\" rel=\"stylesheet\" />\n <link href=\"/themes/form-theme.css\" rel=\"stylesheet\" />\n <link\n href=\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL@20..48,100..700,0..1\"\n rel=\"stylesheet\"\n />\n <link\n href=\"https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL@20..48,100..700,0..1\"\n rel=\"stylesheet\"\n />\n <link\n href=\"https://fonts.googleapis.com/css2?family=Material+Symbols+Sharp:opsz,wght,FILL@20..48,100..700,0..1\"\n rel=\"stylesheet\"\n />\n\n <style>\n body {\n height: 500px;\n }\n </style>\n\n <style>\n ox-filters-form-base {\n --input-gap-vertical: 8px;\n --input-gap-horizontal: 16px;\n\n --ox-filters-input-placeholder-color: var(--primary-color);\n\n --ox-filters-input-border: 1px solid rgba(0, 0, 0, 0.2);\n --ox-filters-input-focus-border: 1px solid var(--primary-color);\n --ox-filters-input-font: normal 14px var(--theme-font);\n --ox-filters-input-color: var(--primary-text-color);\n --ox-filters-input-focus-color: var(--primary-color);\n --ox-filters-label-font: normal 14px var(--theme-font);\n --ox-filters-label-color: var(--primary-text-color);\n\n --ox-filters-form-gap: var(--input-gap-vertical, 8px) var(--input-gap-horizontal, 16px);\n --ox-filters-input-padding: 6px 2px;\n }\n </style>\n\n <ox-filters-form-base\n .value=${value!}\n .filters=${filters!}\n ?url-params-sensitive=${urlParamsSensitive}\n @filters-change=${(e: CustomEvent) => {\n console.log('filters changed', e.detail)\n }}\n >\n </ox-filters-form-base>\n`\n\nexport const Regular = Template.bind({})\nRegular.args = {\n filters: [\n {\n name: 'search',\n type: 'search',\n label: 'search',\n operator: 'eq',\n value: ''\n },\n {\n name: 'test',\n type: 'string',\n label: 'name',\n operator: 'eq',\n value: 'No Name'\n },\n {\n name: 'active',\n type: 'boolean',\n label: 'active',\n operator: 'eq',\n value: true,\n onchange: (value, formBase: OxFiltersFormBase) => {\n const sss = formBase.getFieldByName('sss') as HTMLInputElement\n sss.value = value ? 'DEF' : 'ABC'\n\n return false\n }\n },\n {\n name: 'sss',\n type: 'select',\n label: 'sss',\n operator: 'eq',\n options: () => {\n return [\n {\n display: '',\n value: ''\n },\n {\n display: 'ABC',\n value: 'ABC'\n },\n {\n display: 'DEF',\n value: 'DEF'\n }\n ]\n }\n },\n {\n name: 'range',\n type: 'number',\n label: 'range',\n operator: 'between'\n },\n {\n name: 'date-range',\n type: 'date',\n label: 'date',\n operator: 'between',\n value: [\n { name: 'week', params: { relativeWeeks: -1 } },\n { name: 'today', params: { relativeDays: +1 } }\n ]\n }\n ]\n}\n"]}