@oneblink/sdk-core
    Preparing search index...

    Function evaluateConditionalPredicates

    • Given a set of form elements and submission data, evaluate if predicates are met or not.

      const evaluation = conditionalLogicService.evaluateConditionalPredicates(
      {
      isConditional: true,
      requiresAllConditionalPredicates: false,
      conditionalPredicates: [
      {
      type: 'OPTIONS',
      elementId: '3534abe4-b0b5-4ffa-a216-49c223ab6f95',
      optionIds: ['9ce633dd-22d6-4e0e-a9e0-1aa62d435e72'],
      },
      ],
      submission: {
      checkboxes: ['a'],
      },
      formElements: [
      {
      name: 'checkboxes',
      label: 'Checkboxes',
      type: 'checkboxes',
      required: false,
      id: '3534abe4-b0b5-4ffa-a216-49c223ab6f95',
      options: [
      {
      id: '9ce633dd-22d6-4e0e-a9e0-1aa62d435e72',
      label: 'First',
      value: 'a',
      },
      {
      id: '5850b32c-3833-4498-a072-47fcc8122242',
      label: 'Second',
      value: 'b',
      },
      {
      id: 'ab363e9f-a63f-4923-ba0d-47892fc26a93',
      label: 'Third',
      value: 'c',
      },
      ],
      readOnly: false,
      buttons: false,
      optionsType: 'CUSTOM',
      conditionallyShowOptions: false,
      isDataLookup: false,
      isElementLookup: false,
      conditionallyShow: false,
      requiresAllConditionallyShowPredicates: false,
      },
      ],
      submissionTimestamp: new Date().toISOString(),
      parseDayOnlyDate: (value) => new Date(`${value}T00:00:00.000Z`),
      addDaysToDate: (date, days) => {
      date.setUTCDate(date.getUTCDate() + days)
      return date
      },
      startOfDay: (date) => {
      date.setUTCHours(0, 0, 0, 0)
      return date
      },
      endOfDay: (date) => {
      date.setUTCHours(23, 59, 59, 999)
      return date
      },
      },
      )

      Parameters

      • options: {
            addDaysToDate: AddOffsetToDate;
            conditionalPredicates: ConditionalPredicate[];
            endOfDay: EndOfDay;
            formElements: FormElement[];
            isConditional: boolean;
            parseDayOnlyDate: ParseDayOnlyDate;
            requiresAllConditionalPredicates: boolean;
            startOfDay: StartOfDay;
            submission: { [name: string]: unknown };
            submissionTimestamp: string;
        }
        • addDaysToDate: AddOffsetToDate

          Add days to a date when evaluating date based predicates

        • conditionalPredicates: ConditionalPredicate[]
        • endOfDay: EndOfDay

          End of calendar day when evaluating date (not datetime) based predicates

        • formElements: FormElement[]
        • isConditional: boolean
        • parseDayOnlyDate: ParseDayOnlyDate

          Parse YYYY-MM-DD strings when evaluating date based predicates

        • requiresAllConditionalPredicates: boolean
        • startOfDay: StartOfDay

          Start of calendar day when evaluating date (not datetime) based predicates

        • submission: { [name: string]: unknown }
        • submissionTimestamp: string

          ISO timestamp the form was submitted. When evaluating during submission, pass new Date().toISOString().

      Returns boolean