@pega/cosmos-react-condition-builder 9.0.0-build.1.0 → 9.0.0-build.10.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.
Files changed (34) hide show
  1. package/lib/components/ConditionBuilder/AtomicCondition.d.ts +2 -0
  2. package/lib/components/ConditionBuilder/AtomicCondition.d.ts.map +1 -1
  3. package/lib/components/ConditionBuilder/AtomicCondition.js.map +1 -1
  4. package/lib/components/ConditionBuilder/ConditionBuilder.d.ts +2 -3
  5. package/lib/components/ConditionBuilder/ConditionBuilder.d.ts.map +1 -1
  6. package/lib/components/ConditionBuilder/ConditionBuilder.js +32 -21
  7. package/lib/components/ConditionBuilder/ConditionBuilder.js.map +1 -1
  8. package/lib/components/ConditionBuilder/ConditionBuilder.styles.d.ts +2 -1
  9. package/lib/components/ConditionBuilder/ConditionBuilder.styles.d.ts.map +1 -1
  10. package/lib/components/ConditionBuilder/ConditionBuilder.styles.js.map +1 -1
  11. package/lib/components/ConditionBuilder/ConditionBuilder.types.d.ts +27 -2
  12. package/lib/components/ConditionBuilder/ConditionBuilder.types.d.ts.map +1 -1
  13. package/lib/components/ConditionBuilder/ConditionBuilder.types.js.map +1 -1
  14. package/lib/components/ConditionBuilder/RhsControls/FieldSelector.js +1 -1
  15. package/lib/components/ConditionBuilder/RhsControls/FieldSelector.js.map +1 -1
  16. package/lib/components/ConditionBuilder/RhsControls/TimePeriodInput.d.ts.map +1 -1
  17. package/lib/components/ConditionBuilder/RhsControls/TimePeriodInput.js +2 -1
  18. package/lib/components/ConditionBuilder/RhsControls/TimePeriodInput.js.map +1 -1
  19. package/lib/components/ConditionBuilder/core/evaluator.d.ts.map +1 -1
  20. package/lib/components/ConditionBuilder/core/evaluator.js +107 -46
  21. package/lib/components/ConditionBuilder/core/evaluator.js.map +1 -1
  22. package/lib/components/ConditionBuilder/core/transformer.d.ts +1 -1
  23. package/lib/components/ConditionBuilder/core/transformer.d.ts.map +1 -1
  24. package/lib/components/ConditionBuilder/core/transformer.js +7 -7
  25. package/lib/components/ConditionBuilder/core/transformer.js.map +1 -1
  26. package/lib/components/ConditionBuilder/index.d.ts +2 -1
  27. package/lib/components/ConditionBuilder/index.d.ts.map +1 -1
  28. package/lib/components/ConditionBuilder/index.js.map +1 -1
  29. package/lib/components/ConditionInput/ConditionInput.styles.d.ts +1 -1
  30. package/lib/components/ConditionInput/ConditionInput.styles.d.ts.map +1 -1
  31. package/lib/components/PromotedFilters/ConditionSelector.d.ts.map +1 -1
  32. package/lib/components/PromotedFilters/ConditionSelector.js +10 -4
  33. package/lib/components/PromotedFilters/ConditionSelector.js.map +1 -1
  34. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"transformer.js","sourceRoot":"","sources":["../../../../src/components/ConditionBuilder/core/transformer.ts"],"names":[],"mappings":"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","sourcesContent":["// cspell:words DDTHH\nimport dayjs from 'dayjs';\nimport type { Dayjs, QUnitType } from 'dayjs';\nimport './extendDayJs';\n\nimport { hasProp } from '@pega/cosmos-react-core';\n\nimport type { Condition, LeafCondition, Field } from '../ConditionBuilder.types';\nimport { truncateISODateString } from '../RhsControls';\n\nimport { getItem, isAbsoluteDateString } from './utils';\nimport type { DatePart, FieldType } from './types';\nimport { convertTimeValueToMs } from './time-utils';\n\nconst dayjsDateParts: Record<DatePart, QUnitType> = {\n SECONDS: 'second',\n MINUTES: 'minute',\n HOURS: 'hour',\n DAYS: 'day',\n WEEKS: 'week' as QUnitType,\n QUARTERS: 'quarter',\n MONTHS: 'month',\n YEARS: 'year'\n};\n\n/** Construct Condition with two range comparators based on the given bounds */\nfunction getConditionForBetweenComparator(\n start: string | number,\n end: string | number,\n node: LeafCondition\n): Condition {\n return node.comparator === 'BTW'\n ? {\n AND: [\n {\n condition: {\n lhs: node.lhs,\n comparator: 'GTE',\n rhs: { value: start }\n }\n },\n {\n condition: {\n lhs: node.lhs,\n comparator: 'LTE',\n rhs: { value: end }\n }\n }\n ]\n }\n : {\n OR: [\n {\n condition: {\n lhs: node.lhs,\n comparator: 'LT',\n rhs: { value: start }\n }\n },\n {\n condition: {\n lhs: node.lhs,\n comparator: 'GT',\n rhs: { value: end }\n }\n }\n ]\n };\n}\n\nfunction getDateStringInTimezone(d: Dayjs, tz: string): string {\n return d.tz(tz).format('YYYY-MM-DDTHH:mm:ss.SSS');\n}\n\n/** Construct a date-range filter based on the given date bounds and the comparator */\nfunction getConditionFromRange(\n startDate: Dayjs,\n endDate: Dayjs,\n node: LeafCondition,\n lhsFieldType: FieldType,\n timezone?: string\n): Condition {\n const formatDate = (d: Dayjs, tz?: string): string => {\n let isoString: string;\n if (tz) {\n isoString = getDateStringInTimezone(d, tz);\n } else {\n const time = d.toDate().getTime();\n const timezoneOffset = new Date(time).getTimezoneOffset() * 60000;\n isoString = new Date(time - timezoneOffset).toISOString().slice(0, -1);\n }\n if (lhsFieldType === 'TIME_ONLY') return truncateISODateString(isoString, lhsFieldType);\n if (lhsFieldType === 'DATE_ONLY') return isoString.substring(0, isoString.indexOf('T'));\n return isoString;\n };\n\n switch (node.comparator) {\n case 'EQ':\n return {\n AND: [\n {\n condition: {\n lhs: node.lhs,\n comparator: 'LTE',\n rhs: { value: formatDate(endDate, timezone) }\n }\n },\n {\n condition: {\n lhs: node.lhs,\n comparator: 'GTE',\n rhs: { value: formatDate(startDate, timezone) }\n }\n }\n ]\n };\n case 'NEQ':\n return {\n OR: [\n {\n condition: {\n lhs: node.lhs,\n comparator: 'GT',\n rhs: { value: formatDate(endDate, timezone) }\n }\n },\n {\n condition: {\n lhs: node.lhs,\n comparator: 'LT',\n rhs: { value: formatDate(startDate, timezone) }\n }\n }\n ]\n };\n case 'GT':\n return {\n condition: {\n lhs: node.lhs,\n comparator: 'GT',\n rhs: { value: formatDate(endDate, timezone) }\n }\n };\n case 'GTE':\n return {\n condition: {\n lhs: node.lhs,\n comparator: 'GTE',\n rhs: { value: formatDate(startDate, timezone) }\n }\n };\n case 'LT':\n return {\n condition: {\n lhs: node.lhs,\n comparator: 'LT',\n rhs: { value: formatDate(startDate, timezone) }\n }\n };\n case 'LTE':\n return {\n condition: {\n lhs: node.lhs,\n comparator: 'LTE',\n rhs: { value: formatDate(endDate, timezone) }\n }\n };\n case 'BTW':\n case 'NOT_BTW':\n return getConditionForBetweenComparator(\n formatDate(startDate, timezone),\n formatDate(endDate, timezone),\n node\n );\n default:\n return { condition: node };\n }\n}\n\nfunction transformLeafCondition(\n node: LeafCondition,\n fields: Field[],\n currentDateTime?: string,\n timezone?: string\n): Condition {\n const field = getItem(fields, node.lhs.field);\n\n if (!field || !hasProp(field, 'type')) {\n return { condition: node }; // Safety check\n }\n\n if (\n (node.comparator === 'EQ' || node.comparator === 'NEQ') &&\n node.rhs &&\n hasProp(node.rhs, 'value') &&\n Object.keys(node.rhs).length === 1 &&\n typeof node.rhs.value === 'string'\n ) {\n const dateTime = node.rhs.value;\n\n const timePartsCount = dateTime.split(':').length;\n if (field.type === 'DATE_TIME') {\n const date = isAbsoluteDateString(dateTime)\n ? dayjs(dateTime).tz(timezone)\n : dayjs.tz(dateTime, timezone);\n let startDate = date;\n let endDate = date;\n // For HH:MM:SS expand milliseconds to 0-999\n if (timePartsCount === 3) {\n startDate = startDate.millisecond(0);\n endDate = endDate.millisecond(999);\n\n return getConditionFromRange(startDate, endDate, node, field.type, timezone);\n }\n // HH:MM expand seconds to 0-59\n if (timePartsCount === 2) {\n startDate = startDate.second(0).millisecond(0);\n endDate = endDate.second(59).millisecond(999);\n return getConditionFromRange(startDate, endDate, node, field.type, timezone);\n }\n } else if (field.type === 'TIME_ONLY') {\n const dateTimeMs = convertTimeValueToMs(node.rhs.value);\n\n // HH:MM expand seconds to 0-59\n if (timePartsCount === 2) {\n const startDate = dayjs(dateTimeMs).tz(timezone).second(0).millisecond(0);\n const endDate = dayjs(dateTimeMs).tz(timezone).second(59).millisecond(0);\n return getConditionFromRange(startDate, endDate, node, field.type, timezone);\n }\n }\n }\n\n // Transform Relative date filters into equivalent date range filters\n if (node.rhs && hasProp(node.rhs, 'relativeDate')) {\n const { timePeriod, interval, datePart } = node.rhs.relativeDate;\n const dayjsDatePart = dayjsDateParts[datePart];\n const now =\n !currentDateTime || isAbsoluteDateString(currentDateTime)\n ? dayjs.utc(dayjs(currentDateTime).tz(timezone))\n : dayjs.tz(currentDateTime, timezone);\n\n let startDate = now;\n let endDate = now;\n if (timePeriod === 'CURRENT') {\n startDate = now.startOf(dayjsDatePart);\n endDate = now.endOf(dayjsDatePart);\n } else if (timePeriod === 'LAST' && interval && interval >= 1) {\n startDate = now.subtract(interval, dayjsDatePart);\n } else if (timePeriod === 'PREVIOUS' && interval && interval >= 1) {\n startDate = now.startOf(dayjsDatePart).subtract(interval, dayjsDatePart);\n endDate = now.subtract(1, dayjsDatePart).endOf(dayjsDatePart);\n } else if (timePeriod === 'NEXT' && interval && interval >= 1) {\n startDate = now.add(1, dayjsDatePart).startOf(dayjsDatePart);\n endDate = now.endOf(dayjsDatePart).add(interval, dayjsDatePart);\n }\n\n return getConditionFromRange(\n startDate.tz(timezone),\n endDate.tz(timezone),\n node,\n field.type,\n timezone\n );\n }\n\n // Transform WEEKS-filters into equivalent date-range filters\n // NOTE: This is a work-around until we make startOfDay customizable for Weeks\n if (node.rhs && hasProp(node.rhs, 'dateFunction') && node.rhs.dateFunction === 'WEEKS') {\n const startDate =\n typeof node.rhs.value === 'number' || isAbsoluteDateString(node.rhs.value)\n ? dayjs.utc(dayjs(node.rhs.value).tz(timezone)).startOf('day').tz(timezone)\n : dayjs.tz(node.rhs.value, timezone).startOf('day'); // Since we store it as YYYY-MM-DD, it's already the start of day\n\n const endDate = startDate.add(7, 'day').subtract(1, 'millisecond'); // Last millisecond on the 7th day from startDate\n return getConditionFromRange(startDate, endDate, node, field.type, timezone);\n }\n\n // Transform double range comparators (BTW, NOT_BTW) into equivalent pair of single range comparators\n if (node.rhs && hasProp(node.rhs, 'start')) {\n if (field.type === 'DECIMAL' || field.type === 'INTEGER' || field.type === 'TIME_ONLY') {\n return getConditionForBetweenComparator(node.rhs.start, node.rhs.end, node);\n }\n\n const startDate =\n typeof node.rhs.start === 'number' || isAbsoluteDateString(node.rhs.start)\n ? dayjs(node.rhs.start).tz(timezone)\n : dayjs.tz(node.rhs.start, timezone);\n const endDate =\n typeof node.rhs.end === 'number' || isAbsoluteDateString(node.rhs.end)\n ? dayjs(node.rhs.end).tz(timezone)\n : dayjs.tz(node.rhs.end, timezone);\n\n return getConditionFromRange(startDate, endDate, node, field.type, timezone);\n }\n\n // apply timezone to date-time fields\n if (timezone && field.type === 'DATE_TIME' && node.rhs && !hasProp(node.rhs, 'dateFunction')) {\n const newNode: LeafCondition = { ...node };\n if (newNode.rhs && hasProp(newNode.rhs, 'value')) {\n newNode.rhs.value = getDateStringInTimezone(\n typeof newNode.rhs.value === 'number' || isAbsoluteDateString(newNode.rhs.value)\n ? dayjs(newNode.rhs.value)\n : dayjs.tz(newNode.rhs.value, timezone),\n timezone\n );\n }\n if (newNode.rhs && hasProp(newNode.rhs, 'values')) {\n const valuesWithTimezone = newNode.rhs.values.map(v =>\n getDateStringInTimezone(\n typeof v === 'number' || isAbsoluteDateString(v) ? dayjs(v) : dayjs.tz(v, timezone),\n timezone\n )\n );\n newNode.rhs.values = valuesWithTimezone;\n }\n return { condition: newNode };\n }\n\n // For all other cases\n return { condition: node };\n}\n\n/** This function transforms Conditions with Relative Dates into Conditions with Date Ranges.\n * Do not use this function unless you need to convert Relative Dates into Date Ranges.\n *\n * If `currentDateTime` is not provided, the current system time will be used.\n * If `timezone` is not provided, the system's timezone will be used for conversion.\n *\n * The `timezone` prop is applied to the date-time values within the condition when the transformation occurs.\n * If `timezone` is specified, the date-time will be converted from UTC (or the provided reference time) to the specified timezone.\n * Then, the transformed date will be used to generate a range.\n * This transformation ensures that the start and end times account for timezone differences when considering the condition's range.\n *\n * For example:\n * - A UTC date-time `2025-05-12T11:24:45.946Z` will be transformed to `2025-05-12T07:24:45.946-04:00` (in the `-04:00` timezone).\n * The date-time will then be converted into a range:\n * `[\"2025-05-12T07:24:45.000\", \"2025-05-12T07:24:45.999\"]`.\n * - A date-time without a timezone (`2025-05-12T11:24:45.946`) will be parsed in the timezone (e.g., `-04:00`).\n * The parsed time will then be transformed into a range like:\n * `[\"2025-05-12T11:24:45.000\", \"2025-05-12T11:24:45.999\"]`.\n *\n */\nexport default function transformComplexCondition(\n condition: Condition,\n fields: Field[],\n currentDateTime?: string,\n timezone?: string\n): Condition {\n if (hasProp(condition, 'AND')) {\n const childNodes: Condition[] = condition.AND.map(n =>\n transformComplexCondition(n, fields, currentDateTime, timezone)\n );\n return {\n AND: childNodes\n };\n }\n\n if (hasProp(condition, 'OR')) {\n const childNodes: Condition[] = condition.OR.map(n =>\n transformComplexCondition(n, fields, currentDateTime, timezone)\n );\n return {\n OR: childNodes\n };\n }\n\n if (hasProp(condition, 'NOT')) {\n return {\n NOT: transformComplexCondition(condition.NOT, fields, currentDateTime, timezone)\n };\n }\n\n return transformLeafCondition(condition.condition, fields, currentDateTime, timezone);\n}\n"]}
1
+ {"version":3,"file":"transformer.js","sourceRoot":"","sources":["../../../../src/components/ConditionBuilder/core/transformer.ts"],"names":[],"mappings":"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","sourcesContent":["// cspell:words DDTHH\nimport dayjs from 'dayjs';\nimport type { Dayjs, QUnitType } from 'dayjs';\nimport './extendDayJs';\n\nimport { hasProp } from '@pega/cosmos-react-core';\n\nimport type { Condition, LeafCondition, Field } from '../ConditionBuilder.types';\nimport { truncateISODateString } from '../RhsControls';\n\nimport { getItem, isAbsoluteDateString } from './utils';\nimport type { DatePart, FieldType } from './types';\nimport { convertTimeValueToMs } from './time-utils';\n\nconst dayjsDateParts: Record<DatePart, QUnitType> = {\n SECONDS: 'second',\n MINUTES: 'minute',\n HOURS: 'hour',\n DAYS: 'day',\n WEEKS: 'week' as QUnitType,\n QUARTERS: 'quarter',\n MONTHS: 'month',\n YEARS: 'year'\n};\n\n/** Construct Condition with two range comparators based on the given bounds */\nfunction getConditionForBetweenComparator(\n start: string | number,\n end: string | number,\n node: LeafCondition\n): Condition {\n return node.comparator === 'BTW'\n ? {\n AND: [\n {\n condition: {\n lhs: node.lhs,\n comparator: 'GTE',\n rhs: { value: start }\n }\n },\n {\n condition: {\n lhs: node.lhs,\n comparator: 'LTE',\n rhs: { value: end }\n }\n }\n ]\n }\n : {\n OR: [\n {\n condition: {\n lhs: node.lhs,\n comparator: 'LT',\n rhs: { value: start }\n }\n },\n {\n condition: {\n lhs: node.lhs,\n comparator: 'GT',\n rhs: { value: end }\n }\n }\n ]\n };\n}\n\nfunction getDateStringInTimezone(d: Dayjs, tz: string): string {\n return d.tz(tz).format('YYYY-MM-DDTHH:mm:ss.SSS');\n}\n\n/** Construct a date-range filter based on the given date bounds and the comparator */\nfunction getConditionFromRange(\n startDate: Dayjs,\n endDate: Dayjs,\n node: LeafCondition,\n lhsFieldType: FieldType,\n timezone?: string\n): Condition {\n const formatDate = (d: Dayjs, tz?: string): string => {\n let isoString: string;\n if (tz) {\n isoString = getDateStringInTimezone(d, tz);\n } else {\n const time = d.toDate().getTime();\n const timezoneOffset = new Date(time).getTimezoneOffset() * 60000;\n isoString = new Date(time - timezoneOffset).toISOString().slice(0, -1);\n }\n if (lhsFieldType === 'TIME_ONLY') return truncateISODateString(isoString, lhsFieldType);\n if (lhsFieldType === 'DATE_ONLY') return isoString.substring(0, isoString.indexOf('T'));\n return isoString;\n };\n\n switch (node.comparator) {\n case 'EQ':\n return {\n AND: [\n {\n condition: {\n lhs: node.lhs,\n comparator: 'LTE',\n rhs: { value: formatDate(endDate, timezone) }\n }\n },\n {\n condition: {\n lhs: node.lhs,\n comparator: 'GTE',\n rhs: { value: formatDate(startDate, timezone) }\n }\n }\n ]\n };\n case 'NEQ':\n return {\n OR: [\n {\n condition: {\n lhs: node.lhs,\n comparator: 'GT',\n rhs: { value: formatDate(endDate, timezone) }\n }\n },\n {\n condition: {\n lhs: node.lhs,\n comparator: 'LT',\n rhs: { value: formatDate(startDate, timezone) }\n }\n }\n ]\n };\n case 'GT':\n return {\n condition: {\n lhs: node.lhs,\n comparator: 'GT',\n rhs: { value: formatDate(endDate, timezone) }\n }\n };\n case 'GTE':\n return {\n condition: {\n lhs: node.lhs,\n comparator: 'GTE',\n rhs: { value: formatDate(startDate, timezone) }\n }\n };\n case 'LT':\n return {\n condition: {\n lhs: node.lhs,\n comparator: 'LT',\n rhs: { value: formatDate(startDate, timezone) }\n }\n };\n case 'LTE':\n return {\n condition: {\n lhs: node.lhs,\n comparator: 'LTE',\n rhs: { value: formatDate(endDate, timezone) }\n }\n };\n case 'BTW':\n case 'NOT_BTW':\n return getConditionForBetweenComparator(\n formatDate(startDate, timezone),\n formatDate(endDate, timezone),\n node\n );\n default:\n return { condition: node };\n }\n}\n\nfunction transformLeafCondition(\n node: LeafCondition,\n fields: Field[],\n transformRelativeDate = true,\n currentDateTime?: string,\n timezone?: string\n): Condition {\n const field = getItem(fields, node.lhs.field);\n\n if (!field || !hasProp(field, 'type')) {\n return { condition: node }; // Safety check\n }\n\n if (\n (node.comparator === 'EQ' || node.comparator === 'NEQ') &&\n node.rhs &&\n hasProp(node.rhs, 'value') &&\n Object.keys(node.rhs).length === 1 &&\n typeof node.rhs.value === 'string'\n ) {\n const dateTime = node.rhs.value;\n\n const timePartsCount = dateTime.split(':').length;\n if (field.type === 'DATE_TIME') {\n const date = isAbsoluteDateString(dateTime)\n ? dayjs(dateTime).tz(timezone)\n : dayjs.tz(dateTime, timezone);\n let startDate = date;\n let endDate = date;\n // For HH:MM:SS expand milliseconds to 0-999\n if (timePartsCount === 3) {\n startDate = startDate.millisecond(0);\n endDate = endDate.millisecond(999);\n\n return getConditionFromRange(startDate, endDate, node, field.type, timezone);\n }\n // HH:MM expand seconds to 0-59\n if (timePartsCount === 2) {\n startDate = startDate.second(0).millisecond(0);\n endDate = endDate.second(59).millisecond(999);\n return getConditionFromRange(startDate, endDate, node, field.type, timezone);\n }\n } else if (field.type === 'TIME_ONLY') {\n const dateTimeMs = convertTimeValueToMs(node.rhs.value);\n\n // HH:MM expand seconds to 0-59\n if (timePartsCount === 2) {\n const startDate = dayjs(dateTimeMs).tz(timezone).second(0).millisecond(0);\n const endDate = dayjs(dateTimeMs).tz(timezone).second(59).millisecond(0);\n return getConditionFromRange(startDate, endDate, node, field.type, timezone);\n }\n }\n }\n\n // Transform Relative date filters into equivalent date range filters\n if (node.rhs && transformRelativeDate && hasProp(node.rhs, 'relativeDate')) {\n const { timePeriod, interval, datePart } = node.rhs.relativeDate;\n const dayjsDatePart = dayjsDateParts[datePart];\n const now =\n !currentDateTime || isAbsoluteDateString(currentDateTime)\n ? dayjs.utc(dayjs(currentDateTime).tz(timezone))\n : dayjs.tz(currentDateTime, timezone);\n\n let startDate = now;\n let endDate = now;\n if (timePeriod === 'CURRENT') {\n startDate = now.startOf(dayjsDatePart);\n endDate = now.endOf(dayjsDatePart);\n } else if (timePeriod === 'LAST' && interval && interval >= 1) {\n startDate = now.subtract(interval, dayjsDatePart);\n } else if (timePeriod === 'PREVIOUS' && interval && interval >= 1) {\n startDate = now.startOf(dayjsDatePart).subtract(interval, dayjsDatePart);\n endDate = now.subtract(1, dayjsDatePart).endOf(dayjsDatePart);\n } else if (timePeriod === 'NEXT' && interval && interval >= 1) {\n startDate = now.add(1, dayjsDatePart).startOf(dayjsDatePart);\n endDate = now.endOf(dayjsDatePart).add(interval, dayjsDatePart);\n }\n\n return getConditionFromRange(\n startDate.tz(timezone),\n endDate.tz(timezone),\n node,\n field.type,\n timezone\n );\n }\n\n // Transform WEEKS-filters into equivalent date-range filters\n // NOTE: This is a work-around until we make startOfDay customizable for Weeks\n if (node.rhs && hasProp(node.rhs, 'dateFunction') && node.rhs.dateFunction === 'WEEKS') {\n const startDate =\n typeof node.rhs.value === 'number' || isAbsoluteDateString(node.rhs.value)\n ? dayjs.utc(dayjs(node.rhs.value).tz(timezone)).startOf('day').tz(timezone)\n : dayjs.tz(node.rhs.value, timezone).startOf('day'); // Since we store it as YYYY-MM-DD, it's already the start of day\n\n const endDate = startDate.add(7, 'day').subtract(1, 'millisecond'); // Last millisecond on the 7th day from startDate\n return getConditionFromRange(startDate, endDate, node, field.type, timezone);\n }\n\n // Transform double range comparators (BTW, NOT_BTW) into equivalent pair of single range comparators\n if (node.rhs && hasProp(node.rhs, 'start')) {\n if (field.type === 'DECIMAL' || field.type === 'INTEGER' || field.type === 'TIME_ONLY') {\n return getConditionForBetweenComparator(node.rhs.start, node.rhs.end, node);\n }\n\n const startDate =\n typeof node.rhs.start === 'number' || isAbsoluteDateString(node.rhs.start)\n ? dayjs(node.rhs.start).tz(timezone)\n : dayjs.tz(node.rhs.start, timezone);\n const endDate =\n typeof node.rhs.end === 'number' || isAbsoluteDateString(node.rhs.end)\n ? dayjs(node.rhs.end).tz(timezone)\n : dayjs.tz(node.rhs.end, timezone);\n\n return getConditionFromRange(startDate, endDate, node, field.type, timezone);\n }\n\n // apply timezone to date-time fields\n if (timezone && field.type === 'DATE_TIME' && node.rhs && !hasProp(node.rhs, 'dateFunction')) {\n const newNode: LeafCondition = { ...node };\n if (newNode.rhs && hasProp(newNode.rhs, 'value')) {\n newNode.rhs.value = getDateStringInTimezone(\n typeof newNode.rhs.value === 'number' || isAbsoluteDateString(newNode.rhs.value)\n ? dayjs(newNode.rhs.value)\n : dayjs.tz(newNode.rhs.value, timezone),\n timezone\n );\n }\n if (newNode.rhs && hasProp(newNode.rhs, 'values')) {\n const valuesWithTimezone = newNode.rhs.values.map(v =>\n getDateStringInTimezone(\n typeof v === 'number' || isAbsoluteDateString(v) ? dayjs(v) : dayjs.tz(v, timezone),\n timezone\n )\n );\n newNode.rhs.values = valuesWithTimezone;\n }\n return { condition: newNode };\n }\n\n // For all other cases\n return { condition: node };\n}\n\n/** This function transforms Conditions with Relative Dates into Conditions with Date Ranges.\n * Do not use this function unless you need to convert Relative Dates into Date Ranges.\n *\n * If `currentDateTime` is not provided, the current system time will be used.\n * If `timezone` is not provided, the system's timezone will be used for conversion.\n *\n * The `timezone` prop is applied to the date-time values within the condition when the transformation occurs.\n * If `timezone` is specified, the date-time will be converted from UTC (or the provided reference time) to the specified timezone.\n * Then, the transformed date will be used to generate a range.\n * This transformation ensures that the start and end times account for timezone differences when considering the condition's range.\n *\n * For example:\n * - A UTC date-time `2025-05-12T11:24:45.946Z` will be transformed to `2025-05-12T07:24:45.946-04:00` (in the `-04:00` timezone).\n * The date-time will then be converted into a range:\n * `[\"2025-05-12T07:24:45.000\", \"2025-05-12T07:24:45.999\"]`.\n * - A date-time without a timezone (`2025-05-12T11:24:45.946`) will be parsed in the timezone (e.g., `-04:00`).\n * The parsed time will then be transformed into a range like:\n * `[\"2025-05-12T11:24:45.000\", \"2025-05-12T11:24:45.999\"]`.\n *\n */\nexport default function transformComplexCondition(\n condition: Condition,\n fields: Field[],\n transformRelativeDate = true,\n currentDateTime?: string,\n timezone?: string\n): Condition {\n if (hasProp(condition, 'AND')) {\n const childNodes: Condition[] = condition.AND.map(n =>\n transformComplexCondition(n, fields, transformRelativeDate, currentDateTime, timezone)\n );\n return {\n AND: childNodes\n };\n }\n\n if (hasProp(condition, 'OR')) {\n const childNodes: Condition[] = condition.OR.map(n =>\n transformComplexCondition(n, fields, transformRelativeDate, currentDateTime, timezone)\n );\n return {\n OR: childNodes\n };\n }\n\n if (hasProp(condition, 'NOT')) {\n return {\n NOT: transformComplexCondition(\n condition.NOT,\n fields,\n transformRelativeDate,\n currentDateTime,\n timezone\n )\n };\n }\n\n return transformLeafCondition(\n condition.condition,\n fields,\n transformRelativeDate,\n currentDateTime,\n timezone\n );\n}\n"]}
@@ -5,7 +5,8 @@ export type { default as FieldConditionProps } from './FieldCondition.types';
5
5
  export { default as evaluateCondition } from './core/evaluator';
6
6
  export { default as formatCondition, formatRelativeDate } from './core/formatter';
7
7
  export { default as transformComplexCondition } from './core/transformer';
8
- export type { ComparatorsByType, RHSType, FieldType } from './core/types';
8
+ export type { ComparatorsByType, RHSType, FieldType, Comparator } from './core/types';
9
9
  export { splitConditionTree, parseLogicString } from './core/utils';
10
10
  export { default as AtomicCondition, getInitConditionForLhs, isValidCondition } from './AtomicCondition';
11
+ export type { AtomicConditionProps } from './AtomicCondition';
11
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ConditionBuilder/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,YAAY,EACV,OAAO,IAAI,qBAAqB,EAChC,SAAS,EACT,mBAAmB,EACnB,KAAK,EACL,aAAa,EACb,cAAc,EACf,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,YAAY,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAClF,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,YAAY,EAAE,iBAAiB,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EACL,OAAO,IAAI,eAAe,EAC1B,sBAAsB,EACtB,gBAAgB,EACjB,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ConditionBuilder/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,YAAY,EACV,OAAO,IAAI,qBAAqB,EAChC,SAAS,EACT,mBAAmB,EACnB,KAAK,EACL,aAAa,EACb,cAAc,EACf,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,YAAY,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAClF,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,YAAY,EAAE,iBAAiB,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EACL,OAAO,IAAI,eAAe,EAC1B,sBAAsB,EACtB,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/ConditionBuilder/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAS7C,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE7D,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAClF,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAE1E,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EACL,OAAO,IAAI,eAAe,EAC1B,sBAAsB,EACtB,gBAAgB,EACjB,MAAM,mBAAmB,CAAC","sourcesContent":["export { default } from './ConditionBuilder';\nexport type {\n default as ConditionBuilderProps,\n Condition,\n DateFunctionsByType,\n Field,\n LeafCondition,\n ValueSelection\n} from './ConditionBuilder.types';\nexport { default as FieldCondition } from './FieldCondition';\nexport type { default as FieldConditionProps } from './FieldCondition.types';\nexport { default as evaluateCondition } from './core/evaluator';\nexport { default as formatCondition, formatRelativeDate } from './core/formatter';\nexport { default as transformComplexCondition } from './core/transformer';\nexport type { ComparatorsByType, RHSType, FieldType } from './core/types';\nexport { splitConditionTree, parseLogicString } from './core/utils';\nexport {\n default as AtomicCondition,\n getInitConditionForLhs,\n isValidCondition\n} from './AtomicCondition';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/ConditionBuilder/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAS7C,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE7D,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAClF,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAE1E,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EACL,OAAO,IAAI,eAAe,EAC1B,sBAAsB,EACtB,gBAAgB,EACjB,MAAM,mBAAmB,CAAC","sourcesContent":["export { default } from './ConditionBuilder';\nexport type {\n default as ConditionBuilderProps,\n Condition,\n DateFunctionsByType,\n Field,\n LeafCondition,\n ValueSelection\n} from './ConditionBuilder.types';\nexport { default as FieldCondition } from './FieldCondition';\nexport type { default as FieldConditionProps } from './FieldCondition.types';\nexport { default as evaluateCondition } from './core/evaluator';\nexport { default as formatCondition, formatRelativeDate } from './core/formatter';\nexport { default as transformComplexCondition } from './core/transformer';\nexport type { ComparatorsByType, RHSType, FieldType, Comparator } from './core/types';\nexport { splitConditionTree, parseLogicString } from './core/utils';\nexport {\n default as AtomicCondition,\n getInitConditionForLhs,\n isValidCondition\n} from './AtomicCondition';\nexport type { AtomicConditionProps } from './AtomicCondition';\n"]}
@@ -1,5 +1,5 @@
1
1
  import type { DefaultTheme } from 'styled-components';
2
2
  export declare const StyledConditionRadioGroup: import("styled-components").StyledComponent<"fieldset", DefaultTheme, {}, never>;
3
3
  export declare const StyledVerticalFieldGroup: import("styled-components").StyledComponent<import("@pega/cosmos-react-core").ForwardRefForwardPropsComponent<import("@pega/cosmos-react-core").FieldGroupProps>, DefaultTheme, {}, never>;
4
- export declare const StyledVerticalAtomicCondition: import("styled-components").StyledComponent<import("@pega/cosmos-react-core").ForwardRefForwardPropsComponent<import("../ConditionBuilder/AtomicCondition").AtomicConditionProps>, DefaultTheme, {}, never>;
4
+ export declare const StyledVerticalAtomicCondition: import("styled-components").StyledComponent<import("@pega/cosmos-react-core").ForwardRefForwardPropsComponent<import("../ConditionBuilder").AtomicConditionProps>, DefaultTheme, {}, never>;
5
5
  //# sourceMappingURL=ConditionInput.styles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConditionInput.styles.d.ts","sourceRoot":"","sources":["../../../src/components/ConditionInput/ConditionInput.styles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAc,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAalE,eAAO,MAAM,yBAAyB,kFAIrC,CAAC;AAsBF,eAAO,MAAM,wBAAwB,4LAA+C,CAAC;AAIrF,eAAO,MAAM,6BAA6B,6MAAoD,CAAC"}
1
+ {"version":3,"file":"ConditionInput.styles.d.ts","sourceRoot":"","sources":["../../../src/components/ConditionInput/ConditionInput.styles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAc,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAalE,eAAO,MAAM,yBAAyB,kFAIrC,CAAC;AAsBF,eAAO,MAAM,wBAAwB,4LAA+C,CAAC;AAIrF,eAAO,MAAM,6BAA6B,6LAAoD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ConditionSelector.d.ts","sourceRoot":"","sources":["../../../src/components/PromotedFilters/ConditionSelector.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAS/C,OAAO,KAAK,EACV,SAAS,EACT,cAAc,EACd,aAAa,EAEb,YAAY,EACb,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAEhF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGzD,MAAM,WAAW,sBAAuB,SAAQ,SAAS,EAAE,cAAc;IACvE,4BAA4B;IAC5B,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;IAC9C,iDAAiD;IACjD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,+DAA+D;IAC/D,KAAK,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC/B,uCAAuC;IACvC,WAAW,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IAC3C,mDAAmD;IACnD,IAAI,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC7B,4DAA4D;IAC5D,MAAM,EAAE,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IACvC,6CAA6C;IAC7C,UAAU,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,aAAa,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACnE,oCAAoC;IACpC,SAAS,CAAC,EAAE,aAAa,CAAC;CAC3B;AAED,QAAA,MAAM,iBAAiB,EAAE,iBAAiB,CAAC,sBAAsB,GAAG,YAAY,CAsE/E,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"ConditionSelector.d.ts","sourceRoot":"","sources":["../../../src/components/PromotedFilters/ConditionSelector.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAG/C,OAAO,KAAK,EACV,SAAS,EACT,cAAc,EACd,aAAa,EAEb,YAAY,EACb,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAEhF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGzD,MAAM,WAAW,sBAAuB,SAAQ,SAAS,EAAE,cAAc;IACvE,4BAA4B;IAC5B,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;IAC9C,iDAAiD;IACjD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,+DAA+D;IAC/D,KAAK,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC/B,uCAAuC;IACvC,WAAW,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IAC3C,mDAAmD;IACnD,IAAI,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC7B,4DAA4D;IAC5D,MAAM,EAAE,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IACvC,6CAA6C;IAC7C,UAAU,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,aAAa,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACnE,oCAAoC;IACpC,SAAS,CAAC,EAAE,aAAa,CAAC;CAC3B;AAED,QAAA,MAAM,iBAAiB,EAAE,iBAAiB,CAAC,sBAAsB,GAAG,YAAY,CA6E/E,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -1,12 +1,13 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useMemo, useRef } from 'react';
3
- import { useI18n, ComboBox, useConfiguration, menuHelpers, createUID } from '@pega/cosmos-react-core';
3
+ import { useI18n, ComboBox, useConfiguration, menuHelpers, useUID } from '@pega/cosmos-react-core';
4
4
  import formatCondition from '../ConditionBuilder/core/formatter';
5
5
  import { conditionsEqual } from '../ConditionInput/utils';
6
6
  const ConditionSelector = ({ onChange, status, label, info, fields, labelHidden, conditions, condition, ...restProps }) => {
7
7
  const t = useI18n();
8
8
  const { locale } = useConfiguration();
9
9
  const inputRef = useRef(null);
10
+ const anyItemId = useUID();
10
11
  const itemsToRender = useMemo(() => {
11
12
  const items = conditions.map(({ id, label: conditionLabel, value }) => {
12
13
  return {
@@ -21,8 +22,8 @@ const ConditionSelector = ({ onChange, status, label, info, fields, labelHidden,
21
22
  });
22
23
  if (condition) {
23
24
  items.unshift({
24
- id: createUID(),
25
- primary: '',
25
+ id: anyItemId,
26
+ primary: t('any'),
26
27
  selected: false
27
28
  });
28
29
  }
@@ -36,7 +37,12 @@ const ConditionSelector = ({ onChange, status, label, info, fields, labelHidden,
36
37
  text: selected.primary
37
38
  }
38
39
  }
39
- : undefined, menu: {
40
+ : {
41
+ items: {
42
+ id: anyItemId,
43
+ text: t('any')
44
+ }
45
+ }, menu: {
40
46
  items: itemsToRender,
41
47
  onItemClick: (id) => onChange(conditions.find(cnd => cnd.id === id)?.value)
42
48
  }, status: status, info: status === 'error' ? t('condition_builder_empty_selection_error_text') : info }));
@@ -1 +1 @@
1
- {"version":3,"file":"ConditionSelector.js","sourceRoot":"","sources":["../../../src/components/PromotedFilters/ConditionSelector.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAGxC,OAAO,EACL,OAAO,EACP,QAAQ,EACR,gBAAgB,EAChB,WAAW,EACX,SAAS,EACV,MAAM,yBAAyB,CAAC;AAUjC,OAAO,eAAe,MAAM,oCAAoC,CAAC;AAEjE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAqB1D,MAAM,iBAAiB,GAA6D,CAAC,EACnF,QAAQ,EACR,MAAM,EACN,KAAK,EACL,IAAI,EACJ,MAAM,EACN,WAAW,EACX,UAAU,EACV,SAAS,EACT,GAAG,SAAS,EACW,EAAE,EAAE;IAC3B,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAEtC,MAAM,QAAQ,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC9C,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE;QACjC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,EAAE;YACpE,OAAO;gBACL,EAAE;gBACF,OAAO,EACL,cAAc;oBACd,eAAe,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE;wBAC/C,MAAM;wBACN,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,QAAQ,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,SAAS,IAAI,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC;aACtE,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,IAAI,SAAS,EAAE,CAAC;YACd,KAAK,CAAC,OAAO,CAAC;gBACZ,EAAE,EAAE,SAAS,EAAE;gBACf,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,KAAK;aAChB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;IAE5B,MAAM,QAAQ,GAAG,OAAO,CACtB,GAAG,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAC/C,CAAC,aAAa,CAAC,CAChB,CAAC;IAEF,OAAO,CACL,KAAC,QAAQ,OACH,SAAS,EACb,GAAG,EAAE,QAAQ,EACb,IAAI,EAAC,eAAe,EACpB,KAAK,EAAE,KAAK,IAAI,CAAC,CAAC,yCAAyC,CAAC,EAC5D,WAAW,EAAE,WAAW,EACxB,QAAQ,EACN,QAAQ;YACN,CAAC,CAAC;gBACE,KAAK,EAAE;oBACL,EAAE,EAAE,QAAQ,CAAC,EAAE;oBACf,IAAI,EAAE,QAAQ,CAAC,OAAO;iBACvB;aACF;YACH,CAAC,CAAC,SAAS,EAEf,IAAI,EAAE;YACJ,KAAK,EAAE,aAAa;YACpB,WAAW,EAAE,CAAC,EAAuB,EAAE,EAAE,CACvC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC;SACzD,EACD,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,8CAA8C,CAAC,CAAC,CAAC,CAAC,IAAI,GACnF,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,iBAAiB,CAAC","sourcesContent":["import { useMemo, useRef } from 'react';\nimport type { FunctionComponent } from 'react';\n\nimport {\n useI18n,\n ComboBox,\n useConfiguration,\n menuHelpers,\n createUID\n} from '@pega/cosmos-react-core';\nimport type {\n BaseProps,\n NoChildrenProp,\n ComboBoxProps,\n MenuItemProps,\n ForwardProps\n} from '@pega/cosmos-react-core';\n\nimport type { AtomicConditionProps } from '../ConditionBuilder/AtomicCondition';\nimport formatCondition from '../ConditionBuilder/core/formatter';\nimport type { LeafCondition } from '../ConditionBuilder';\nimport { conditionsEqual } from '../ConditionInput/utils';\n\nexport interface ConditionSelectorProps extends BaseProps, NoChildrenProp {\n /** Callback for onChange */\n onChange: (condition?: LeafCondition) => void;\n /** Used to indicate any errors on the control */\n status?: 'error';\n /** Custom label for input. Makes label visible if provided. */\n label?: ComboBoxProps['label'];\n /** Visually hides the label region. */\n labelHidden?: ComboBoxProps['labelHidden'];\n /** Guidance text that apppears below the input. */\n info?: ComboBoxProps['info'];\n /** Definition of the field the condition is created for. */\n fields: AtomicConditionProps['fields'];\n /** List of possible predefined Conditions */\n conditions: { id: string; value: LeafCondition; label?: string }[];\n /** Currently selected condition. */\n condition?: LeafCondition;\n}\n\nconst ConditionSelector: FunctionComponent<ConditionSelectorProps & ForwardProps> = ({\n onChange,\n status,\n label,\n info,\n fields,\n labelHidden,\n conditions,\n condition,\n ...restProps\n}: ConditionSelectorProps) => {\n const t = useI18n();\n const { locale } = useConfiguration();\n\n const inputRef = useRef<HTMLDivElement>(null);\n const itemsToRender = useMemo(() => {\n const items = conditions.map(({ id, label: conditionLabel, value }) => {\n return {\n id,\n primary:\n conditionLabel ??\n formatCondition({ condition: value }, fields, t, {\n locale,\n omitLhs: true\n }),\n selected: !!value && !!condition && conditionsEqual(value, condition)\n };\n });\n if (condition) {\n items.unshift({\n id: createUID(),\n primary: '',\n selected: false\n });\n }\n\n return items;\n }, [conditions, condition]);\n\n const selected = useMemo<MenuItemProps | undefined>(\n () => menuHelpers.getSelected(itemsToRender)[0],\n [itemsToRender]\n );\n\n return (\n <ComboBox\n {...restProps}\n ref={inputRef}\n mode='single-select'\n label={label ?? t('condition_builder_possible_values_label')}\n labelHidden={labelHidden}\n selected={\n selected\n ? {\n items: {\n id: selected.id,\n text: selected.primary\n }\n }\n : undefined\n }\n menu={{\n items: itemsToRender,\n onItemClick: (id: MenuItemProps['id']) =>\n onChange(conditions.find(cnd => cnd.id === id)?.value)\n }}\n status={status}\n info={status === 'error' ? t('condition_builder_empty_selection_error_text') : info}\n />\n );\n};\n\nexport default ConditionSelector;\n"]}
1
+ {"version":3,"file":"ConditionSelector.js","sourceRoot":"","sources":["../../../src/components/PromotedFilters/ConditionSelector.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAGxC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAUnG,OAAO,eAAe,MAAM,oCAAoC,CAAC;AAEjE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAqB1D,MAAM,iBAAiB,GAA6D,CAAC,EACnF,QAAQ,EACR,MAAM,EACN,KAAK,EACL,IAAI,EACJ,MAAM,EACN,WAAW,EACX,UAAU,EACV,SAAS,EACT,GAAG,SAAS,EACW,EAAE,EAAE;IAC3B,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAEtC,MAAM,QAAQ,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC;IAC3B,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE;QACjC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,EAAE;YACpE,OAAO;gBACL,EAAE;gBACF,OAAO,EACL,cAAc;oBACd,eAAe,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE;wBAC/C,MAAM;wBACN,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,QAAQ,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,SAAS,IAAI,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC;aACtE,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,SAAS,EAAE,CAAC;YACd,KAAK,CAAC,OAAO,CAAC;gBACZ,EAAE,EAAE,SAAS;gBACb,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC;gBACjB,QAAQ,EAAE,KAAK;aAChB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;IAE5B,MAAM,QAAQ,GAAG,OAAO,CACtB,GAAG,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAC/C,CAAC,aAAa,CAAC,CAChB,CAAC;IAEF,OAAO,CACL,KAAC,QAAQ,OACH,SAAS,EACb,GAAG,EAAE,QAAQ,EACb,IAAI,EAAC,eAAe,EACpB,KAAK,EAAE,KAAK,IAAI,CAAC,CAAC,yCAAyC,CAAC,EAC5D,WAAW,EAAE,WAAW,EACxB,QAAQ,EACN,QAAQ;YACN,CAAC,CAAC;gBACE,KAAK,EAAE;oBACL,EAAE,EAAE,QAAQ,CAAC,EAAE;oBACf,IAAI,EAAE,QAAQ,CAAC,OAAO;iBACvB;aACF;YACH,CAAC,CAAC;gBACE,KAAK,EAAE;oBACL,EAAE,EAAE,SAAS;oBACb,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC;iBACf;aACF,EAEP,IAAI,EAAE;YACJ,KAAK,EAAE,aAAa;YACpB,WAAW,EAAE,CAAC,EAAuB,EAAE,EAAE,CACvC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC;SACzD,EACD,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,8CAA8C,CAAC,CAAC,CAAC,CAAC,IAAI,GACnF,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,iBAAiB,CAAC","sourcesContent":["import { useMemo, useRef } from 'react';\nimport type { FunctionComponent } from 'react';\n\nimport { useI18n, ComboBox, useConfiguration, menuHelpers, useUID } from '@pega/cosmos-react-core';\nimport type {\n BaseProps,\n NoChildrenProp,\n ComboBoxProps,\n MenuItemProps,\n ForwardProps\n} from '@pega/cosmos-react-core';\n\nimport type { AtomicConditionProps } from '../ConditionBuilder/AtomicCondition';\nimport formatCondition from '../ConditionBuilder/core/formatter';\nimport type { LeafCondition } from '../ConditionBuilder';\nimport { conditionsEqual } from '../ConditionInput/utils';\n\nexport interface ConditionSelectorProps extends BaseProps, NoChildrenProp {\n /** Callback for onChange */\n onChange: (condition?: LeafCondition) => void;\n /** Used to indicate any errors on the control */\n status?: 'error';\n /** Custom label for input. Makes label visible if provided. */\n label?: ComboBoxProps['label'];\n /** Visually hides the label region. */\n labelHidden?: ComboBoxProps['labelHidden'];\n /** Guidance text that apppears below the input. */\n info?: ComboBoxProps['info'];\n /** Definition of the field the condition is created for. */\n fields: AtomicConditionProps['fields'];\n /** List of possible predefined Conditions */\n conditions: { id: string; value: LeafCondition; label?: string }[];\n /** Currently selected condition. */\n condition?: LeafCondition;\n}\n\nconst ConditionSelector: FunctionComponent<ConditionSelectorProps & ForwardProps> = ({\n onChange,\n status,\n label,\n info,\n fields,\n labelHidden,\n conditions,\n condition,\n ...restProps\n}: ConditionSelectorProps) => {\n const t = useI18n();\n const { locale } = useConfiguration();\n\n const inputRef = useRef<HTMLDivElement>(null);\n const anyItemId = useUID();\n const itemsToRender = useMemo(() => {\n const items = conditions.map(({ id, label: conditionLabel, value }) => {\n return {\n id,\n primary:\n conditionLabel ??\n formatCondition({ condition: value }, fields, t, {\n locale,\n omitLhs: true\n }),\n selected: !!value && !!condition && conditionsEqual(value, condition)\n };\n });\n\n if (condition) {\n items.unshift({\n id: anyItemId,\n primary: t('any'),\n selected: false\n });\n }\n\n return items;\n }, [conditions, condition]);\n\n const selected = useMemo<MenuItemProps | undefined>(\n () => menuHelpers.getSelected(itemsToRender)[0],\n [itemsToRender]\n );\n\n return (\n <ComboBox\n {...restProps}\n ref={inputRef}\n mode='single-select'\n label={label ?? t('condition_builder_possible_values_label')}\n labelHidden={labelHidden}\n selected={\n selected\n ? {\n items: {\n id: selected.id,\n text: selected.primary\n }\n }\n : {\n items: {\n id: anyItemId,\n text: t('any')\n }\n }\n }\n menu={{\n items: itemsToRender,\n onItemClick: (id: MenuItemProps['id']) =>\n onChange(conditions.find(cnd => cnd.id === id)?.value)\n }}\n status={status}\n info={status === 'error' ? t('condition_builder_empty_selection_error_text') : info}\n />\n );\n};\n\nexport default ConditionSelector;\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pega/cosmos-react-condition-builder",
3
- "version": "9.0.0-build.1.0",
3
+ "version": "9.0.0-build.10.1",
4
4
  "license": "SEE LICENSE IN LICENSE",
5
5
  "author": "Pegasystems",
6
6
  "sideEffects": [
@@ -17,7 +17,7 @@
17
17
  "build": "tsc -b tsconfig.build.json"
18
18
  },
19
19
  "dependencies": {
20
- "@pega/cosmos-react-core": "9.0.0-build.1.0",
20
+ "@pega/cosmos-react-core": "9.0.0-build.10.1",
21
21
  "@types/react": "^17.0.62 || ^18.3.3",
22
22
  "@types/react-dom": "^17.0.20 || ^18.3.0",
23
23
  "@types/styled-components": "^5.1.26",