@genesislcap/foundation-forms 14.276.0 → 14.276.1

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.
@@ -547,7 +547,7 @@
547
547
  "type": {
548
548
  "text": "array"
549
549
  },
550
- "default": "[\n fallbackEntry,\n stringEntry,\n BooleanControlEntry,\n LayoutVertical2ColumnsEntry,\n LayoutRendererEntry,\n FilterNumberControlRendererEntry,\n ConnectedMultiselectControlRendererEntry,\n EnumControlRendererEntry,\n ConnectedSelectControlRendererEntry,\n FilterDateControlRendererEntry,\n InvisibleControlEntry,\n]",
550
+ "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]",
551
551
  "description": "Set of default renderers used by the foundation-filters.",
552
552
  "privacy": "public"
553
553
  },
@@ -616,7 +616,7 @@
616
616
  "type": {
617
617
  "text": "RendererEntry[]"
618
618
  },
619
- "default": "[\n fallbackEntry,\n stringEntry,\n BooleanControlEntry,\n LayoutVertical2ColumnsEntry,\n LayoutRendererEntry,\n FilterNumberControlRendererEntry,\n ConnectedMultiselectControlRendererEntry,\n EnumControlRendererEntry,\n ConnectedSelectControlRendererEntry,\n FilterDateControlRendererEntry,\n InvisibleControlEntry,\n]",
619
+ "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]",
620
620
  "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.",
621
621
  "privacy": "public"
622
622
  },
@@ -1103,6 +1103,48 @@
1103
1103
  "declarations": [],
1104
1104
  "exports": []
1105
1105
  },
1106
+ {
1107
+ "kind": "javascript-module",
1108
+ "path": "src/utils/form-utils.ts",
1109
+ "declarations": [
1110
+ {
1111
+ "kind": "function",
1112
+ "name": "removeDataPropertiesNotInSchema",
1113
+ "return": {
1114
+ "type": {
1115
+ "text": ""
1116
+ }
1117
+ },
1118
+ "parameters": [
1119
+ {
1120
+ "name": "data",
1121
+ "type": {
1122
+ "text": "any"
1123
+ },
1124
+ "description": "The data object to clean"
1125
+ },
1126
+ {
1127
+ "name": "jsonSchema",
1128
+ "type": {
1129
+ "text": "JSONSchema7"
1130
+ },
1131
+ "description": "The JSON schema to validate against"
1132
+ }
1133
+ ],
1134
+ "description": "Removes data properties that aren't part of the schema"
1135
+ }
1136
+ ],
1137
+ "exports": [
1138
+ {
1139
+ "kind": "js",
1140
+ "name": "removeDataPropertiesNotInSchema",
1141
+ "declaration": {
1142
+ "name": "removeDataPropertiesNotInSchema",
1143
+ "module": "src/utils/form-utils.ts"
1144
+ }
1145
+ }
1146
+ ]
1147
+ },
1106
1148
  {
1107
1149
  "kind": "javascript-module",
1108
1150
  "path": "src/utils/index.ts",
@@ -1819,6 +1861,51 @@
1819
1861
  }
1820
1862
  ]
1821
1863
  },
1864
+ {
1865
+ "kind": "javascript-module",
1866
+ "path": "src/jsonforms/renderers/FilterTimeControlRenderer.ts",
1867
+ "declarations": [
1868
+ {
1869
+ "kind": "function",
1870
+ "name": "TimeControlRendererTemplate",
1871
+ "parameters": [
1872
+ {
1873
+ "name": "prefix",
1874
+ "default": "'zero'",
1875
+ "type": {
1876
+ "text": "string"
1877
+ }
1878
+ }
1879
+ ]
1880
+ },
1881
+ {
1882
+ "kind": "variable",
1883
+ "name": "FilterTimeControlRendererEntry",
1884
+ "type": {
1885
+ "text": "RendererEntry"
1886
+ },
1887
+ "default": "{\n renderer: html`\n ${(x) => TimeControlRendererTemplate(x.prefix)}\n `,\n tester: rankWith(TIME_CONTROL_RANK, isOneOfTime),\n mapper: mapStateToControlProps, // TODO: change mapper to handle dates instead of doing it in the template\n}"
1888
+ }
1889
+ ],
1890
+ "exports": [
1891
+ {
1892
+ "kind": "js",
1893
+ "name": "TimeControlRendererTemplate",
1894
+ "declaration": {
1895
+ "name": "TimeControlRendererTemplate",
1896
+ "module": "src/jsonforms/renderers/FilterTimeControlRenderer.ts"
1897
+ }
1898
+ },
1899
+ {
1900
+ "kind": "js",
1901
+ "name": "FilterTimeControlRendererEntry",
1902
+ "declaration": {
1903
+ "name": "FilterTimeControlRendererEntry",
1904
+ "module": "src/jsonforms/renderers/FilterTimeControlRenderer.ts"
1905
+ }
1906
+ }
1907
+ ]
1908
+ },
1822
1909
  {
1823
1910
  "kind": "javascript-module",
1824
1911
  "path": "src/jsonforms/renderers/InvisibleControlRenderer.ts",
@@ -2271,6 +2358,14 @@
2271
2358
  },
2272
2359
  "default": "4"
2273
2360
  },
2361
+ {
2362
+ "kind": "variable",
2363
+ "name": "TIME_CONTROL_RANK",
2364
+ "type": {
2365
+ "text": "number"
2366
+ },
2367
+ "default": "4"
2368
+ },
2274
2369
  {
2275
2370
  "kind": "variable",
2276
2371
  "name": "LAYOUT_RANK",
@@ -2393,6 +2488,14 @@
2393
2488
  "module": "src/jsonforms/renderers/RenderersRanks.ts"
2394
2489
  }
2395
2490
  },
2491
+ {
2492
+ "kind": "js",
2493
+ "name": "TIME_CONTROL_RANK",
2494
+ "declaration": {
2495
+ "name": "TIME_CONTROL_RANK",
2496
+ "module": "src/jsonforms/renderers/RenderersRanks.ts"
2497
+ }
2498
+ },
2396
2499
  {
2397
2500
  "kind": "js",
2398
2501
  "name": "LAYOUT_RANK",
@@ -2924,6 +3027,26 @@
2924
3027
  }
2925
3028
  ]
2926
3029
  },
3030
+ {
3031
+ "kind": "javascript-module",
3032
+ "path": "src/jsonforms/testers/isTime.ts",
3033
+ "declarations": [
3034
+ {
3035
+ "kind": "variable",
3036
+ "name": "isOneOfTime"
3037
+ }
3038
+ ],
3039
+ "exports": [
3040
+ {
3041
+ "kind": "js",
3042
+ "name": "isOneOfTime",
3043
+ "declaration": {
3044
+ "name": "isOneOfTime",
3045
+ "module": "src/jsonforms/testers/isTime.ts"
3046
+ }
3047
+ }
3048
+ ]
3049
+ },
2927
3050
  {
2928
3051
  "kind": "javascript-module",
2929
3052
  "path": "src/jsonforms/testers/optionIs.ts",
@@ -110,7 +110,7 @@ export declare class Filters extends FoundationElement {
110
110
  /**
111
111
  * @internal
112
112
  */
113
- searchFilters(): void;
113
+ searchFilters(): Promise<void>;
114
114
  /**
115
115
  * @internal
116
116
  */
@@ -1 +1 @@
1
- {"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../../src/filters/filters.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAM1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAY1C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAKnD,gBAAgB;AAChB,eAAO,MAAM,aAAa,iDAAqC,CAAC;AAchE;;;GAGG;AACH,eAAO,MAAM,gBAAgB,OAY5B,CAAC;AAKF;;;;;GAKG;AACH,qBAKa,OAAQ,SAAQ,iBAAiB;IACjC,SAAS,EAAE,SAAS,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IAE/B;;;;OAIG;IACG,YAAY,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,GAAG,EAAE,CAAM;IAExC;;;OAGG;IAEH,6BAA6B,EAAE,OAAO,CAAC;YAEzB,mBAAmB;IAWjC;;OAEG;IACI,gBAAgB;IAMvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IACS,QAAQ,EAAE,QAAQ,CAAC;IAC/B;;;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;IACH,aAAa;IAyBb;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,WAAW;IAO3B;;OAEG;IACH,oBAAoB;IAMd,UAAU;IA0CV,YAAY;IA4BZ,iBAAiB;IAOjB,mBAAmB;IAsBzB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAU9C,cAAc,CAAC,SAAS,EAAE,MAAM;CAiBvC"}
1
+ {"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../../src/filters/filters.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAM1D,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,OAa5B,CAAC;AAKF;;;;;GAKG;AACH,qBAKa,OAAQ,SAAQ,iBAAiB;IACjC,SAAS,EAAE,SAAS,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IAE/B;;;;OAIG;IACG,YAAY,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,GAAG,EAAE,CAAM;IAExC;;;OAGG;IAEH,6BAA6B,EAAE,OAAO,CAAC;YAEzB,mBAAmB;IAWjC;;OAEG;IACI,gBAAgB;IAMvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IACS,QAAQ,EAAE,QAAQ,CAAC;IAC/B;;;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;IACG,aAAa;IAkCnB;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,WAAW;IAO3B;;OAEG;IACH,oBAAoB;IAMd,UAAU;IA0CV,YAAY;IA4BZ,iBAAiB;IAOjB,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.template.d.ts","sourceRoot":"","sources":["../../../src/filters/filters.template.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMzC,gBAAgB;AAChB,eAAO,MAAM,kBAAkB,WAAY,MAAM,iEAsFhD,CAAC;AAEF,gBAAgB;AAChB,eAAO,MAAM,yBAAyB,8DAErC,CAAC"}
1
+ {"version":3,"file":"filters.template.d.ts","sourceRoot":"","sources":["../../../src/filters/filters.template.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMzC,gBAAgB;AAChB,eAAO,MAAM,kBAAkB,WAAY,MAAM,iEAoFhD,CAAC;AAEF,gBAAgB;AAChB,eAAO,MAAM,yBAAyB,8DAErC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../src/form.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAoB1C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAelD;;;GAGG;AACH,eAAO,MAAM,SAAS,OAkBrB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACF;;;;;GAKG;AACH,qBAKa,IAAK,SAAQ,SAAiC;IACzD;;;OAGG;IAC0C,MAAM,EAAE,MAAM,CAAW;IACtE;;;;OAIG;IACG,YAAY,EAAE,MAAM,CAAC;YACb,mBAAmB;IAcjC,OAAO,CAAC,oBAAoB;IA0B5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IACS,QAAQ,EAAE,QAAQ,CAAC;IAC/B;;;OAGG;IACS,SAAS,EAAE,aAAa,EAAE,CAAa;IACnD;;OAEG;IACH,gBAAgB;IAGhB;;;OAGG;IACS,mBAAmB,EAAE,aAAa,EAAE,CAAM;IACtD;;OAEG;IACH,0BAA0B;IAG1B;;;;;OAKG;IACS,eAAe,EAAE,aAAa,EAAE,CAAa;IACzD,OAAO,CAAC,qBAAqB;IAI7B;;;;;;OAMG;IACS,UAAU,EAAE,WAAW,CAAC;IAEpC,OAAO,CAAC,MAAM,CAAqB;IAC1B,OAAO,CAAC,OAAO,CAAW;IACnC;;;OAGG;IACS,IAAI,EAAE,GAAG,CAAM;IAE3B;;OAEG;IACS,UAAU,EAAE,OAAO,CAAC;IAChC;;OAEG;IACS,SAAS,EAAE,OAAO,CAAC;IAE/B;;;OAGG;IACwB,QAAQ,EAAE,OAAO,CAAC;IAC7C;;;OAGG;IACyD,UAAU,EAAE,OAAO,CAAC;IAEhF;;OAEG;IACG,OAAO;IA2Bb;;;OAGG;IACH,IAAc,cAAc,YAM3B;IAED;;OAEG;IACM,SAAS,IAAI,IAAI;IAW1B;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,WAAW;IAI7B;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,WAAW;IAY3B;;OAEG;IACH,oBAAoB;IAKpB;;;OAGG;IACH,KAAK,CAAC,SAAS,UAAO;CAMvB"}
1
+ {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../src/form.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAoB1C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAgBlD;;;GAGG;AACH,eAAO,MAAM,SAAS,OAkBrB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACF;;;;;GAKG;AACH,qBAKa,IAAK,SAAQ,SAAiC;IACzD;;;OAGG;IAC0C,MAAM,EAAE,MAAM,CAAW;IACtE;;;;OAIG;IACG,YAAY,EAAE,MAAM,CAAC;YACb,mBAAmB;IAcjC,OAAO,CAAC,oBAAoB;IAI5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IACS,QAAQ,EAAE,QAAQ,CAAC;IAC/B;;;OAGG;IACS,SAAS,EAAE,aAAa,EAAE,CAAa;IACnD;;OAEG;IACH,gBAAgB;IAGhB;;;OAGG;IACS,mBAAmB,EAAE,aAAa,EAAE,CAAM;IACtD;;OAEG;IACH,0BAA0B;IAG1B;;;;;OAKG;IACS,eAAe,EAAE,aAAa,EAAE,CAAa;IACzD,OAAO,CAAC,qBAAqB;IAI7B;;;;;;OAMG;IACS,UAAU,EAAE,WAAW,CAAC;IAEpC,OAAO,CAAC,MAAM,CAAqB;IAC1B,OAAO,CAAC,OAAO,CAAW;IACnC;;;OAGG;IACS,IAAI,EAAE,GAAG,CAAM;IAE3B;;OAEG;IACS,UAAU,EAAE,OAAO,CAAC;IAChC;;OAEG;IACS,SAAS,EAAE,OAAO,CAAC;IAE/B;;;OAGG;IACwB,QAAQ,EAAE,OAAO,CAAC;IAC7C;;;OAGG;IACyD,UAAU,EAAE,OAAO,CAAC;IAEhF;;OAEG;IACG,OAAO;IA2Bb;;;OAGG;IACH,IAAc,cAAc,YAM3B;IAED;;OAEG;IACM,SAAS,IAAI,IAAI;IAW1B;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,WAAW;IAI7B;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,WAAW;IAY3B;;OAEG;IACH,oBAAoB;IAKpB;;;OAGG;IACH,KAAK,CAAC,SAAS,UAAO;CAMvB"}
@@ -0,0 +1,4 @@
1
+ import { RendererEntry } from '../../types';
2
+ export declare const TimeControlRendererTemplate: (prefix?: string) => import("@microsoft/fast-element").ViewTemplate<any, any>;
3
+ export declare const FilterTimeControlRendererEntry: RendererEntry;
4
+ //# sourceMappingURL=FilterTimeControlRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterTimeControlRenderer.d.ts","sourceRoot":"","sources":["../../../../src/jsonforms/renderers/FilterTimeControlRenderer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAI5C,eAAO,MAAM,2BAA2B,YAAY,MAAM,6DAwDzD,CAAC;AAEF,eAAO,MAAM,8BAA8B,EAAE,aAM5C,CAAC"}
@@ -5,6 +5,7 @@ export declare const MULTISELECT_CONTROL_RANK = 4;
5
5
  export declare const ENUM_CONTROL_RANK = 3;
6
6
  export declare const SELECT_CONTROL_RANK = 4;
7
7
  export declare const DATE_CONTROL_RANK = 4;
8
+ export declare const TIME_CONTROL_RANK = 4;
8
9
  export declare const LAYOUT_RANK = 2;
9
10
  export declare const LAYOUT_ARRAY_RANK = 2;
10
11
  export declare const LAYOUT_CATEGORIZATION_RANK = 2;
@@ -1 +1 @@
1
- {"version":3,"file":"RenderersRanks.d.ts","sourceRoot":"","sources":["../../../../src/jsonforms/renderers/RenderersRanks.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAC5C,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,sBAAsB,IAAI,CAAC"}
1
+ {"version":3,"file":"RenderersRanks.d.ts","sourceRoot":"","sources":["../../../../src/jsonforms/renderers/RenderersRanks.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAC5C,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,sBAAsB,IAAI,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const isOneOfTime: import("@jsonforms/core").Tester;
2
+ //# sourceMappingURL=isTime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isTime.d.ts","sourceRoot":"","sources":["../../../../src/jsonforms/testers/isTime.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,WAAW,kCAOvB,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { Expression } from '@genesislcap/foundation-criteria';
2
2
  type Expressions = {
3
3
  options: Expression[];
4
+ arrayOptions: Expression[];
4
5
  numberOptions: Expression[];
5
6
  dateOptions: Expression[];
6
7
  };
@@ -1 +1 @@
1
- {"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../../src/utils/filters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAkC,MAAM,kCAAkC,CAAC;AAM9F,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,aAAa,EAAE,UAAU,EAAE,CAAC;IAC5B,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,YAAa,GAAG,gBAyC7C,CAAC"}
1
+ {"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../../src/utils/filters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAkC,MAAM,kCAAkC,CAAC;AAM9F,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,aAAa,EAAE,UAAU,EAAE,CAAC;IAC5B,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,YAAa,GAAG,gBAiD7C,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { JSONSchema7 } from 'json-schema';
2
+ /**
3
+ * Removes data properties that aren't part of the schema
4
+ * @param data The data object to clean
5
+ * @param jsonSchema The JSON schema to validate against
6
+ * @returns boolean indicating if any properties were removed
7
+ */
8
+ export declare function removeDataPropertiesNotInSchema(data: any, jsonSchema: JSONSchema7): boolean;
9
+ //# sourceMappingURL=form-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-utils.d.ts","sourceRoot":"","sources":["../../../src/utils/form-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,GAAG,OAAO,CA0B3F"}
@@ -5,7 +5,7 @@ import { CriteriaBuilder, Join } from '@genesislcap/foundation-criteria';
5
5
  import { createLogger } from '@genesislcap/foundation-logger';
6
6
  import { showNotificationToast } from '@genesislcap/foundation-notifications';
7
7
  import { isControl, isStringControl, mapStateToControlProps, rankWith } from '@jsonforms/core';
8
- import { attr, customElement, observable } from '@microsoft/fast-element';
8
+ import { attr, customElement, DOM, observable } from '@microsoft/fast-element';
9
9
  import { FoundationElement } from '@microsoft/fast-foundation';
10
10
  import { BooleanControlEntry } from '../jsonforms/renderers/BooleanControlRenderer';
11
11
  import { ConnectedMultiselectControlRendererEntry } from '../jsonforms/renderers/ConnectedMultiselectControlRenderer';
@@ -13,11 +13,13 @@ import { ConnectedSelectControlRendererEntry } from '../jsonforms/renderers/Conn
13
13
  import { EnumControlRendererEntry } from '../jsonforms/renderers/EnumControlRenderer';
14
14
  import { FilterDateControlRendererEntry } from '../jsonforms/renderers/FilterDateControlRenderer';
15
15
  import { FilterNumberControlRendererEntry } from '../jsonforms/renderers/FilterNumberControlRenderer';
16
+ import { FilterTimeControlRendererEntry } from '../jsonforms/renderers/FilterTimeControlRenderer';
16
17
  import { InvisibleControlEntry } from '../jsonforms/renderers/InvisibleControlRenderer';
17
18
  import { LayoutRendererEntry } from '../jsonforms/renderers/LayoutRenderer';
18
19
  import { LayoutVertical2ColumnsEntry } from '../jsonforms/renderers/LayoutVertical2ColumnsRenderer';
19
20
  import { StringControlRendererTemplate } from '../jsonforms/renderers/StringControlRenderer';
20
21
  import { createExpressions } from '../utils/filters';
22
+ import { removeDataPropertiesNotInSchema } from '../utils/form-utils';
21
23
  import { foundationFiltersStyles as styles } from './filters.styles';
22
24
  import { foundationFiltersTemplate as template } from './filters.template';
23
25
  /** @internal */
@@ -47,6 +49,7 @@ export const filtersRenderers = [
47
49
  EnumControlRendererEntry,
48
50
  ConnectedSelectControlRendererEntry,
49
51
  FilterDateControlRendererEntry,
52
+ FilterTimeControlRendererEntry,
50
53
  InvisibleControlEntry,
51
54
  ];
52
55
  // Add this at the top of the file, outside the class
@@ -106,22 +109,33 @@ let Filters = class Filters extends FoundationElement {
106
109
  * @internal
107
110
  */
108
111
  searchFilters() {
109
- this.value = '';
110
- const payload = Object.assign({}, this.data);
111
- const expressions = createExpressions(payload);
112
- const criteriaBuilder = new CriteriaBuilder();
113
- filtersLogger.debug({ payload });
114
- if (expressions.dateOptions.length > 0 ||
115
- expressions.numberOptions.length > 0 ||
116
- expressions.options.length > 0) {
117
- Object.values(expressions).forEach((value) => {
118
- if (value.length > 0) {
119
- criteriaBuilder.withExpression(value, { join: Join.And() });
120
- }
121
- });
122
- this.value = criteriaBuilder.build();
123
- }
124
- this.$emit('submit', { payload });
112
+ return __awaiter(this, void 0, void 0, function* () {
113
+ if (removeDataPropertiesNotInSchema(this.data, this.jsonSchema)) {
114
+ yield DOM.nextUpdate();
115
+ }
116
+ this.value = '';
117
+ const payload = Object.assign({}, this.data);
118
+ const expressions = createExpressions(payload);
119
+ const criteriaBuilder = new CriteriaBuilder();
120
+ filtersLogger.debug({ payload });
121
+ if (expressions.dateOptions.length > 0 ||
122
+ expressions.numberOptions.length > 0 ||
123
+ expressions.options.length > 0 ||
124
+ expressions.arrayOptions.length > 0) {
125
+ Object.entries(expressions).forEach(([key, value]) => {
126
+ if (value.length > 0) {
127
+ if (key === 'arrayOptions') {
128
+ criteriaBuilder.withExpression(value, { join: Join.Or() });
129
+ }
130
+ else {
131
+ criteriaBuilder.withExpression(value, { join: Join.And() });
132
+ }
133
+ }
134
+ });
135
+ this.value = criteriaBuilder.build();
136
+ }
137
+ this.$emit('submit', { payload });
138
+ });
125
139
  }
126
140
  /**
127
141
  * @internal
@@ -242,6 +256,7 @@ let Filters = class Filters extends FoundationElement {
242
256
  }
243
257
  else {
244
258
  this.data = {};
259
+ this.value = '';
245
260
  }
246
261
  }
247
262
  loadFilterData(filterKey) {
@@ -254,10 +269,6 @@ let Filters = class Filters extends FoundationElement {
254
269
  }
255
270
  else if (result && result.kv && result.kv.value) {
256
271
  filtersLogger.warn('Loaded filter value is not a string, cannot parse', result.kv.value);
257
- this.data = {};
258
- }
259
- else {
260
- this.data = {};
261
272
  }
262
273
  }
263
274
  catch (err) {
@@ -34,16 +34,14 @@ export const getPrefixedFilters = (prefix) => html `
34
34
  style="margin-bottom: 16px; width: 100%;"
35
35
  ></rapid-text-field>
36
36
  <rapid-button
37
- slot="actions-start"
38
- appearance="primary"
37
+ appearance="secondary"
39
38
  @click=${(x) => x.saveFilter()}
40
39
  :disabled=${(x) => !x.filterName || !x.value}
41
40
  >
42
41
  Save
43
42
  </rapid-button>
44
43
  <rapid-button
45
- slot="actions-start"
46
- appearance="primary"
44
+ appearance="secondary"
47
45
  @click=${(x) => x.deleteFilter()}
48
46
  :disabled=${(x) => !x.filterName}
49
47
  >
package/dist/esm/form.js CHANGED
@@ -24,6 +24,7 @@ import { NumberControlRendererEntry } from './jsonforms/renderers/NumberControlR
24
24
  import { StringArrayEntry } from './jsonforms/renderers/StringArrayControlRenderer';
25
25
  import { StringControlRendererTemplate } from './jsonforms/renderers/StringControlRenderer';
26
26
  import { logger } from './utils';
27
+ import { removeDataPropertiesNotInSchema } from './utils/form-utils';
27
28
  const stringEntry = {
28
29
  renderer: StringControlRendererTemplate,
29
30
  tester: rankWith(2, isStringControl),
@@ -110,24 +111,7 @@ let Form = class Form extends LifecycleMixin(FoundationElement) {
110
111
  });
111
112
  }
112
113
  removeDataProperties() {
113
- if (!this.jsonSchema || !this.data) {
114
- return;
115
- }
116
- // removes data provided to the form that isn't part of the schema
117
- const properties = Object.keys(this.jsonSchema.properties);
118
- let removedPropertiesCount = 0;
119
- Object.keys(this.data).forEach((key) => {
120
- if (!properties.includes(key)) {
121
- delete this.data[key];
122
- removedPropertiesCount = removedPropertiesCount + 1;
123
- logger.debug('Removing key ', key, 'from provided data because it is not part of the payload');
124
- }
125
- });
126
- // force update of the data object to trigger error validation
127
- if (removedPropertiesCount > 0) {
128
- this.data = Object.assign({}, this.data);
129
- }
130
- return removedPropertiesCount > 0;
114
+ return removeDataPropertiesNotInSchema(this.data, this.jsonSchema);
131
115
  }
132
116
  /**
133
117
  * @internal
@@ -153,7 +137,7 @@ let Form = class Form extends LifecycleMixin(FoundationElement) {
153
137
  if (this.submitting) {
154
138
  return;
155
139
  }
156
- if (this.removeDataProperties()) {
140
+ if (removeDataPropertiesNotInSchema(this.data, this.jsonSchema)) {
157
141
  yield DOM.nextUpdate();
158
142
  }
159
143
  this.submitted = true;
@@ -0,0 +1,74 @@
1
+ import { mapStateToControlProps, rankWith } from '@jsonforms/core';
2
+ import { html } from '@microsoft/fast-element';
3
+ import { isOneOfTime } from '../testers/isTime';
4
+ import { TIME_CONTROL_RANK } from './RenderersRanks';
5
+ export const TimeControlRendererTemplate = (prefix = 'zero') => html `
6
+ <template>
7
+ <control-wrapper :control=${(x) => x.control} ?submitted=${(x) => x.submitted} prefix="${prefix}">
8
+
9
+
10
+ <${prefix}-text-field
11
+ :value=${(x) => {
12
+ var _a;
13
+ const time = (_a = x.control.data) === null || _a === void 0 ? void 0 : _a.min;
14
+ if (!time)
15
+ return '';
16
+ return `${time}`;
17
+ }}
18
+
19
+ id=${(x) => `min-${x.control.path}`}
20
+ type="time"
21
+ data-test-id=${(x) => `min-${x.control.path}`}
22
+
23
+ @blur=${(x, c) => {
24
+ var _a, _b;
25
+ const minValue = c.event.target.control.value;
26
+ const maxValue = (_a = x.control.data) === null || _a === void 0 ? void 0 : _a.max;
27
+ const setMin = minValue ? minValue : undefined;
28
+ const setMax = maxValue < minValue ? undefined : (_b = x.control.data) === null || _b === void 0 ? void 0 : _b.max;
29
+ x.control.handleChange(x.control.path, {
30
+ min: setMin,
31
+ max: setMax,
32
+ type: 'time',
33
+ });
34
+ x.onBlur();
35
+ }}
36
+ style="width: 100%"
37
+ ></${prefix}-text-field>
38
+
39
+ <${prefix}-text-field
40
+ :value=${(x) => {
41
+ var _a;
42
+ const time = (_a = x.control.data) === null || _a === void 0 ? void 0 : _a.max;
43
+ if (!time)
44
+ return '';
45
+ return `${time}`;
46
+ }}
47
+ id=${(x) => `max-${x.control.path}`}
48
+ type="time"
49
+ data-test-id=${(x) => `max-${x.control.path}`}
50
+ @blur=${(x, c) => {
51
+ var _a, _b;
52
+ const maxValue = c.event.target.control.value;
53
+ const minValue = (_a = x.control.data) === null || _a === void 0 ? void 0 : _a.min;
54
+ const setMin = minValue > maxValue ? undefined : (_b = x.control.data) === null || _b === void 0 ? void 0 : _b.min;
55
+ const setMax = maxValue ? maxValue : undefined;
56
+ x.control.handleChange(x.control.path, {
57
+ min: setMin,
58
+ max: setMax,
59
+ type: 'time',
60
+ });
61
+ x.onBlur();
62
+ }}
63
+ style="width: 100%"
64
+ ></${prefix}-text-field>
65
+ </control-wrapper>
66
+ </template>
67
+ `;
68
+ export const FilterTimeControlRendererEntry = {
69
+ renderer: html `
70
+ ${(x) => TimeControlRendererTemplate(x.prefix)}
71
+ `,
72
+ tester: rankWith(TIME_CONTROL_RANK, isOneOfTime),
73
+ mapper: mapStateToControlProps, // TODO: change mapper to handle dates instead of doing it in the template
74
+ };
@@ -5,6 +5,7 @@ export const MULTISELECT_CONTROL_RANK = 4;
5
5
  export const ENUM_CONTROL_RANK = 3;
6
6
  export const SELECT_CONTROL_RANK = 4;
7
7
  export const DATE_CONTROL_RANK = 4;
8
+ export const TIME_CONTROL_RANK = 4;
8
9
  export const LAYOUT_RANK = 2;
9
10
  export const LAYOUT_ARRAY_RANK = 2;
10
11
  export const LAYOUT_CATEGORIZATION_RANK = 2;
@@ -0,0 +1,5 @@
1
+ import { or, schemaMatches } from '@jsonforms/core';
2
+ const isTimeDescription = (s) => s.description === 'time';
3
+ const isTime = schemaMatches(isTimeDescription);
4
+ export const isOneOfTime = or(isTime, schemaMatches((schema) => schema.hasOwnProperty('oneOf') &&
5
+ schema.oneOf.some((s) => s.description === 'time')));
@@ -9,20 +9,20 @@ const sec = 999;
9
9
  export const createExpressions = (payload) => {
10
10
  const expressions = {
11
11
  options: [],
12
+ arrayOptions: [],
12
13
  dateOptions: [],
13
14
  numberOptions: [],
14
15
  };
15
16
  for (const [key, value] of Object.entries(payload)) {
16
17
  if ((value && !value.type) || (value && value.max) || (value && value.min)) {
17
18
  if (Array.isArray(value)) {
18
- const optionsExpressions = value.map((item) => {
19
- return new ExpressionBuilder()
20
- .withField(key)
21
- .withValue(item)
22
- .withSerialiser(Serialisers.EQ)
23
- .build();
24
- });
25
- expressions.options = [...optionsExpressions, ...expressions.options];
19
+ expressions.arrayOptions = value
20
+ .map((item) => new ExpressionBuilder()
21
+ .withField(key)
22
+ .withValue(item)
23
+ .withSerialiser(Serialisers.EQ)
24
+ .build())
25
+ .concat(expressions.arrayOptions);
26
26
  }
27
27
  else if (value && (value.min || value.max)) {
28
28
  if (value.type == 'number') {
@@ -37,6 +37,12 @@ export const createExpressions = (payload) => {
37
37
  ...expressions.dateOptions,
38
38
  ];
39
39
  }
40
+ if (value.type == 'time') {
41
+ expressions.dateOptions = [
42
+ ...dateNumberExpressions(key, value, 'time'),
43
+ ...expressions.dateOptions,
44
+ ];
45
+ }
40
46
  }
41
47
  else {
42
48
  const stringOptions = new ExpressionBuilder()
@@ -57,6 +63,10 @@ const dateNumberExpressions = (key, value, type) => {
57
63
  startDay = value.min ? convertTimestampToDate(value.min) : undefined;
58
64
  endDay = value.max ? convertTimestampToDate(value.max) : undefined;
59
65
  }
66
+ if (type == 'time') {
67
+ startDay = value.min ? convertTimeToDateTime(value.min) : undefined;
68
+ endDay = value.max ? convertTimeToDateTime(value.max) : undefined;
69
+ }
60
70
  const expressions = [];
61
71
  const startExpression = value.min
62
72
  ? new ExpressionBuilder()
@@ -82,3 +92,9 @@ const convertTimestampToDate = (timestamp) => {
82
92
  const year = new Date(timestamp).getUTCFullYear().toString();
83
93
  return [year, months, days].join('');
84
94
  };
95
+ const convertTimeToDateTime = (time) => {
96
+ // change the value here to append todays date
97
+ const todayDate = convertTimestampToDate(new Date());
98
+ // yyyyMMdd-HH:mm
99
+ return [todayDate, time].join('-');
100
+ };
@@ -0,0 +1,26 @@
1
+ import { logger } from './logger';
2
+ /**
3
+ * Removes data properties that aren't part of the schema
4
+ * @param data The data object to clean
5
+ * @param jsonSchema The JSON schema to validate against
6
+ * @returns boolean indicating if any properties were removed
7
+ */
8
+ export function removeDataPropertiesNotInSchema(data, jsonSchema) {
9
+ if (!jsonSchema || !data) {
10
+ return false;
11
+ }
12
+ const properties = Object.keys(jsonSchema.properties);
13
+ let removedPropertiesCount = 0;
14
+ Object.keys(data).forEach((key) => {
15
+ if (!properties.includes(key)) {
16
+ delete data[key];
17
+ removedPropertiesCount += 1;
18
+ logger.debug('Removing key ', key, 'from provided data because it is not part of the payload');
19
+ }
20
+ });
21
+ // force update of the data object to trigger error validation
22
+ if (removedPropertiesCount > 0) {
23
+ Object.assign(data, Object.assign({}, data));
24
+ }
25
+ return removedPropertiesCount > 0;
26
+ }
@@ -172,6 +172,7 @@ declare class DispatchRenderer extends FASTElement {
172
172
 
173
173
  declare type Expressions = {
174
174
  options: Expression[];
175
+ arrayOptions: Expression[];
175
176
  numberOptions: Expression[];
176
177
  dateOptions: Expression[];
177
178
  };
@@ -277,7 +278,7 @@ export declare class Filters extends FoundationElement {
277
278
  /**
278
279
  * @internal
279
280
  */
280
- searchFilters(): void;
281
+ searchFilters(): Promise<void>;
281
282
  /**
282
283
  * @internal
283
284
  */
@@ -95,7 +95,7 @@ export class Filters extends FoundationElement {
95
95
  // (undocumented)
96
96
  saveFilter(): Promise<void>;
97
97
  // @internal (undocumented)
98
- searchFilters(): void;
98
+ searchFilters(): Promise<void>;
99
99
  showFilterPersistenceControls: boolean;
100
100
  uischema: UiSchema;
101
101
  value: string;
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.276.0",
4
+ "version": "14.276.1",
5
5
  "sideEffects": false,
6
6
  "license": "SEE LICENSE IN license.txt",
7
7
  "main": "dist/esm/index.js",
@@ -48,23 +48,23 @@
48
48
  }
49
49
  },
50
50
  "devDependencies": {
51
- "@genesislcap/foundation-testing": "14.276.0",
52
- "@genesislcap/genx": "14.276.0",
53
- "@genesislcap/rollup-builder": "14.276.0",
54
- "@genesislcap/ts-builder": "14.276.0",
55
- "@genesislcap/uvu-playwright-builder": "14.276.0",
56
- "@genesislcap/vite-builder": "14.276.0",
57
- "@genesislcap/webpack-builder": "14.276.0",
51
+ "@genesislcap/foundation-testing": "14.276.1",
52
+ "@genesislcap/genx": "14.276.1",
53
+ "@genesislcap/rollup-builder": "14.276.1",
54
+ "@genesislcap/ts-builder": "14.276.1",
55
+ "@genesislcap/uvu-playwright-builder": "14.276.1",
56
+ "@genesislcap/vite-builder": "14.276.1",
57
+ "@genesislcap/webpack-builder": "14.276.1",
58
58
  "@types/json-schema": "^7.0.11",
59
59
  "rimraf": "^5.0.0"
60
60
  },
61
61
  "dependencies": {
62
- "@genesislcap/foundation-comms": "14.276.0",
63
- "@genesislcap/foundation-criteria": "14.276.0",
64
- "@genesislcap/foundation-logger": "14.276.0",
65
- "@genesislcap/foundation-notifications": "14.276.0",
66
- "@genesislcap/foundation-ui": "14.276.0",
67
- "@genesislcap/foundation-utils": "14.276.0",
62
+ "@genesislcap/foundation-comms": "14.276.1",
63
+ "@genesislcap/foundation-criteria": "14.276.1",
64
+ "@genesislcap/foundation-logger": "14.276.1",
65
+ "@genesislcap/foundation-notifications": "14.276.1",
66
+ "@genesislcap/foundation-ui": "14.276.1",
67
+ "@genesislcap/foundation-utils": "14.276.1",
68
68
  "@json-schema-tools/dereferencer": "^1.6.1",
69
69
  "@jsonforms/core": "^3.2.1",
70
70
  "@microsoft/fast-components": "2.30.6",
@@ -86,5 +86,5 @@
86
86
  "access": "public"
87
87
  },
88
88
  "customElements": "dist/custom-elements.json",
89
- "gitHead": "5ece673bf91cdbd37bff15d8125d57c027244c68"
89
+ "gitHead": "97462a73fe2d5c6f19127842a0ef883775f42247"
90
90
  }