import * as __WEBPACK_EXTERNAL_MODULE_react__ from "react";
import * as __WEBPACK_EXTERNAL_MODULE_react_i18next__ from "react-i18next";
import * as __WEBPACK_EXTERNAL_MODULE__schema_component_antd_date_picker_util_mjs__ from "../../../schema-component/antd/date-picker/util.mjs";
const useDatetimeVariable = function() {
    let { operator, schema, noDisabled } = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
    const { t } = (0, __WEBPACK_EXTERNAL_MODULE_react_i18next__.useTranslation)();
    const datetimeSettings = (0, __WEBPACK_EXTERNAL_MODULE_react__.useMemo)(()=>{
        const operatorValue = (null == operator ? void 0 : operator.value) || '';
        const disabled = !noDisabled && ![
            'DatePicker',
            'DatePicker.RangePicker'
        ].includes(null == schema ? void 0 : schema['x-component']);
        const dateOptions = [
            {
                key: 'now',
                value: 'now',
                label: t('Current time'),
                disabled: !noDisabled && ((null == schema ? void 0 : schema['x-component']) !== 'DatePicker' || '$dateBetween' === operatorValue)
            },
            {
                key: 'yesterday',
                value: 'yesterday',
                label: t('Yesterday'),
                disabled
            },
            {
                key: 'today',
                value: 'today',
                label: t('Today'),
                disabled
            },
            {
                key: 'tomorrow',
                value: 'tomorrow',
                label: t('Tomorrow'),
                disabled
            },
            {
                key: 'lastIsoWeek',
                value: 'lastIsoWeek',
                label: t('Last week'),
                disabled
            },
            {
                key: 'thisIsoWeek',
                value: 'thisIsoWeek',
                label: t('This week'),
                disabled
            },
            {
                key: 'nextIsoWeek',
                value: 'nextIsoWeek',
                label: t('Next week'),
                disabled
            },
            {
                key: 'lastMonth',
                value: 'lastMonth',
                label: t('Last month'),
                disabled
            },
            {
                key: 'thisMonth',
                value: 'thisMonth',
                label: t('This month'),
                disabled
            },
            {
                key: 'nextMonth',
                value: 'nextMonth',
                label: t('Next month'),
                disabled
            },
            {
                key: 'lastQuarter',
                value: 'lastQuarter',
                label: t('Last quarter'),
                disabled
            },
            {
                key: 'thisQuarter',
                value: 'thisQuarter',
                label: t('This quarter'),
                disabled
            },
            {
                key: 'nextQuarter',
                value: 'nextQuarter',
                label: t('Next quarter'),
                disabled
            },
            {
                key: 'lastYear',
                value: 'lastYear',
                label: t('Last year'),
                disabled
            },
            {
                key: 'thisYear',
                value: 'thisYear',
                label: t('This year'),
                disabled
            },
            {
                key: 'nextYear',
                value: 'nextYear',
                label: t('Next year'),
                disabled
            },
            {
                key: 'last7Days',
                value: 'last7Days',
                label: t('Last 7 days'),
                disabled
            },
            {
                key: 'next7Days',
                value: 'next7Days',
                label: t('Next 7 days'),
                disabled
            },
            {
                key: 'last30Days',
                value: 'last30Days',
                label: t('Last 30 days'),
                disabled
            },
            {
                key: 'next30Days',
                value: 'next30Days',
                label: t('Next 30 days'),
                disabled
            },
            {
                key: 'last90Days',
                value: 'last90Days',
                label: t('Last 90 days'),
                disabled
            },
            {
                key: 'next90Days',
                value: 'next90Days',
                label: t('Next 90 days'),
                disabled
            }
        ];
        return {
            label: t('Date variables'),
            value: '$nDate',
            key: '$nDate',
            disabled: dateOptions.every((option)=>option.disabled),
            children: dateOptions
        };
    }, [
        null == schema ? void 0 : schema['x-component']
    ]);
    const datetimeCtx = (0, __WEBPACK_EXTERNAL_MODULE_react__.useMemo)(()=>(0, __WEBPACK_EXTERNAL_MODULE__schema_component_antd_date_picker_util_mjs__.getDateRanges)(), []);
    return {
        datetimeSettings,
        datetimeCtx
    };
};
export { useDatetimeVariable };
