@genesislcap/foundation-forms 14.471.0 → 14.472.0-canary.fui-2558-v1
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.
- package/dist/custom-elements.json +13 -4
- package/dist/dts/filters/filters.d.ts +15 -0
- package/dist/dts/filters/filters.d.ts.map +1 -1
- package/dist/dts/filters/filters.styles.d.ts.map +1 -1
- package/dist/dts/filters/filters.template.d.ts.map +1 -1
- package/dist/esm/filters/filters.js +25 -1
- package/dist/esm/filters/filters.styles.js +176 -18
- package/dist/esm/filters/filters.template.js +35 -31
- package/dist/foundation-forms.api.json +32 -1
- package/dist/foundation-forms.d.ts +15 -0
- package/package.json +15 -15
|
@@ -989,7 +989,7 @@
|
|
|
989
989
|
"type": {
|
|
990
990
|
"text": "array"
|
|
991
991
|
},
|
|
992
|
-
"default": "[\n fallbackEntry,\n stringEntry,\n BooleanControlEntry,\n LayoutVertical2ColumnsEntry,\n LayoutRendererEntry,\n FilterNumberControlRendererEntry,\n ConnectedMultiselectControlRendererEntry,\n EnumControlRendererEntry,\n ConnectedSelectControlRendererEntry,\n FilterDateControlRendererEntry,\n FilterTimeControlRendererEntry,\n InvisibleControlEntry,\n]",
|
|
992
|
+
"default": "[\n fallbackEntry,\n stringEntry,\n BooleanControlEntry,\n LayoutVertical2ColumnsEntry,\n LayoutHorizontalEntry,\n LayoutRendererEntry,\n FilterNumberControlRendererEntry,\n ConnectedMultiselectControlRendererEntry,\n EnumControlRendererEntry,\n ConnectedSelectControlRendererEntry,\n FilterDateControlRendererEntry,\n FilterTimeControlRendererEntry,\n InvisibleControlEntry,\n]",
|
|
993
993
|
"description": "Set of default renderers used by the foundation-filters.",
|
|
994
994
|
"privacy": "public"
|
|
995
995
|
},
|
|
@@ -1035,7 +1035,7 @@
|
|
|
1035
1035
|
"type": {
|
|
1036
1036
|
"text": "boolean"
|
|
1037
1037
|
},
|
|
1038
|
-
"description": "Controls the visibility of the filter persistence controls UI.",
|
|
1038
|
+
"description": "Controls the visibility of the filter persistence controls UI.\nWhen enabled, shows saved-filter select plus save/delete (KV storage).\nCustomize layout from outside via `::part(filter-persistence-controls-container)` or\n`--filter-persistence-controls-container-height` on the host.",
|
|
1039
1039
|
"privacy": "public"
|
|
1040
1040
|
},
|
|
1041
1041
|
{
|
|
@@ -1052,13 +1052,22 @@
|
|
|
1052
1052
|
"description": "UI schema used to define configuration of the layout and elements in the filters\nCheck UiSchema for possible options.",
|
|
1053
1053
|
"privacy": "public"
|
|
1054
1054
|
},
|
|
1055
|
+
{
|
|
1056
|
+
"kind": "method",
|
|
1057
|
+
"name": "uischemaChanged"
|
|
1058
|
+
},
|
|
1059
|
+
{
|
|
1060
|
+
"kind": "method",
|
|
1061
|
+
"name": "syncLayoutDirection",
|
|
1062
|
+
"privacy": "private"
|
|
1063
|
+
},
|
|
1055
1064
|
{
|
|
1056
1065
|
"kind": "field",
|
|
1057
1066
|
"name": "renderers",
|
|
1058
1067
|
"type": {
|
|
1059
1068
|
"text": "RendererEntry[]"
|
|
1060
1069
|
},
|
|
1061
|
-
"default": "[\n fallbackEntry,\n stringEntry,\n BooleanControlEntry,\n LayoutVertical2ColumnsEntry,\n LayoutRendererEntry,\n FilterNumberControlRendererEntry,\n ConnectedMultiselectControlRendererEntry,\n EnumControlRendererEntry,\n ConnectedSelectControlRendererEntry,\n FilterDateControlRendererEntry,\n FilterTimeControlRendererEntry,\n InvisibleControlEntry,\n]",
|
|
1070
|
+
"default": "[\n fallbackEntry,\n stringEntry,\n BooleanControlEntry,\n LayoutVertical2ColumnsEntry,\n LayoutHorizontalEntry,\n LayoutRendererEntry,\n FilterNumberControlRendererEntry,\n ConnectedMultiselectControlRendererEntry,\n EnumControlRendererEntry,\n ConnectedSelectControlRendererEntry,\n FilterDateControlRendererEntry,\n FilterTimeControlRendererEntry,\n InvisibleControlEntry,\n]",
|
|
1062
1071
|
"description": "Allows to provide the main set of renderers used by the form. If not provided, the built-in renderers will be used by default.",
|
|
1063
1072
|
"privacy": "public"
|
|
1064
1073
|
},
|
|
@@ -1373,7 +1382,7 @@
|
|
|
1373
1382
|
"type": {
|
|
1374
1383
|
"text": "boolean"
|
|
1375
1384
|
},
|
|
1376
|
-
"description": "Controls the visibility of the filter persistence controls UI.",
|
|
1385
|
+
"description": "Controls the visibility of the filter persistence controls UI.\nWhen enabled, shows saved-filter select plus save/delete (KV storage).\nCustomize layout from outside via `::part(filter-persistence-controls-container)` or\n`--filter-persistence-controls-container-height` on the host.",
|
|
1377
1386
|
"fieldName": "showFilterPersistenceControls"
|
|
1378
1387
|
},
|
|
1379
1388
|
{
|
|
@@ -396,6 +396,9 @@ export declare class Filters extends Filters_base {
|
|
|
396
396
|
allSavedFilters: any[];
|
|
397
397
|
/**
|
|
398
398
|
* Controls the visibility of the filter persistence controls UI.
|
|
399
|
+
* When enabled, shows saved-filter select plus save/delete (KV storage).
|
|
400
|
+
* Customize layout from outside via `::part(filter-persistence-controls-container)` or
|
|
401
|
+
* `--filter-persistence-controls-container-height` on the host.
|
|
399
402
|
* @public
|
|
400
403
|
*/
|
|
401
404
|
showFilterPersistenceControls: boolean;
|
|
@@ -443,6 +446,18 @@ export declare class Filters extends Filters_base {
|
|
|
443
446
|
* @public
|
|
444
447
|
*/
|
|
445
448
|
uischema: UiSchema;
|
|
449
|
+
/**
|
|
450
|
+
* Reflects the root UI schema layout so filter chrome (scroll vs fixed actions) can adapt.
|
|
451
|
+
* @internal
|
|
452
|
+
*/
|
|
453
|
+
layoutDirection: 'vertical' | 'horizontal';
|
|
454
|
+
uischemaChanged(): void;
|
|
455
|
+
/**
|
|
456
|
+
* Root UI schema layout; used for container chrome (scroll axis, action placement).
|
|
457
|
+
* @internal
|
|
458
|
+
*/
|
|
459
|
+
get layoutMode(): 'vertical' | 'horizontal';
|
|
460
|
+
private syncLayoutDirection;
|
|
446
461
|
/**
|
|
447
462
|
* Allows to provide the main set of renderers used by the form. If not provided, the built-in renderers will be used by default.
|
|
448
463
|
* @public
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../../src/filters/filters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAOnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../../src/filters/filters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAOnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAa1C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAMnD,gBAAgB;AAChB,eAAO,MAAM,aAAa,iDAAqC,CAAC;AAchE;;;GAGG;AACH,eAAO,MAAM,gBAAgB,OAc5B,CAAC;;;;;;;kBAEmB,CAAC;;;;;;;;8BA8CZ,CAAD,cACD,CAAF;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAwCK,CAAL;4IAKH,CAAF;wFAKc,CAAC;+IAUmE,CAAA;2FAIxC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAqC1C,CAAD;;;;;;;;;;;;;;;;;;;;;;;mBAoFK,CAAD;;;;;;;;;;;;;6BA8BmB,CAAC;8BAIZ,CAAC;kBAKS,CAAA;;oBAGA,CAAC;;sBAGG,CAAC;oBAItB,CAAF;;;;;;;;gDAqBA,CAAF;;;;;;;;;;;;;;;;;;uBA2Be,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4EA0BmvF,CAAC;yBAA8E,CAAC;UAAoD,GAAG;WAAgD,GAAG;;gBAA6E,GAAG;;;;;;;WAA4V,GAAG;YAAiD,GAAG;;;;;;;;;;;oBAAupC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAiiO,CAAC;cAA6F,CAAC;eAA8F,CAAC;gBAA+F,CAAC;;;;;;;;;;;;;;SAAulC,CAAC;;;iBAA+E,CAAC;;AAhWnia;;;;;;;;GAQG;AACH,qBAKa,OAAQ,SAAQ,YAAiC;IACjD,SAAS,EAAE,SAAS,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IAE/B;;;;OAIG;IACG,YAAY,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,GAAG,EAAE,CAAM;IAExC;;;;;;OAMG;IAEH,6BAA6B,EAAE,OAAO,CAAC;YAEzB,mBAAmB;IAkBjC;;OAEG;IACI,gBAAgB;IAMvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IACS,QAAQ,EAAE,QAAQ,CAAC;IAE/B;;;OAGG;IAEH,eAAe,EAAE,UAAU,GAAG,YAAY,CAAc;IAExD,eAAe;IAIf;;;OAGG;IACH,IAAI,UAAU,IAAI,UAAU,GAAG,YAAY,CAE1C;IAED,OAAO,CAAC,mBAAmB;IAI3B;;;OAGG;IACS,SAAS,EAAE,aAAa,EAAE,CAAoB;IAC1D;;;;;;OAMG;IACS,UAAU,EAAE,WAAW,CAAC;IACpC;;;OAGG;IAC0C,MAAM,EAAE,MAAM,CAAW;IAE7D,OAAO,CAAC,OAAO,CAAW;IACnC;;;OAGG;IACS,IAAI,EAAE,GAAG,CAAM;IAC3B;;;OAGG;IACS,KAAK,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,YAAY;IAIZ;;OAEG;IACM,SAAS,IAAI,IAAI;IAY1B;;OAEG;IACG,aAAa;IAmCnB;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,WAAW;IAOrB,UAAU;IA0CV,YAAY;IA4BZ,iBAAiB;IAQjB,mBAAmB;IAsBzB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAW9C,cAAc,CAAC,SAAS,EAAE,MAAM;CAcvC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filters.styles.d.ts","sourceRoot":"","sources":["../../../src/filters/filters.styles.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,uBAAuB,
|
|
1
|
+
{"version":3,"file":"filters.styles.d.ts","sourceRoot":"","sources":["../../../src/filters/filters.styles.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,uBAAuB,iDA0PnC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filters.template.d.ts","sourceRoot":"","sources":["../../../src/filters/filters.template.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,gBAAgB;AAChB,eAAO,MAAM,kBAAkB,GAAI,QAAQ,MAAM,
|
|
1
|
+
{"version":3,"file":"filters.template.d.ts","sourceRoot":"","sources":["../../../src/filters/filters.template.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,gBAAgB;AAChB,eAAO,MAAM,kBAAkB,GAAI,QAAQ,MAAM,iEAwFhD,CAAC;AAEF,gBAAgB;AAChB,eAAO,MAAM,yBAAyB,8DAErC,CAAC"}
|
|
@@ -15,6 +15,7 @@ import { FilterDateControlRendererEntry } from '../jsonforms/renderers/FilterDat
|
|
|
15
15
|
import { FilterNumberControlRendererEntry } from '../jsonforms/renderers/FilterNumberControlRenderer';
|
|
16
16
|
import { FilterTimeControlRendererEntry } from '../jsonforms/renderers/FilterTimeControlRenderer';
|
|
17
17
|
import { InvisibleControlEntry } from '../jsonforms/renderers/InvisibleControlRenderer';
|
|
18
|
+
import { LayoutHorizontalEntry } from '../jsonforms/renderers/LayoutHorizontalRenderer';
|
|
18
19
|
import { LayoutRendererEntry } from '../jsonforms/renderers/LayoutRenderer';
|
|
19
20
|
import { LayoutVertical2ColumnsEntry } from '../jsonforms/renderers/LayoutVertical2ColumnsRenderer';
|
|
20
21
|
import { StringControlRendererTemplate } from '../jsonforms/renderers/StringControlRenderer';
|
|
@@ -43,6 +44,7 @@ export const filtersRenderers = [
|
|
|
43
44
|
stringEntry,
|
|
44
45
|
BooleanControlEntry,
|
|
45
46
|
LayoutVertical2ColumnsEntry,
|
|
47
|
+
LayoutHorizontalEntry,
|
|
46
48
|
LayoutRendererEntry,
|
|
47
49
|
FilterNumberControlRendererEntry,
|
|
48
50
|
ConnectedMultiselectControlRendererEntry,
|
|
@@ -67,6 +69,11 @@ let Filters = class Filters extends LifecycleMixin(FoundationElement) {
|
|
|
67
69
|
constructor() {
|
|
68
70
|
super(...arguments);
|
|
69
71
|
this.allSavedFilters = [];
|
|
72
|
+
/**
|
|
73
|
+
* Reflects the root UI schema layout so filter chrome (scroll vs fixed actions) can adapt.
|
|
74
|
+
* @internal
|
|
75
|
+
*/
|
|
76
|
+
this.layoutDirection = 'vertical';
|
|
70
77
|
/**
|
|
71
78
|
* Allows to provide the main set of renderers used by the form. If not provided, the built-in renderers will be used by default.
|
|
72
79
|
* @public
|
|
@@ -107,6 +114,20 @@ let Filters = class Filters extends LifecycleMixin(FoundationElement) {
|
|
|
107
114
|
this.value = '';
|
|
108
115
|
this.filterName = '';
|
|
109
116
|
}
|
|
117
|
+
uischemaChanged() {
|
|
118
|
+
this.syncLayoutDirection();
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Root UI schema layout; used for container chrome (scroll axis, action placement).
|
|
122
|
+
* @internal
|
|
123
|
+
*/
|
|
124
|
+
get layoutMode() {
|
|
125
|
+
var _a;
|
|
126
|
+
return ((_a = this.uischema) === null || _a === void 0 ? void 0 : _a.type) === 'HorizontalLayout' ? 'horizontal' : 'vertical';
|
|
127
|
+
}
|
|
128
|
+
syncLayoutDirection() {
|
|
129
|
+
this.layoutDirection = this.layoutMode;
|
|
130
|
+
}
|
|
110
131
|
/**
|
|
111
132
|
* @internal
|
|
112
133
|
*/
|
|
@@ -236,6 +257,7 @@ let Filters = class Filters extends LifecycleMixin(FoundationElement) {
|
|
|
236
257
|
});
|
|
237
258
|
return __awaiter(this, void 0, void 0, function* () {
|
|
238
259
|
_super.connectedCallback.call(this);
|
|
260
|
+
this.syncLayoutDirection();
|
|
239
261
|
if (this.showFilterPersistenceControls) {
|
|
240
262
|
yield this.loadAllSavedFilters();
|
|
241
263
|
}
|
|
@@ -313,6 +335,9 @@ __decorate([
|
|
|
313
335
|
__decorate([
|
|
314
336
|
observable
|
|
315
337
|
], Filters.prototype, "uischema", void 0);
|
|
338
|
+
__decorate([
|
|
339
|
+
attr({ attribute: 'layout-direction', mode: 'fromView' })
|
|
340
|
+
], Filters.prototype, "layoutDirection", void 0);
|
|
316
341
|
__decorate([
|
|
317
342
|
observable
|
|
318
343
|
], Filters.prototype, "renderers", void 0);
|
|
@@ -336,7 +361,6 @@ Filters = __decorate([
|
|
|
336
361
|
name: 'foundation-filters',
|
|
337
362
|
template,
|
|
338
363
|
styles,
|
|
339
|
-
shadowOptions: null,
|
|
340
364
|
})
|
|
341
365
|
], Filters);
|
|
342
366
|
export { Filters };
|
|
@@ -4,92 +4,250 @@ import { forcedColorsStylesheetBehavior } from '@microsoft/fast-foundation';
|
|
|
4
4
|
import { SystemColors } from '@microsoft/fast-web-utilities';
|
|
5
5
|
import { controlWrapperStylesFor } from '../jsonforms/renderers/ControlWrapperRenderer';
|
|
6
6
|
export const foundationFiltersStyles = css `
|
|
7
|
-
${controlWrapperStylesFor('
|
|
7
|
+
${controlWrapperStylesFor(':host')}
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
:host {
|
|
10
10
|
display: flex;
|
|
11
|
+
flex-direction: column;
|
|
11
12
|
height: 100%;
|
|
12
13
|
width: 100%;
|
|
13
14
|
border: calc(${strokeWidth} * 1px) solid transparent;
|
|
14
15
|
margin: 0;
|
|
15
16
|
border-radius: calc(${controlCornerRadius} * 1px);
|
|
16
17
|
min-width: 64px;
|
|
18
|
+
min-height: 0;
|
|
19
|
+
overflow: hidden;
|
|
17
20
|
|
|
18
21
|
--filter-persistence-controls-container-height: 145px;
|
|
22
|
+
--filter-horizontal-field-min-width: calc(var(--design-unit) * 30px);
|
|
23
|
+
--filter-forms-padding-inline: calc(var(--design-unit) * 4px);
|
|
24
|
+
--filter-forms-padding-scroll-end: calc(var(--design-unit) * 6px);
|
|
19
25
|
}
|
|
20
26
|
|
|
21
|
-
|
|
27
|
+
.header {
|
|
22
28
|
padding: calc(var(--design-unit) * 4px);
|
|
23
29
|
}
|
|
24
30
|
|
|
25
|
-
|
|
31
|
+
.header h2 {
|
|
26
32
|
margin: 0;
|
|
27
33
|
}
|
|
28
34
|
|
|
29
|
-
|
|
35
|
+
.container {
|
|
30
36
|
width: 100%;
|
|
31
37
|
display: flex;
|
|
32
38
|
flex-direction: column;
|
|
39
|
+
flex: 1;
|
|
40
|
+
min-height: 0;
|
|
41
|
+
overflow: hidden;
|
|
33
42
|
}
|
|
34
43
|
|
|
35
|
-
|
|
44
|
+
.container-body {
|
|
45
|
+
display: flex;
|
|
36
46
|
overflow: hidden;
|
|
37
|
-
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.container-forms {
|
|
50
|
+
--foundation-filters-scrollbar-thumb: var(--neutral-layer-2);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/* Vertical root layout: fields scroll, actions pinned below */
|
|
54
|
+
.container-body.vertical {
|
|
55
|
+
flex: 1;
|
|
56
|
+
flex-direction: column;
|
|
57
|
+
min-height: 0;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.container-body.vertical .container-forms {
|
|
38
61
|
display: flex;
|
|
62
|
+
flex-direction: column;
|
|
63
|
+
align-items: stretch;
|
|
64
|
+
flex: 1;
|
|
65
|
+
min-height: 0;
|
|
66
|
+
overflow-x: hidden;
|
|
67
|
+
overflow-y: auto;
|
|
68
|
+
scrollbar-gutter: stable;
|
|
69
|
+
scrollbar-width: thin;
|
|
70
|
+
scrollbar-color: var(--foundation-filters-scrollbar-thumb) var(--neutral-layer-4);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.container-body.vertical .container-forms::-webkit-scrollbar {
|
|
74
|
+
width: calc((var(--base-height-multiplier) + var(--design-unit)) * 1px);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.container-body.vertical .container-forms::-webkit-scrollbar-track {
|
|
78
|
+
background: var(--neutral-layer-4);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.container-body.vertical .container-forms::-webkit-scrollbar-thumb {
|
|
82
|
+
background-color: var(--foundation-filters-scrollbar-thumb);
|
|
83
|
+
border-radius: calc(${controlCornerRadius} * 1px);
|
|
39
84
|
}
|
|
40
85
|
|
|
41
|
-
|
|
86
|
+
/* Horizontal root layout: fields scroll sideways, actions on the right (same row) */
|
|
87
|
+
.container-body.horizontal {
|
|
88
|
+
flex: 0 1 auto;
|
|
89
|
+
flex-direction: row;
|
|
90
|
+
align-items: flex-end;
|
|
91
|
+
width: 100%;
|
|
92
|
+
min-height: 0;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.container-body.horizontal .container-forms {
|
|
96
|
+
display: flex;
|
|
97
|
+
flex: 1 1 auto;
|
|
98
|
+
min-width: 0;
|
|
99
|
+
overflow-x: auto;
|
|
100
|
+
overflow-y: hidden;
|
|
101
|
+
scrollbar-width: thin;
|
|
102
|
+
scrollbar-color: var(--foundation-filters-scrollbar-thumb) var(--neutral-layer-4);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.container-body.horizontal .container-forms::-webkit-scrollbar {
|
|
106
|
+
height: calc((var(--base-height-multiplier) + var(--design-unit)) * 1px);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
.container-body.horizontal .container-forms::-webkit-scrollbar-track {
|
|
110
|
+
background: var(--neutral-layer-4);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
.container-body.horizontal .container-forms::-webkit-scrollbar-thumb {
|
|
114
|
+
background-color: var(--foundation-filters-scrollbar-thumb);
|
|
115
|
+
border-radius: calc(${controlCornerRadius} * 1px);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.container-forms json-forms {
|
|
42
119
|
width: 100%;
|
|
43
|
-
padding: 0
|
|
120
|
+
padding: 0 var(--filter-forms-padding-inline);
|
|
121
|
+
box-sizing: border-box;
|
|
122
|
+
display: flex;
|
|
123
|
+
flex-direction: column;
|
|
124
|
+
align-items: stretch;
|
|
125
|
+
min-width: 0;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
.container-body.vertical .container-forms json-forms {
|
|
129
|
+
flex: 1 1 auto;
|
|
130
|
+
min-height: 0;
|
|
131
|
+
padding-right: var(--filter-forms-padding-scroll-end);
|
|
44
132
|
}
|
|
45
133
|
|
|
46
|
-
|
|
134
|
+
json-forms .clipboard-button {
|
|
135
|
+
align-self: flex-start;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
dispatch-renderer {
|
|
139
|
+
display: block;
|
|
140
|
+
width: 100%;
|
|
141
|
+
min-width: 0;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
.fl-vertical-layout {
|
|
145
|
+
display: flex;
|
|
146
|
+
flex-direction: column;
|
|
147
|
+
width: 100%;
|
|
148
|
+
align-items: stretch;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
.foundation-control-wrapper-root {
|
|
152
|
+
width: 100%;
|
|
153
|
+
box-sizing: border-box;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
.foundation-control-wrapper {
|
|
157
|
+
flex: 1 1 auto;
|
|
158
|
+
min-width: 0;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
.container-body.horizontal .container-forms json-forms {
|
|
162
|
+
width: 100%;
|
|
163
|
+
min-width: 0;
|
|
164
|
+
flex: 1 1 auto;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
.fl-horizontal-layout {
|
|
168
|
+
display: flex;
|
|
169
|
+
flex-direction: row;
|
|
170
|
+
gap: calc(${designUnit} * 2px);
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
.fl-horizontal-layout-item {
|
|
174
|
+
flex: 1;
|
|
175
|
+
min-width: 0;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
.container-body.horizontal .fl-horizontal-layout {
|
|
179
|
+
flex-wrap: nowrap;
|
|
180
|
+
width: 100%;
|
|
181
|
+
min-width: min-content;
|
|
182
|
+
align-items: flex-end;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
.container-body.horizontal .fl-horizontal-layout-item {
|
|
186
|
+
flex: 1 1 0;
|
|
187
|
+
min-width: var(--filter-horizontal-field-min-width);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
.label {
|
|
47
191
|
font-size: calc(${designUnit} * 1px + 0.7vmin);
|
|
48
192
|
}
|
|
49
193
|
|
|
50
|
-
|
|
194
|
+
.actions {
|
|
51
195
|
display: flex;
|
|
52
196
|
flex-direction: row;
|
|
53
197
|
align-items: flex-start;
|
|
54
198
|
justify-content: flex-end;
|
|
55
199
|
padding: calc(${designUnit} * 4px);
|
|
56
200
|
gap: calc(${designUnit} * 2px);
|
|
201
|
+
flex-shrink: 0;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
.container-body.horizontal .actions {
|
|
205
|
+
flex-direction: row;
|
|
206
|
+
justify-content: flex-start;
|
|
207
|
+
align-items: center;
|
|
208
|
+
align-self: flex-end;
|
|
209
|
+
padding: 0 calc(${designUnit} * 4px) calc(${designUnit} * 4px);
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
.action-button {
|
|
213
|
+
width: 70px;
|
|
57
214
|
}
|
|
58
215
|
|
|
59
|
-
|
|
216
|
+
.container-body.horizontal .action-button {
|
|
60
217
|
width: 70px;
|
|
61
218
|
}
|
|
62
219
|
|
|
63
|
-
|
|
220
|
+
.filter-persistence-controls-container {
|
|
64
221
|
display: flex;
|
|
65
222
|
flex-direction: column;
|
|
66
223
|
height: var(--filter-persistence-controls-container-height);
|
|
67
224
|
padding: 5px 15px;
|
|
225
|
+
flex-shrink: 0;
|
|
68
226
|
}
|
|
69
227
|
|
|
70
|
-
|
|
228
|
+
.filter-persistence-controls {
|
|
71
229
|
display: flex;
|
|
72
230
|
flex-direction: column;
|
|
73
231
|
width: 100%;
|
|
74
232
|
padding-bottom: 10px;
|
|
75
233
|
}
|
|
76
234
|
|
|
77
|
-
|
|
235
|
+
.filter-persistence-controls > rapid-label {
|
|
78
236
|
margin-bottom: calc(var(--design-unit) * 1px);
|
|
79
237
|
color: var(--neutral-foreground-hint);
|
|
80
238
|
}
|
|
81
239
|
|
|
82
|
-
|
|
240
|
+
.filter-persistence-controls-components {
|
|
83
241
|
display: flex;
|
|
84
242
|
gap: 10px;
|
|
85
243
|
}
|
|
86
244
|
|
|
87
|
-
|
|
245
|
+
.filter-persistence-controls-components > rapid-button {
|
|
88
246
|
width: 100px;
|
|
89
247
|
justify-content: center;
|
|
90
248
|
}
|
|
91
249
|
`.withBehaviors(forcedColorsStylesheetBehavior(css `
|
|
92
|
-
|
|
250
|
+
:host {
|
|
93
251
|
background: ${SystemColors.Canvas};
|
|
94
252
|
border-color: ${SystemColors.CanvasText};
|
|
95
253
|
}
|
|
@@ -8,7 +8,10 @@ export const getPrefixedFilters = (prefix) => html `
|
|
|
8
8
|
<template>
|
|
9
9
|
<div class="container" part="container">
|
|
10
10
|
${when((x) => x.showFilterPersistenceControls, html `
|
|
11
|
-
<div
|
|
11
|
+
<div
|
|
12
|
+
class="filter-persistence-controls-container"
|
|
13
|
+
part="filter-persistence-controls-container"
|
|
14
|
+
>
|
|
12
15
|
<div class="filter-persistence-controls">
|
|
13
16
|
<rapid-label>Saved Filters</rapid-label>
|
|
14
17
|
<rapid-select :value=${sync((x) => x.filterName)}>
|
|
@@ -49,36 +52,37 @@ export const getPrefixedFilters = (prefix) => html `
|
|
|
49
52
|
</div>
|
|
50
53
|
<rapid-divider></rapid-divider>
|
|
51
54
|
`)}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
55
|
+
<div class="${(x) => `container-body ${x.layoutMode}`}" part="container-body">
|
|
56
|
+
<div class="container-forms" part="container-forms">
|
|
57
|
+
<json-forms
|
|
58
|
+
:renderers=${(x) => x.renderers}
|
|
59
|
+
:uischema=${(x) => x.uischema}
|
|
60
|
+
:schema=${(x) => x.jsonSchema}
|
|
61
|
+
:data=${(x) => x.data}
|
|
62
|
+
:prefix=${(x) => x.prefix}
|
|
63
|
+
@data-change=${(x, c) => x.onChange(c.event)}
|
|
64
|
+
></json-forms>
|
|
65
|
+
</div>
|
|
66
|
+
<div class="actions" part="actions">
|
|
67
|
+
<slot name="actions-start"></slot>
|
|
68
|
+
<${prefix}-button
|
|
69
|
+
@click="${(x) => x.clearFiltersData()}"
|
|
70
|
+
class="action-button"
|
|
71
|
+
appearance="neutral"
|
|
72
|
+
data-test-id="clear-filters-button"
|
|
73
|
+
>
|
|
74
|
+
Clear
|
|
75
|
+
</${prefix}-button>
|
|
76
|
+
<${prefix}-button
|
|
77
|
+
@click="${(x) => x.searchFilters()}"
|
|
78
|
+
data-test-id="search-filters-button"
|
|
79
|
+
class="action-button"
|
|
80
|
+
appearance="accent"
|
|
81
|
+
>
|
|
82
|
+
Search
|
|
83
|
+
</${prefix}-button>
|
|
84
|
+
<slot name="actions-end"></slot>
|
|
85
|
+
</div>
|
|
82
86
|
</div>
|
|
83
87
|
</div>
|
|
84
88
|
</template>
|
|
@@ -1734,7 +1734,7 @@
|
|
|
1734
1734
|
{
|
|
1735
1735
|
"kind": "Property",
|
|
1736
1736
|
"canonicalReference": "@genesislcap/foundation-forms!Filters#showFilterPersistenceControls:member",
|
|
1737
|
-
"docComment": "/**\n * Controls the visibility of the filter persistence controls UI.\n *\n * @public\n */\n",
|
|
1737
|
+
"docComment": "/**\n * Controls the visibility of the filter persistence controls UI. When enabled, shows saved-filter select plus save/delete (KV storage). Customize layout from outside via `::part(filter-persistence-controls-container)` or `--filter-persistence-controls-container-height` on the host.\n *\n * @public\n */\n",
|
|
1738
1738
|
"excerptTokens": [
|
|
1739
1739
|
{
|
|
1740
1740
|
"kind": "Content",
|
|
@@ -1792,6 +1792,37 @@
|
|
|
1792
1792
|
"isProtected": false,
|
|
1793
1793
|
"isAbstract": false
|
|
1794
1794
|
},
|
|
1795
|
+
{
|
|
1796
|
+
"kind": "Method",
|
|
1797
|
+
"canonicalReference": "@genesislcap/foundation-forms!Filters#uischemaChanged:member(1)",
|
|
1798
|
+
"docComment": "",
|
|
1799
|
+
"excerptTokens": [
|
|
1800
|
+
{
|
|
1801
|
+
"kind": "Content",
|
|
1802
|
+
"text": "uischemaChanged(): "
|
|
1803
|
+
},
|
|
1804
|
+
{
|
|
1805
|
+
"kind": "Content",
|
|
1806
|
+
"text": "void"
|
|
1807
|
+
},
|
|
1808
|
+
{
|
|
1809
|
+
"kind": "Content",
|
|
1810
|
+
"text": ";"
|
|
1811
|
+
}
|
|
1812
|
+
],
|
|
1813
|
+
"isStatic": false,
|
|
1814
|
+
"returnTypeTokenRange": {
|
|
1815
|
+
"startIndex": 1,
|
|
1816
|
+
"endIndex": 2
|
|
1817
|
+
},
|
|
1818
|
+
"releaseTag": "Public",
|
|
1819
|
+
"isProtected": false,
|
|
1820
|
+
"overloadIndex": 1,
|
|
1821
|
+
"parameters": [],
|
|
1822
|
+
"isOptional": false,
|
|
1823
|
+
"isAbstract": false,
|
|
1824
|
+
"name": "uischemaChanged"
|
|
1825
|
+
},
|
|
1795
1826
|
{
|
|
1796
1827
|
"kind": "Property",
|
|
1797
1828
|
"canonicalReference": "@genesislcap/foundation-forms!Filters#value:member",
|
|
@@ -543,6 +543,9 @@ export declare class Filters extends Filters_base {
|
|
|
543
543
|
allSavedFilters: any[];
|
|
544
544
|
/**
|
|
545
545
|
* Controls the visibility of the filter persistence controls UI.
|
|
546
|
+
* When enabled, shows saved-filter select plus save/delete (KV storage).
|
|
547
|
+
* Customize layout from outside via `::part(filter-persistence-controls-container)` or
|
|
548
|
+
* `--filter-persistence-controls-container-height` on the host.
|
|
546
549
|
* @public
|
|
547
550
|
*/
|
|
548
551
|
showFilterPersistenceControls: boolean;
|
|
@@ -590,6 +593,18 @@ export declare class Filters extends Filters_base {
|
|
|
590
593
|
* @public
|
|
591
594
|
*/
|
|
592
595
|
uischema: UiSchema;
|
|
596
|
+
/**
|
|
597
|
+
* Reflects the root UI schema layout so filter chrome (scroll vs fixed actions) can adapt.
|
|
598
|
+
* @internal
|
|
599
|
+
*/
|
|
600
|
+
layoutDirection: 'vertical' | 'horizontal';
|
|
601
|
+
uischemaChanged(): void;
|
|
602
|
+
/**
|
|
603
|
+
* Root UI schema layout; used for container chrome (scroll axis, action placement).
|
|
604
|
+
* @internal
|
|
605
|
+
*/
|
|
606
|
+
get layoutMode(): 'vertical' | 'horizontal';
|
|
607
|
+
private syncLayoutDirection;
|
|
593
608
|
/**
|
|
594
609
|
* Allows to provide the main set of renderers used by the form. If not provided, the built-in renderers will be used by default.
|
|
595
610
|
* @public
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@genesislcap/foundation-forms",
|
|
3
3
|
"description": "Genesis Foundation Forms",
|
|
4
|
-
"version": "14.
|
|
4
|
+
"version": "14.472.0-canary.fui-2558-v1",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"license": "SEE LICENSE IN license.txt",
|
|
7
7
|
"main": "dist/esm/index.js",
|
|
@@ -59,13 +59,13 @@
|
|
|
59
59
|
}
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
|
-
"@genesislcap/foundation-testing": "14.
|
|
63
|
-
"@genesislcap/genx": "14.
|
|
64
|
-
"@genesislcap/rollup-builder": "14.
|
|
65
|
-
"@genesislcap/ts-builder": "14.
|
|
66
|
-
"@genesislcap/uvu-playwright-builder": "14.
|
|
67
|
-
"@genesislcap/vite-builder": "14.
|
|
68
|
-
"@genesislcap/webpack-builder": "14.
|
|
62
|
+
"@genesislcap/foundation-testing": "14.472.0-canary.fui-2558-v1",
|
|
63
|
+
"@genesislcap/genx": "14.472.0-canary.fui-2558-v1",
|
|
64
|
+
"@genesislcap/rollup-builder": "14.472.0-canary.fui-2558-v1",
|
|
65
|
+
"@genesislcap/ts-builder": "14.472.0-canary.fui-2558-v1",
|
|
66
|
+
"@genesislcap/uvu-playwright-builder": "14.472.0-canary.fui-2558-v1",
|
|
67
|
+
"@genesislcap/vite-builder": "14.472.0-canary.fui-2558-v1",
|
|
68
|
+
"@genesislcap/webpack-builder": "14.472.0-canary.fui-2558-v1",
|
|
69
69
|
"@types/json-schema": "^7.0.11",
|
|
70
70
|
"@types/papaparse": "^5.3.14"
|
|
71
71
|
},
|
|
@@ -82,12 +82,12 @@
|
|
|
82
82
|
}
|
|
83
83
|
},
|
|
84
84
|
"dependencies": {
|
|
85
|
-
"@genesislcap/foundation-comms": "14.
|
|
86
|
-
"@genesislcap/foundation-criteria": "14.
|
|
87
|
-
"@genesislcap/foundation-logger": "14.
|
|
88
|
-
"@genesislcap/foundation-notifications": "14.
|
|
89
|
-
"@genesislcap/foundation-ui": "14.
|
|
90
|
-
"@genesislcap/foundation-utils": "14.
|
|
85
|
+
"@genesislcap/foundation-comms": "14.472.0-canary.fui-2558-v1",
|
|
86
|
+
"@genesislcap/foundation-criteria": "14.472.0-canary.fui-2558-v1",
|
|
87
|
+
"@genesislcap/foundation-logger": "14.472.0-canary.fui-2558-v1",
|
|
88
|
+
"@genesislcap/foundation-notifications": "14.472.0-canary.fui-2558-v1",
|
|
89
|
+
"@genesislcap/foundation-ui": "14.472.0-canary.fui-2558-v1",
|
|
90
|
+
"@genesislcap/foundation-utils": "14.472.0-canary.fui-2558-v1",
|
|
91
91
|
"@json-schema-tools/dereferencer": "^1.6.1",
|
|
92
92
|
"@jsonforms/core": "^3.2.1",
|
|
93
93
|
"@microsoft/fast-components": "2.30.6",
|
|
@@ -109,5 +109,5 @@
|
|
|
109
109
|
"access": "public"
|
|
110
110
|
},
|
|
111
111
|
"customElements": "dist/custom-elements.json",
|
|
112
|
-
"gitHead": "
|
|
112
|
+
"gitHead": "e905549de3c3dc04a1da47b7bf167b65b0e9413b"
|
|
113
113
|
}
|