【フォームブリッジ】日付フィールドの入力に制限をかけた後のさらなる制御について

・「新設」の場合、店舗での販売開始年月日は届出日の翌日かそれ以降である必要
・「増設」「変更」「廃止」の場合、事由発生日から2週間以内に届け出をする必要
・・・という制限を下記のコードで実装できました。

ご教示いただきたいのは、その後のさらなる制御でして、仮に、フィールドコードが「遅延理由」という複数行文字列のフィールドを作成したとして、そこに何らかの文字が入力がされれば、制限が外れて届出送信ができる、という実装をしたいのですが、どのようにコードを追加すればよろしいでしょうか?
ご教示いただけると大変助かります。よろしくお願いいたします。

(function () {
  'use strict';

  fb.events.form.created.push(function (state) {
    // 増設テーブルの設定
    const expansionTableField = state.fields.find(field => field.code === '増設テーブル');
    const expansionDateField = expansionTableField.fields.find(item => item.code === '増設販売所の販売開始年月日');
    expansionDateField.validations.push({
      params: [],
      rule: 'expansion_err_event'
    });

    // 変更テーブルむりやりの設定
    const forcedChangeTableField = state.fields.find(field => field.code === '変更テーブルむりやり');
    const forcedChangeDateField = forcedChangeTableField.fields.find(item => item.code === '変更年月日_届出者変更後');
    forcedChangeDateField.validations.push({
      params: [],
      rule: 'forced_change_err_event'
    });

    // 変更テーブルの設定
    const changeTableField = state.fields.find(field => field.code === '変更テーブル');
    const changeDateField = changeTableField.fields.find(item => item.code === '変更年月日_販売所変更後');
    changeDateField.validations.push({
      params: [],
      rule: 'change_err_event'
    });

    // 廃止テーブルの設定
    const abolishTableField = state.fields.find(field => field.code === '廃止テーブル');
    const abolishDateField = abolishTableField.fields.find(item => item.code === '廃止年月日');
    abolishDateField.validations.push({
      params: [],
      rule: 'abolish_err_event'
    });

    // 新設テーブルの設定
    const newTableField = state.fields.find(field => field.code === '新設テーブル');
    const startDateField = newTableField.fields.find(item => item.code === '販売開始年月日');
    startDateField.validations.push({
      params: [],
      rule: 'start_err_event'
    });

    return state;
  });

  fb.addValidators = function (state) {
    return {
      expansion_err_event: {
        getMessage: function (fieldCode, params) {
          return '増設という事由発生日から2週間以内に届け出をする必要があります';
        },
        validate: function (value, params) {
          const min = new Date();
          min.setDate(min.getDate() - 15);
          return value > min;
        }
      },
      forced_change_err_event: {
        getMessage: function (fieldCode, params) {
          return '変更という事由発生日から2週間以内に届け出をする必要があります';
        },
        validate: function (value, params) {
          const min = new Date();
          min.setDate(min.getDate() - 15);
          return value > min;
        }
      },
      change_err_event: {
        getMessage: function (fieldCode, params) {
          return '変更という事由発生日から2週間以内に届け出をする必要があります';
        },
        validate: function (value, params) {
          const min = new Date();
          min.setDate(min.getDate() - 15);
          return value > min;
        }
      },
      abolish_err_event: {
        getMessage: function (fieldCode, params) {
          return '廃止という事由発生日から2週間以内に届け出をする必要があります';
        },
        validate: function (value, params) {
          const min = new Date();
          min.setDate(min.getDate() - 15);
          return value > min;
        }
      },
      start_err_event: {
        getMessage: function (fieldCode, params) {
          return '販売開始年月日は届出日の翌日かそれ以降である必要があります';
        },
        validate: function (value, params) {
          const min = new Date();
          min.setDate(min.getDate() + 0);
          return value > min;
        }
      }
    };
  };
})();