@operato/form 1.0.0-beta.5 → 1.0.0-beta.50

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 (66) hide show
  1. package/CHANGELOG.md +516 -0
  2. package/demo/index.html +68 -2
  3. package/dist/src/components/ox-search-form.d.ts +2 -0
  4. package/dist/src/components/ox-search-form.js +19 -4
  5. package/dist/src/components/ox-search-form.js.map +1 -1
  6. package/dist/src/filters/filter-checkbox.d.ts +3 -0
  7. package/dist/src/filters/filter-checkbox.js +26 -0
  8. package/dist/src/filters/filter-checkbox.js.map +1 -0
  9. package/dist/src/filters/filter-input-barcode.d.ts +3 -0
  10. package/dist/src/filters/filter-input-barcode.js +27 -0
  11. package/dist/src/filters/filter-input-barcode.js.map +1 -0
  12. package/dist/src/filters/filter-input.d.ts +2 -0
  13. package/dist/src/filters/filter-input.js +24 -0
  14. package/dist/src/filters/filter-input.js.map +1 -0
  15. package/dist/src/filters/filter-range-date.d.ts +2 -0
  16. package/dist/src/filters/filter-range-date.js +54 -0
  17. package/dist/src/filters/filter-range-date.js.map +1 -0
  18. package/dist/src/filters/filter-range-number.d.ts +2 -0
  19. package/dist/src/filters/filter-range-number.js +53 -0
  20. package/dist/src/filters/filter-range-number.js.map +1 -0
  21. package/dist/src/filters/filter-select.d.ts +3 -0
  22. package/dist/src/filters/filter-select.js +33 -0
  23. package/dist/src/filters/filter-select.js.map +1 -0
  24. package/dist/src/filters/filter-styles.d.ts +1 -0
  25. package/dist/src/filters/filter-styles.js +88 -0
  26. package/dist/src/filters/filter-styles.js.map +1 -0
  27. package/dist/src/filters/index.d.ts +8 -0
  28. package/dist/src/filters/index.js +9 -0
  29. package/dist/src/filters/index.js.map +1 -0
  30. package/dist/src/filters/ox-filters-form-base.d.ts +25 -0
  31. package/dist/src/filters/ox-filters-form-base.js +238 -0
  32. package/dist/src/filters/ox-filters-form-base.js.map +1 -0
  33. package/dist/src/filters/registry.d.ts +7 -0
  34. package/dist/src/filters/registry.js +46 -0
  35. package/dist/src/filters/registry.js.map +1 -0
  36. package/dist/src/filters/types.d.ts +17 -0
  37. package/dist/src/filters/types.js +2 -0
  38. package/dist/src/filters/types.js.map +1 -0
  39. package/dist/src/index.d.ts +1 -0
  40. package/dist/src/index.js +1 -0
  41. package/dist/src/index.js.map +1 -1
  42. package/dist/stories/ox-filter-form-barcode.stories.d.ts +29 -0
  43. package/dist/stories/ox-filter-form-barcode.stories.js +82 -0
  44. package/dist/stories/ox-filter-form-barcode.stories.js.map +1 -0
  45. package/dist/stories/ox-filter-form-base.stories.d.ts +29 -0
  46. package/dist/stories/ox-filter-form-base.stories.js +82 -0
  47. package/dist/stories/ox-filter-form-base.stories.js.map +1 -0
  48. package/dist/tsconfig.tsbuildinfo +1 -1
  49. package/package.json +10 -8
  50. package/src/components/ox-search-form.ts +16 -4
  51. package/src/filters/filter-checkbox.ts +31 -0
  52. package/src/filters/filter-input-barcode.ts +33 -0
  53. package/src/filters/filter-input.ts +29 -0
  54. package/src/filters/filter-range-date.ts +64 -0
  55. package/src/filters/filter-range-number.ts +62 -0
  56. package/src/filters/filter-select.ts +47 -0
  57. package/src/filters/filter-styles.ts +88 -0
  58. package/src/filters/index.ts +10 -0
  59. package/src/filters/ox-filters-form-base.ts +261 -0
  60. package/src/filters/registry.ts +54 -0
  61. package/src/filters/types.ts +47 -0
  62. package/src/index.ts +1 -0
  63. package/stories/ox-filter-form-barcode.stories.ts +97 -0
  64. package/stories/ox-filter-form-base.stories.ts +97 -0
  65. package/themes/app-theme.css +142 -0
  66. /package/{src/themes → themes}/form-theme.css +0 -0
@@ -0,0 +1,97 @@
1
+ import '../src/filters/ox-filters-form-base.js'
2
+
3
+ import { html, TemplateResult } from 'lit'
4
+
5
+ export default {
6
+ title: 'ox-filters-form-barcode',
7
+ component: 'ox-filters-form-barcode',
8
+ argTypes: {
9
+ value: { control: 'object' },
10
+ filters: { control: 'object' },
11
+ urlParamsSensitive: { control: 'boolean' }
12
+ }
13
+ }
14
+
15
+ interface Story<T> {
16
+ (args: T): TemplateResult
17
+ args?: Partial<T>
18
+ argTypes?: Record<string, unknown>
19
+ }
20
+
21
+ interface ArgTypes {
22
+ value?: object
23
+ filters?: object
24
+ urlParamsSensitive: boolean
25
+ }
26
+
27
+ const Template: Story<ArgTypes> = ({ value, filters, urlParamsSensitive }: ArgTypes) => html`
28
+ <link href="/themes/app-theme.css" rel="stylesheet" />
29
+ <link href="/themes/form-theme.css" rel="stylesheet" />
30
+ <link href="https://fonts.googleapis.com/css?family=Material+Icons&display=block" rel="stylesheet" />
31
+ <style>
32
+ body {
33
+ }
34
+ </style>
35
+
36
+ <ox-filters-form-base
37
+ .value=${value}
38
+ .filters=${filters}
39
+ ?url-params-sensitive=${urlParamsSensitive}
40
+ @filters-change=${(e: CustomEvent) => {
41
+ console.log('filters changed', e.detail)
42
+ }}
43
+ >
44
+ </ox-filters-form-base>
45
+ `
46
+
47
+ export const Regular = Template.bind({})
48
+ Regular.args = {
49
+ filters: [
50
+ {
51
+ name: 'test',
52
+ type: 'barcode',
53
+ label: 'name',
54
+ operator: 'eq'
55
+ },
56
+ {
57
+ name: 'active',
58
+ type: 'boolean',
59
+ label: 'active',
60
+ operator: 'eq'
61
+ },
62
+ {
63
+ name: 'sss',
64
+ type: 'select',
65
+ label: 'sss',
66
+ operator: 'eq',
67
+ options: () => {
68
+ return [
69
+ {
70
+ display: '',
71
+ value: ''
72
+ },
73
+ {
74
+ display: 'ABC',
75
+ value: 'ABC'
76
+ },
77
+ {
78
+ display: 'DEF',
79
+ value: 'DEF'
80
+ }
81
+ ]
82
+ }
83
+ },
84
+ {
85
+ name: 'range',
86
+ type: 'number',
87
+ label: 'range',
88
+ operator: 'between'
89
+ },
90
+ {
91
+ name: 'date-range',
92
+ type: 'datetime',
93
+ label: 'date',
94
+ operator: 'between'
95
+ }
96
+ ]
97
+ }
@@ -0,0 +1,97 @@
1
+ import '../src/filters/ox-filters-form-base.js'
2
+
3
+ import { html, TemplateResult } from 'lit'
4
+
5
+ export default {
6
+ title: 'ox-filters-form-base',
7
+ component: 'ox-filters-form-base',
8
+ argTypes: {
9
+ value: { control: 'object' },
10
+ filters: { control: 'object' },
11
+ urlParamsSensitive: { control: 'boolean' }
12
+ }
13
+ }
14
+
15
+ interface Story<T> {
16
+ (args: T): TemplateResult
17
+ args?: Partial<T>
18
+ argTypes?: Record<string, unknown>
19
+ }
20
+
21
+ interface ArgTypes {
22
+ value?: object
23
+ filters?: object
24
+ urlParamsSensitive: boolean
25
+ }
26
+
27
+ const Template: Story<ArgTypes> = ({ value, filters, urlParamsSensitive }: ArgTypes) => html`
28
+ <link href="/themes/app-theme.css" rel="stylesheet" />
29
+ <link href="/themes/form-theme.css" rel="stylesheet" />
30
+ <link href="https://fonts.googleapis.com/css?family=Material+Icons&display=block" rel="stylesheet" />
31
+ <style>
32
+ body {
33
+ }
34
+ </style>
35
+
36
+ <ox-filters-form-base
37
+ .value=${value}
38
+ .filters=${filters}
39
+ ?url-params-sensitive=${urlParamsSensitive}
40
+ @filters-change=${(e: CustomEvent) => {
41
+ console.log('filters changed', e.detail)
42
+ }}
43
+ >
44
+ </ox-filters-form-base>
45
+ `
46
+
47
+ export const Regular = Template.bind({})
48
+ Regular.args = {
49
+ filters: [
50
+ {
51
+ name: 'test',
52
+ type: 'string',
53
+ label: 'name',
54
+ operator: 'eq'
55
+ },
56
+ {
57
+ name: 'active',
58
+ type: 'boolean',
59
+ label: 'active',
60
+ operator: 'eq'
61
+ },
62
+ {
63
+ name: 'sss',
64
+ type: 'select',
65
+ label: 'sss',
66
+ operator: 'eq',
67
+ options: () => {
68
+ return [
69
+ {
70
+ display: '',
71
+ value: ''
72
+ },
73
+ {
74
+ display: 'ABC',
75
+ value: 'ABC'
76
+ },
77
+ {
78
+ display: 'DEF',
79
+ value: 'DEF'
80
+ }
81
+ ]
82
+ }
83
+ },
84
+ {
85
+ name: 'range',
86
+ type: 'number',
87
+ label: 'range',
88
+ operator: 'between'
89
+ },
90
+ {
91
+ name: 'date-range',
92
+ type: 'datetime',
93
+ label: 'date',
94
+ operator: 'between'
95
+ }
96
+ ]
97
+ }
@@ -0,0 +1,142 @@
1
+ body {
2
+ /* theme color */
3
+ --primary-color-rgb: 130, 105, 96;
4
+ --primary-color: rgb(var(--primary-color-rgb));
5
+ --secondary-color-rgb: 78, 78, 90;
6
+ --secondary-color: rgb(var(--secondary-color-rgb));
7
+ --focus-color: var(--theme-white-color);
8
+ --primary-background-color: var(--secondary-color);
9
+ --secondary-background-color: #283644;
10
+ --main-section-background-color: #f5f2ee;
11
+ --theme-white-color: #fff;
12
+ --theme-black-color: rgba(0, 0, 0, 0.9);
13
+
14
+ --focus-background-color: var(--primary-color);
15
+ --primary-text-color: #3c3938;
16
+ --secondary-text-color: var(--primary-color);
17
+
18
+ --opacity-dark-color: rgba(0, 0, 0, 0.4);
19
+ --opacity-light-color: rgba(255, 255, 255, 0.8);
20
+
21
+ /* status color */
22
+ --status-success-color: #35a24a;
23
+ --status-warning-color: #ee8d03;
24
+ --status-danger-color: #d14946;
25
+ --status-info-color: #398ace;
26
+
27
+ /* common style */
28
+ --border-radius: 4px;
29
+ --border-dark-color: 1px solid rgba(0, 0, 0, 0.15);
30
+ --border-light-color: 1px solid rgba(255, 255, 255, 0.3);
31
+
32
+ --box-shadow: 2px 2px 3px 0px rgba(0, 0, 0, 0.1);
33
+
34
+ --theme-font: 'Noto', Helvetica;
35
+
36
+ --margin-default: 9px;
37
+ --margin-narrow: 4px;
38
+ --margin-wide: 15px;
39
+ --padding-default: var(--margin-default);
40
+ --padding-narrow: var(--margin-narrow);
41
+ --padding-wide: var(--margin-wide);
42
+
43
+ --scrollbar-thumb-color: rgba(57, 78, 100, 0.5);
44
+ --scrollbar-thumb-hover-color: var(--primary-color);
45
+
46
+ --fontsize-default: 14px;
47
+ --fontsize-small: 13px;
48
+ --fontsize-large: 16px;
49
+
50
+ /* app layout style */
51
+ --app-grid-template-area: 'header header header' 'nav main aside' 'nav footer aside';
52
+
53
+ /* title & description style */
54
+ --title-margin: var(--margin-narrow) 0;
55
+ --title-font: bold 24px var(--theme-font);
56
+ --title-text-color: var(--secondary-color);
57
+ --title-font-mobile: bold 20px var(--theme-font);
58
+
59
+ --page-description-margin: var(--margin-narrow) 0 var(--margin-wide) 0;
60
+ --page-description-font: normal var(--fontsize-default) / 1.2rem var(--theme-font);
61
+ --page-description-color: var(--secondary-text-color);
62
+
63
+ --subtitle-padding: 12px 5px 3px 5px;
64
+ --subtitle-font: bold 18px var(--theme-font);
65
+ --subtitle-text-color: var(--primary-color);
66
+ --subtitle-border-bottom: 1px solid var(--primary-color);
67
+
68
+ /* icon style */
69
+ --icon-tiny-size: 24px;
70
+ --icon-default-size: 36px;
71
+ --icon-big-size: 48px;
72
+ --icon-default-color: var(--theme-white-color);
73
+
74
+ /* material design component themes */
75
+ --mdc-theme-on-primary: var(--theme-white-color);
76
+ --mdc-theme-primary: var(--secondary-text-color);
77
+ --mdc-theme-on-secondary: var(--theme-white-color);
78
+ --mdc-theme-secondary: var(--primary-color);
79
+ --mdc-button-outline-color: var(--primary-color);
80
+ --mdc-danger-button-primary-color: var(--status-danger-color);
81
+ --mdc-danger-button-outline-color: var(--status-danger-color);
82
+ --mdc-button-outline-width: 1px;
83
+ --mdc-button-horizontal-padding: 16px;
84
+
85
+ /* button style */
86
+ --button-background-color: #fafbfc;
87
+ --button-background-focus-color: var(--primary-color);
88
+ --button-border: var(--border-dark-color);
89
+ --button-border-radius: var(--border-radius);
90
+ --button-margin: var(--margin-default) var(--margin-default) var(--margin-default) 0;
91
+ --button-padding: var(--padding-default);
92
+ --button-color: var(--secondary-color);
93
+ --button-font: normal 15px var(--theme-font);
94
+ --button-text-transform: capitalize;
95
+ --button-active-box-shadow: 1px 1px 1px 0px rgba(0, 0, 0, 0.2);
96
+ --button-activ-border: 1px solid var(--primary-color);
97
+
98
+ --button-primary-background-color: var(--primary-color);
99
+ --button-primary-active-background-color: var(--status-success-color);
100
+ --button-primary-padding: var(--margin-default) var(--margin-wide);
101
+ --button-primary-color: var(--theme-white-color);
102
+ --button-primary-font: bold 16px var(--theme-font);
103
+
104
+ /* table style */
105
+ --th-padding: var(--padding-default) 0 var(--padding-default) var(--padding-default);
106
+ --th-border-top: 2px solid var(--secondary-color);
107
+ --th-text-transform: capitalize;
108
+ --th-font: bold var(--fontsize-small) var(--theme-font);
109
+ --th-color: rgba(var(--secondary-color-rgb), 0.8);
110
+
111
+ --tr-background-color: var(--theme-white-color);
112
+ --tr-background-odd-color: rgba(255, 255, 255, 0.4);
113
+ --tr-background-hover-color: #e1f5fe;
114
+ --td-border-bottom: 1px solid rgba(0, 0, 0, 0.09);
115
+ --td-padding: var(--padding-default);
116
+ --td-font: normal 13px var(--theme-font);
117
+ --td-color: var(--secondary-color);
118
+
119
+ /* form style */
120
+ --label-font: normal var(--fontsize-default) var(--theme-font);
121
+ --label-color: var(--secondary-color);
122
+ --label-text-transform: capitalize;
123
+ --input-margin: var(--margin-narrow) 0;
124
+ --input-padding: var(--padding-default);
125
+ --input-min-width: 200px;
126
+ --input-font: normal var(--fontsize-default) var(--theme-font);
127
+ --input-hint-font: normal var(--fontsize-small) var(--theme-font);
128
+ --input-hint-color: #666;
129
+ --input-container-max-width: 900px;
130
+ --fieldset-margin: var(--padding-wide) 0;
131
+ --fieldset-padding: 0 var(--padding-wide) var(--padding-wide) var(--padding-wide);
132
+ --legend-padding: var(--padding-default) 0;
133
+ --legend-color: var(--secondary-text-color);
134
+ --legend-font: bold 16px var(--theme-font);
135
+ }
136
+
137
+ @media only screen and (max-width: 460px) {
138
+ body {
139
+ /* subtitle style */
140
+ --subtitle-margin: 0;
141
+ }
142
+ }
File without changes