@finos/legend-query-builder 4.16.20 → 4.16.22

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 (59) hide show
  1. package/lib/components/__test-utils__/QueryBuilderComponentTestUtils.d.ts +23 -1
  2. package/lib/components/__test-utils__/QueryBuilderComponentTestUtils.d.ts.map +1 -1
  3. package/lib/components/__test-utils__/QueryBuilderComponentTestUtils.js +16 -2
  4. package/lib/components/__test-utils__/QueryBuilderComponentTestUtils.js.map +1 -1
  5. package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.js +1 -1
  6. package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.js.map +1 -1
  7. package/lib/components/filter/QueryBuilderFilterPanel.js +1 -1
  8. package/lib/components/filter/QueryBuilderFilterPanel.js.map +1 -1
  9. package/lib/components/shared/BasicValueSpecificationEditor.d.ts +162 -4
  10. package/lib/components/shared/BasicValueSpecificationEditor.d.ts.map +1 -1
  11. package/lib/components/shared/BasicValueSpecificationEditor.js +253 -172
  12. package/lib/components/shared/BasicValueSpecificationEditor.js.map +1 -1
  13. package/lib/components/shared/CustomDatePicker.d.ts +8 -55
  14. package/lib/components/shared/CustomDatePicker.d.ts.map +1 -1
  15. package/lib/components/shared/CustomDatePicker.js +33 -417
  16. package/lib/components/shared/CustomDatePicker.js.map +1 -1
  17. package/lib/components/shared/CustomDatePickerHelper.d.ts +145 -0
  18. package/lib/components/shared/CustomDatePickerHelper.d.ts.map +1 -0
  19. package/lib/components/shared/CustomDatePickerHelper.js +517 -0
  20. package/lib/components/shared/CustomDatePickerHelper.js.map +1 -0
  21. package/lib/components/shared/QueryBuilderVariableSelector.js +1 -1
  22. package/lib/components/shared/QueryBuilderVariableSelector.js.map +1 -1
  23. package/lib/components/shared/V1_BasicValueSpecificationEditor.d.ts +38 -0
  24. package/lib/components/shared/V1_BasicValueSpecificationEditor.d.ts.map +1 -0
  25. package/lib/components/shared/V1_BasicValueSpecificationEditor.js +166 -0
  26. package/lib/components/shared/V1_BasicValueSpecificationEditor.js.map +1 -0
  27. package/lib/index.css +2 -2
  28. package/lib/index.css.map +1 -1
  29. package/lib/index.d.ts +4 -0
  30. package/lib/index.d.ts.map +1 -1
  31. package/lib/index.js +4 -0
  32. package/lib/index.js.map +1 -1
  33. package/lib/package.json +1 -1
  34. package/lib/stores/shared/V1_ValueSpecificationEditorHelper.d.ts +23 -0
  35. package/lib/stores/shared/V1_ValueSpecificationEditorHelper.d.ts.map +1 -0
  36. package/lib/stores/shared/V1_ValueSpecificationEditorHelper.js +83 -0
  37. package/lib/stores/shared/V1_ValueSpecificationEditorHelper.js.map +1 -0
  38. package/lib/stores/shared/V1_ValueSpecificationModifierHelper.d.ts +20 -0
  39. package/lib/stores/shared/V1_ValueSpecificationModifierHelper.d.ts.map +1 -0
  40. package/lib/stores/shared/V1_ValueSpecificationModifierHelper.js +38 -0
  41. package/lib/stores/shared/V1_ValueSpecificationModifierHelper.js.map +1 -0
  42. package/lib/stores/shared/ValueSpecificationEditorHelper.d.ts +4 -1
  43. package/lib/stores/shared/ValueSpecificationEditorHelper.d.ts.map +1 -1
  44. package/lib/stores/shared/ValueSpecificationEditorHelper.js +23 -2
  45. package/lib/stores/shared/ValueSpecificationEditorHelper.js.map +1 -1
  46. package/package.json +10 -10
  47. package/src/components/__test-utils__/QueryBuilderComponentTestUtils.tsx +103 -12
  48. package/src/components/fetch-structure/QueryBuilderPostFilterPanel.tsx +1 -1
  49. package/src/components/filter/QueryBuilderFilterPanel.tsx +1 -1
  50. package/src/components/shared/BasicValueSpecificationEditor.tsx +1477 -1088
  51. package/src/components/shared/CustomDatePicker.tsx +146 -905
  52. package/src/components/shared/CustomDatePickerHelper.ts +984 -0
  53. package/src/components/shared/QueryBuilderVariableSelector.tsx +1 -1
  54. package/src/components/shared/V1_BasicValueSpecificationEditor.tsx +409 -0
  55. package/src/index.ts +7 -0
  56. package/src/stores/shared/V1_ValueSpecificationEditorHelper.ts +131 -0
  57. package/src/stores/shared/V1_ValueSpecificationModifierHelper.ts +76 -0
  58. package/src/stores/shared/ValueSpecificationEditorHelper.ts +71 -2
  59. package/tsconfig.json +4 -0
@@ -0,0 +1,166 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * Copyright (c) 2020-present, Goldman Sachs
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ import {} from '@finos/legend-art';
18
+ import { PRIMITIVE_TYPE, V1_AppliedProperty, V1_CBoolean, V1_CDateTime, V1_CDecimal, V1_CFloat, V1_CInteger, V1_CLatestDate, V1_Collection, V1_CStrictDate, V1_CString, V1_EnumValue, V1_observe_AppliedProperty, V1_observe_ValueSpecification, V1_PackageableType, V1_PrimitiveValueSpecification, } from '@finos/legend-graph';
19
+ import { csvStringify, guaranteeNonNullable, guaranteeType, isNonNullable, } from '@finos/legend-shared';
20
+ import React, { forwardRef } from 'react';
21
+ import { BooleanPrimitiveInstanceValueEditor, CollectionValueInstanceValueEditor, DateInstanceValueEditor, EnumInstanceValueEditor, NumberPrimitiveInstanceValueEditor, StringPrimitiveInstanceValueEditor, } from './BasicValueSpecificationEditor.js';
22
+ import { V1_AppliedProperty_setProperty, V1_Collection_setValues, V1_PrimitiveValue_setValue, } from '../../stores/shared/V1_ValueSpecificationModifierHelper.js';
23
+ import { buildV1PureAdjustDateFunction, buildV1PureDateFunctionExpression, CustomDateOption, CustomFirstDayOfOption, CustomPreviousDayOfWeekOption, DatePickerOption, } from './CustomDatePickerHelper.js';
24
+ import { _elementPtr, _primitiveValue, _property, isPrimitiveType, } from '@finos/legend-data-cube';
25
+ import { getV1_ValueSpecificationStringValue, isValidV1_ValueSpecification, } from '../../stores/shared/V1_ValueSpecificationEditorHelper.js';
26
+ import { useApplicationStore } from '@finos/legend-application';
27
+ // Placeholder for unsupported value specifications
28
+ const V1_UnsupportedValueSpecificationEditor = (props) => (_jsxs("div", { className: "value-spec-editor--unsupported", children: ["Unsupported V1 type: ", props.type] }));
29
+ // Helper functions for collection values
30
+ const V1_stringifyValue = (values) => {
31
+ if (values.length === 0) {
32
+ return '';
33
+ }
34
+ return csvStringify([
35
+ values
36
+ .map((val) => {
37
+ if (val instanceof V1_PrimitiveValueSpecification) {
38
+ if (!(val instanceof V1_CLatestDate)) {
39
+ return val.value;
40
+ }
41
+ else {
42
+ return val;
43
+ }
44
+ }
45
+ else if (val instanceof V1_EnumValue) {
46
+ return val.value;
47
+ }
48
+ else if (val instanceof V1_AppliedProperty) {
49
+ return val.property;
50
+ }
51
+ return undefined;
52
+ })
53
+ .filter(isNonNullable),
54
+ ]).trim();
55
+ };
56
+ // Main component
57
+ export const V1_BasicValueSpecificationEditor = forwardRef(function V1_BasicValueSpecificationEditor(props, ref) {
58
+ const { className, valueSpecification, multiplicity, typeCheckOption, setValueSpecification, resetValue, handleBlur, handleKeyDown, enumeration, selectorConfig, lightMode, readOnly, } = props;
59
+ const applicationStore = useApplicationStore();
60
+ const errorChecker = (_valueSpecification) => !isValidV1_ValueSpecification(_valueSpecification, multiplicity);
61
+ // Handle non-collection editors
62
+ if (multiplicity.upperBound !== undefined) {
63
+ if (typeCheckOption.expectedType.fullPath === PRIMITIVE_TYPE.STRING) {
64
+ return (_jsx(StringPrimitiveInstanceValueEditor, { valueSpecification: guaranteeType(valueSpecification, V1_CString), valueSelector: (val) => val.value, updateValueSpecification: (_valueSpecification, value) => {
65
+ V1_PrimitiveValue_setValue(_valueSpecification, value ?? '');
66
+ setValueSpecification(_valueSpecification);
67
+ }, className: className, resetValue: resetValue, ref: ref, handleBlur: handleBlur, handleKeyDown: handleKeyDown, errorChecker: errorChecker, selectorConfig: selectorConfig, lightMode: lightMode, readOnly: readOnly }));
68
+ }
69
+ else if (typeCheckOption.expectedType.fullPath === PRIMITIVE_TYPE.BOOLEAN) {
70
+ return (_jsx(BooleanPrimitiveInstanceValueEditor, { valueSpecification: guaranteeType(valueSpecification, V1_CBoolean), valueSelector: (val) => val.value, updateValueSpecification: (_valueSpecification, value) => {
71
+ V1_PrimitiveValue_setValue(_valueSpecification, value);
72
+ setValueSpecification(_valueSpecification);
73
+ }, className: className, resetValue: resetValue, readOnly: readOnly }));
74
+ }
75
+ else if (typeCheckOption.expectedType.fullPath === PRIMITIVE_TYPE.BINARY ||
76
+ typeCheckOption.expectedType.fullPath === PRIMITIVE_TYPE.BYTE ||
77
+ typeCheckOption.expectedType.fullPath === PRIMITIVE_TYPE.DECIMAL ||
78
+ typeCheckOption.expectedType.fullPath === PRIMITIVE_TYPE.FLOAT ||
79
+ typeCheckOption.expectedType.fullPath === PRIMITIVE_TYPE.INTEGER ||
80
+ typeCheckOption.expectedType.fullPath === PRIMITIVE_TYPE.NUMBER) {
81
+ const numericValueSpecification = typeCheckOption.expectedType.fullPath === PRIMITIVE_TYPE.INTEGER
82
+ ? guaranteeType(valueSpecification, V1_CInteger)
83
+ : typeCheckOption.expectedType.fullPath === PRIMITIVE_TYPE.DECIMAL
84
+ ? guaranteeType(valueSpecification, V1_CDecimal)
85
+ : guaranteeType(valueSpecification, V1_CFloat);
86
+ return (_jsx(NumberPrimitiveInstanceValueEditor, { valueSpecification: numericValueSpecification, valueSelector: (val) => val.value, isInteger: valueSpecification instanceof V1_CInteger, updateValueSpecification: (_valueSpecification, value) => {
87
+ V1_PrimitiveValue_setValue(_valueSpecification, value);
88
+ setValueSpecification(_valueSpecification);
89
+ }, className: className, resetValue: resetValue, ref: ref, handleBlur: handleBlur, handleKeyDown: handleKeyDown, errorChecker: errorChecker, readOnly: readOnly }));
90
+ }
91
+ else if (typeCheckOption.expectedType.fullPath === PRIMITIVE_TYPE.DATE ||
92
+ typeCheckOption.expectedType.fullPath === PRIMITIVE_TYPE.STRICTDATE ||
93
+ typeCheckOption.expectedType.fullPath === PRIMITIVE_TYPE.DATETIME ||
94
+ typeCheckOption.expectedType.fullPath === PRIMITIVE_TYPE.LATESTDATE) {
95
+ const dateValueSelector = (_valueSpecification) => _valueSpecification instanceof V1_CDateTime ||
96
+ _valueSpecification instanceof V1_CStrictDate ||
97
+ _valueSpecification instanceof V1_CString
98
+ ? _valueSpecification.value
99
+ : '';
100
+ const dateUpdateValueSpecification = (_valueSpecification, value, options) => {
101
+ if (value instanceof CustomDateOption) {
102
+ setValueSpecification(buildV1PureAdjustDateFunction(value));
103
+ }
104
+ else if (value instanceof CustomFirstDayOfOption) {
105
+ setValueSpecification(buildV1PureDateFunctionExpression(value));
106
+ }
107
+ else if (value instanceof CustomPreviousDayOfWeekOption) {
108
+ setValueSpecification(buildV1PureDateFunctionExpression(value));
109
+ }
110
+ else if (value instanceof DatePickerOption) {
111
+ setValueSpecification(buildV1PureDateFunctionExpression(value));
112
+ }
113
+ else {
114
+ const _type = guaranteeNonNullable(options?.primitiveTypeEnum);
115
+ setValueSpecification(_primitiveValue(_type, value));
116
+ }
117
+ };
118
+ return (_jsx(DateInstanceValueEditor, { valueSpecification: valueSpecification, valueSelector: dateValueSelector, updateValueSpecification: dateUpdateValueSpecification, typeCheckOption: typeCheckOption, resetValue: resetValue, className: className, errorChecker: errorChecker, readOnly: readOnly }));
119
+ }
120
+ // Enum editors should have enumeration passed in the props
121
+ if (enumeration) {
122
+ const options = enumeration.values.map((enumValue) => ({
123
+ label: enumValue.value,
124
+ value: enumValue.value,
125
+ }));
126
+ return (_jsx(EnumInstanceValueEditor, { valueSpecification: guaranteeType(valueSpecification, V1_AppliedProperty), valueSelector: (val) => val.property, options: options, className: className, resetValue: resetValue, updateValueSpecification: (_valueSpecification, value) => {
127
+ V1_AppliedProperty_setProperty(_valueSpecification, guaranteeNonNullable(value));
128
+ setValueSpecification(_valueSpecification);
129
+ }, handleBlur: handleBlur, errorChecker: errorChecker, selectorConfig: selectorConfig, lightMode: lightMode, readOnly: readOnly }));
130
+ }
131
+ }
132
+ else {
133
+ // Handle collection editors
134
+ const collectionValueSpecification = guaranteeType(valueSpecification, V1_Collection);
135
+ const updateValueSpecification = (_collectionValueSpecification, valueSpecifications) => {
136
+ V1_Collection_setValues(_collectionValueSpecification, valueSpecifications);
137
+ setValueSpecification(_collectionValueSpecification);
138
+ };
139
+ const stringifyCollectionValueSpecification = (_collectionValueSpecification) => {
140
+ return V1_stringifyValue(_collectionValueSpecification.values);
141
+ };
142
+ const convertValueSpecificationToText = (_valueSpecification) => {
143
+ return getV1_ValueSpecificationStringValue(_valueSpecification, applicationStore);
144
+ };
145
+ const convertTextToValueSpecification = (_type, text) => {
146
+ const packageableType = guaranteeType(_type, V1_PackageableType, 'Cannot convert text to V1_ValueSpecification. Expected type to be a V1_PackageableType');
147
+ if (isPrimitiveType(packageableType.fullPath)) {
148
+ const primitiveVal = _primitiveValue(packageableType.fullPath, text, true);
149
+ return V1_observe_ValueSpecification(primitiveVal);
150
+ }
151
+ else {
152
+ // If not a primitive, assume it is an enum
153
+ const typeParam = _elementPtr(packageableType.fullPath);
154
+ return V1_observe_AppliedProperty(_property(text, [typeParam]));
155
+ }
156
+ };
157
+ const enumOptions = enumeration?.values.map((enumValue) => ({
158
+ label: enumValue.value,
159
+ value: enumValue.value,
160
+ }));
161
+ return (_jsx(CollectionValueInstanceValueEditor, { valueSpecification: collectionValueSpecification, updateValueSpecification: updateValueSpecification, expectedType: typeCheckOption.expectedType, stringifyCollectionValueSpecification: stringifyCollectionValueSpecification, convertValueSpecificationToText: convertValueSpecificationToText, convertTextToValueSpecification: convertTextToValueSpecification, enumOptions: enumOptions, errorChecker: errorChecker, className: className, selectorConfig: selectorConfig, lightMode: lightMode, readOnly: readOnly }));
162
+ }
163
+ // Default case for unsupported value specifications
164
+ return (_jsx(V1_UnsupportedValueSpecificationEditor, { type: typeCheckOption.expectedType.fullPath }));
165
+ });
166
+ //# sourceMappingURL=V1_BasicValueSpecificationEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"V1_BasicValueSpecificationEditor.js","sourceRoot":"","sources":["../../../src/components/shared/V1_BasicValueSpecificationEditor.tsx"],"names":[],"mappings":"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"}