From 179dfbcbd00bbdf5cdeb02ee546e6dadb44fb54c Mon Sep 17 00:00:00 2001 From: Jordan Sanz Date: Tue, 23 Jan 2024 09:36:13 -0500 Subject: [PATCH 1/4] feat(): date option --- .../schemas/internal/metrics/MetricSchema.ts | 2 +- .../metrics/ProjectUiSchemaMetrics.ts | 34 +++++----- .../metrics/ProjectUiSchemaMetrics.test.ts | 62 +++++++++---------- 3 files changed, 49 insertions(+), 49 deletions(-) diff --git a/packages/common/src/core/schemas/internal/metrics/MetricSchema.ts b/packages/common/src/core/schemas/internal/metrics/MetricSchema.ts index 570123d52c1..620188ffb44 100644 --- a/packages/common/src/core/schemas/internal/metrics/MetricSchema.ts +++ b/packages/common/src/core/schemas/internal/metrics/MetricSchema.ts @@ -23,7 +23,7 @@ export const MetricSchema: IConfigurationSchema = { valueType: { type: "string", default: "string", - enum: ["string", "number"], + enum: ["string", "number", "date"], }, dynamicMetric: { type: "object", diff --git a/packages/common/src/core/schemas/internal/metrics/ProjectUiSchemaMetrics.ts b/packages/common/src/core/schemas/internal/metrics/ProjectUiSchemaMetrics.ts index 020b95b6cba..85af75176f6 100644 --- a/packages/common/src/core/schemas/internal/metrics/ProjectUiSchemaMetrics.ts +++ b/packages/common/src/core/schemas/internal/metrics/ProjectUiSchemaMetrics.ts @@ -114,23 +114,23 @@ export const buildUiSchema = ( ], }, }, - // { - // labelKey: `${i18nScope}.fields.metrics.value.label`, - // scope: "/properties/_metric/properties/value", - // type: "Control", - // rule: SHOW_FOR_STATIC_AND_DATE_RULE_ENTITY, - // options: { - // control: "hub-field-input-date", - // messages: [ - // { - // type: "ERROR", - // keyword: "required", - // labelKey: `${i18nScope}.fields.metrics.value.message.required`, - // icon: true, - // }, - // ], - // }, - // }, + { + labelKey: `${i18nScope}.fields.metrics.value.label`, + scope: "/properties/_metric/properties/value", + type: "Control", + rule: SHOW_FOR_STATIC_AND_DATE_RULE_ENTITY, + options: { + control: "hub-field-input-date", + messages: [ + { + type: "ERROR", + keyword: "required", + labelKey: `${i18nScope}.fields.metrics.value.message.required`, + icon: true, + }, + ], + }, + }, { scope: "/properties/_metric/properties/dynamicMetric", type: "Control", diff --git a/packages/common/test/core/schemas/internal/metrics/ProjectUiSchemaMetrics.test.ts b/packages/common/test/core/schemas/internal/metrics/ProjectUiSchemaMetrics.test.ts index f595bcce820..b3580fc9528 100644 --- a/packages/common/test/core/schemas/internal/metrics/ProjectUiSchemaMetrics.test.ts +++ b/packages/common/test/core/schemas/internal/metrics/ProjectUiSchemaMetrics.test.ts @@ -132,37 +132,37 @@ describe("buildUiSchema: metric", () => { ], }, }, - // { - // labelKey: `some.scope.fields.metrics.value.label`, - // scope: "/properties/_metric/properties/value", - // type: "Control", - // rule: { - // condition: { - // schema: { - // properties: { - // _metric: { - // properties: { - // type: { const: "static" }, - // valueType: { const: "date" }, - // }, - // }, - // }, - // }, - // }, - // effect: UiSchemaRuleEffects.SHOW, - // }, - // options: { - // control: "hub-field-input-date", - // messages: [ - // { - // type: "ERROR", - // keyword: "required", - // labelKey: `some.scope.fields.metrics.value.message.required`, - // icon: true, - // }, - // ], - // }, - // }, + { + labelKey: `some.scope.fields.metrics.value.label`, + scope: "/properties/_metric/properties/value", + type: "Control", + rule: { + condition: { + schema: { + properties: { + _metric: { + properties: { + type: { const: "static" }, + valueType: { const: "date" }, + }, + }, + }, + }, + }, + effect: UiSchemaRuleEffects.SHOW, + }, + options: { + control: "hub-field-input-date", + messages: [ + { + type: "ERROR", + keyword: "required", + labelKey: `some.scope.fields.metrics.value.message.required`, + icon: true, + }, + ], + }, + }, { scope: "/properties/_metric/properties/dynamicMetric", type: "Control", From 92b80535f3adfa2c5824797e4616667a950d0665 Mon Sep 17 00:00:00 2001 From: Jordan Sanz Date: Tue, 23 Jan 2024 09:51:57 -0500 Subject: [PATCH 2/4] feat(): add valueType as an attribute to metrics --- packages/common/src/metrics/resolveMetric.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/common/src/metrics/resolveMetric.ts b/packages/common/src/metrics/resolveMetric.ts index 1d107ab9cc5..5488b72c60e 100644 --- a/packages/common/src/metrics/resolveMetric.ts +++ b/packages/common/src/metrics/resolveMetric.ts @@ -68,6 +68,7 @@ function resolveStaticValueMetric( name: metric.entityInfo.name, type: metric.entityInfo.type, [fieldName]: source.value, + valueType: source.valueType, }, }; return Promise.resolve({ From 6be78620e814de21538253f629919a442d1b8c9f Mon Sep 17 00:00:00 2001 From: Jordan Sanz Date: Tue, 23 Jan 2024 10:45:52 -0500 Subject: [PATCH 3/4] test(): update test --- packages/common/test/metrics/resolveMetric.test.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/common/test/metrics/resolveMetric.test.ts b/packages/common/test/metrics/resolveMetric.test.ts index 3d8b5189d44..ab1b1e53325 100644 --- a/packages/common/test/metrics/resolveMetric.test.ts +++ b/packages/common/test/metrics/resolveMetric.test.ts @@ -60,6 +60,7 @@ describe("resolveMetric:", () => { source: { type: "static-value", value: 100000, + valueType: "number", }, entityInfo: { id: "00c", @@ -76,6 +77,7 @@ describe("resolveMetric:", () => { name: "Some Project Name", type: "Hub Project", initiativeBudget: 100000, + valueType: "number", }, }, ]); From 8b9a687172b8537dc7cd61898ed9af1f36de4972 Mon Sep 17 00:00:00 2001 From: Jordan Sanz Date: Mon, 29 Jan 2024 14:18:49 -0500 Subject: [PATCH 4/4] feat(): add clearOnHidden to date --- .../src/core/schemas/internal/metrics/ProjectUiSchemaMetrics.ts | 1 + .../core/schemas/internal/metrics/ProjectUiSchemaMetrics.test.ts | 1 + 2 files changed, 2 insertions(+) diff --git a/packages/common/src/core/schemas/internal/metrics/ProjectUiSchemaMetrics.ts b/packages/common/src/core/schemas/internal/metrics/ProjectUiSchemaMetrics.ts index 32cb1666932..69cb80c596e 100644 --- a/packages/common/src/core/schemas/internal/metrics/ProjectUiSchemaMetrics.ts +++ b/packages/common/src/core/schemas/internal/metrics/ProjectUiSchemaMetrics.ts @@ -123,6 +123,7 @@ export const buildUiSchema = ( rule: SHOW_FOR_STATIC_AND_DATE_RULE_ENTITY, options: { control: "hub-field-input-date", + clearOnHidden: true, messages: [ { type: "ERROR", diff --git a/packages/common/test/core/schemas/internal/metrics/ProjectUiSchemaMetrics.test.ts b/packages/common/test/core/schemas/internal/metrics/ProjectUiSchemaMetrics.test.ts index 1cc8a513f6b..81bf07f43b2 100644 --- a/packages/common/test/core/schemas/internal/metrics/ProjectUiSchemaMetrics.test.ts +++ b/packages/common/test/core/schemas/internal/metrics/ProjectUiSchemaMetrics.test.ts @@ -155,6 +155,7 @@ describe("buildUiSchema: metric", () => { }, options: { control: "hub-field-input-date", + clearOnHidden: true, messages: [ { type: "ERROR",