import { L as LOCALIZED_SLUGS } from './constants-106f2bcb.js';
import './index-a8162282.js';
import { V as VideoType } from './index-91c6a49c.js';
import formatString from 'string-format';
import { T as TOGETHER_PATHS } from './constants-96288a21.js';
import { domainLocales } from './constantsDomainLocales.js';

const formatSponsor = (sponsor) => {
    if (!sponsor)
        return {};
    return {
        title: sponsor.title,
        logo: sponsor.logo,
        link: sponsor.link,
    };
};
const formatReviewedCategory = (data) => {
    return {
        postTitle: data.post_title,
        permalink: data.permalink,
    };
};
const formatFaqsCategory = (data) => {
    return {
        title: data.title,
        content: data.content,
    };
};
const formatCategory = (category) => {
    var _a, _b;
    if (!category)
        return {};
    return {
        termId: category.term_id || null,
        sponsor: category.sponsor ? formatSponsor(category.sponsor) : null,
        isSponsored: category.is_sponsored || null,
        categoryName: category.cat_name || category.name || null,
        name: category.name || null,
        iconUrl: category.icon || '',
        slugName: category.category_nicename || null,
        description: category.description || null,
        featureImage: category.thumbnail || category.image || null,
        displayName: category.name || null,
        parent: category.parent || null,
        permalink: category.permalink || null,
        slug: category.slug || null,
        childCates: ((_a = category.child_cates) === null || _a === void 0 ? void 0 : _a.map((childCate) => {
            return formatCategory(childCate);
        })) || [],
        thumnailColor: category.thumnail_color ||
            ['#FFEAF1', '#E0E9FB', '#FFF9EB', '#F2FCF7', '#F3F3F3'][(Math.random() * 5) | 0],
        colorFeatureImage: category.color_feature_image || null,
        imageColor: category.image_color || null,
        textColor: category.text_color || null,
        catParent: ((_b = category.cat_parent) === null || _b === void 0 ? void 0 : _b.name)
            ? {
                name: category.cat_parent.name,
                permalink: category.cat_parent.permalink,
            }
            : {},
        metaTag: category.meta_tag || '',
        reviewedBy: category.reviewed_by
            ? formatReviewedCategory(category.reviewed_by)
            : null,
        reviewedDate: category.reviewed_date || '',
        faqs: category.faqs
            ? category.faqs.map((faq) => formatFaqsCategory(faq))
            : null,
        customizedUrl: category.customized_url || null,
    };
};
const formatHealthTool = (healthTool) => {
    var _a, _b;
    if (!healthTool)
        return {};
    const isBot = (_a = healthTool.link) === null || _a === void 0 ? void 0 : _a.includes('/bot/');
    const hasFilPrefix = (_b = healthTool.link) === null || _b === void 0 ? void 0 : _b.startsWith('/fil/');
    const link = healthTool.link
        ? healthTool.link.startsWith('http')
            ? healthTool.link
            : isBot
                ? healthTool.link
                : hasFilPrefix
                    ? healthTool.link
                        .replace('/health-tools/', '/')
                        .replace('/fil/', '/fil/health-tools/')
                    : `/health-tools${healthTool.link.replace('/health-tools/', '/')}`
        : undefined;
    return {
        icon: healthTool.icon,
        link,
        subtitle: healthTool.subtitle,
        title: healthTool.title,
        isMobileAppTool: !!(healthTool === null || healthTool === void 0 ? void 0 : healthTool.is_mobile_app_tool),
    };
};
const formatSpecialties = (specialties) => {
    var _a, _b, _c, _d, _e;
    if (!specialties || !(specialties === null || specialties === void 0 ? void 0 : specialties.object_id))
        return {};
    return {
        thumbnail: ((_a = specialties === null || specialties === void 0 ? void 0 : specialties.object_id) === null || _a === void 0 ? void 0 : _a.logo) || '',
        link: ((_b = specialties === null || specialties === void 0 ? void 0 : specialties.object_id) === null || _b === void 0 ? void 0 : _b.slug) || '',
        subtitle: ((_c = specialties.object_id) === null || _c === void 0 ? void 0 : _c.name) || '',
        name: ((_d = specialties.object_id) === null || _d === void 0 ? void 0 : _d.name) || '',
        slug: ((_e = specialties.object_id) === null || _e === void 0 ? void 0 : _e.slug) || '',
    };
};
const formatHospital = (hospital) => {
    var _a, _b, _c, _d, _e;
    if (!hospital || !(hospital === null || hospital === void 0 ? void 0 : hospital.object_id))
        return {};
    return {
        id: (_a = hospital.object_id) === null || _a === void 0 ? void 0 : _a.id,
        name: ((_b = hospital.object_id) === null || _b === void 0 ? void 0 : _b.name) || '',
        logo: ((_c = hospital === null || hospital === void 0 ? void 0 : hospital.object_id) === null || _c === void 0 ? void 0 : _c.logo) || '',
        description: ((_d = hospital.object_id) === null || _d === void 0 ? void 0 : _d.description) || '',
        slug: ((_e = hospital.object_id) === null || _e === void 0 ? void 0 : _e.slug) || '',
    };
};
const getTogetherUserPostsApiPath = (locale, isMarryBaby, apiDomain, params) => {
    const apiUrl = apiDomain || `https://together.hellohealthgroup.com/`;
    return (apiUrl +
        'api/v1/' +
        formatString(TOGETHER_PATHS.GET_USER_POSTS, Object.assign(Object.assign({}, params), { websiteUrl: isMarryBaby
                ? 'https://marrybaby.vn'
                : `https://${domainLocales[locale]}` })));
};
const getCareSearchUrl = ({ type, specialtySlug, locale, }) => {
    var _a, _b;
    return `${(_a = LOCALIZED_SLUGS[locale]) === null || _a === void 0 ? void 0 : _a.ALL}/${((_b = LOCALIZED_SLUGS[locale]) === null || _b === void 0 ? void 0 : _b[type]) || 'doctor'}/${specialtySlug !== null && specialtySlug !== void 0 ? specialtySlug : ''}`;
};
const formatSpotlightsList = (spotlight) => {
    if (!spotlight)
        return {};
    return {
        id: spotlight.ID,
        name: spotlight.name,
        permalink: spotlight.permalink,
        image: (spotlight === null || spotlight === void 0 ? void 0 : spotlight.small_banner) || (spotlight === null || spotlight === void 0 ? void 0 : spotlight.image) || '',
        imageMedium: (spotlight === null || spotlight === void 0 ? void 0 : spotlight.image_medium) || null,
        imageThumbnail: (spotlight === null || spotlight === void 0 ? void 0 : spotlight.image_thumbnail) || null,
        startDate: spotlight === null || spotlight === void 0 ? void 0 : spotlight.start_date,
        endDate: spotlight === null || spotlight === void 0 ? void 0 : spotlight.end_date,
        buttonDisplay: spotlight.button_display || null,
    };
};
const checkAvailableSpotlight = (spotlight) => {
    const today = new Date();
    if (spotlight === null || spotlight === void 0 ? void 0 : spotlight.startDate) {
        const startDate = new Date(spotlight.startDate);
        if (today.getTime() < startDate.getTime())
            return false;
    }
    if (spotlight === null || spotlight === void 0 ? void 0 : spotlight.endDate) {
        const endDate = new Date(spotlight.endDate);
        if (today.getTime() > endDate.getTime())
            return false;
    }
    return true;
};
const formatVideoItem = (data) => {
    if (typeof data === 'undefined' || !data)
        return null;
    return {
        id: data.ID || '',
        videoId: data.video_id || '',
        url: data.video_url || '',
        title: data.video_title || '',
        type: data.type || VideoType.VIDEO,
        totalView: data.total_view || 0,
        description: data.description || '',
        createTime: data.create_time || '',
        duration: data.duration || 0,
        image: data.image || '',
        imageMedium: data.image_medium || '',
        imageThumbnail: data.image_thumbnail || '',
        active: false,
        articleLink: data.article_link || '',
    };
};
function hexToRgb(hex, returnObj = false) {
    let alpha = false, h = hex.slice(hex.startsWith('#') ? 1 : 0);
    if (h.length === 3)
        h = [...h].map((x) => x + x).join('');
    else if (h.length === 8)
        alpha = true;
    h = parseInt(h, 16);
    const obj = {
        r: h >>> (alpha ? 24 : 16),
        g: (h & (alpha ? 0x00ff0000 : 0x00ff00)) >>> (alpha ? 16 : 8),
        b: (h & (alpha ? 0x0000ff00 : 0x0000ff)) >>> (alpha ? 8 : 0),
    };
    return returnObj
        ? obj
        : 'rgb' +
            (alpha ? 'a' : '') +
            '(' +
            obj.r +
            ', ' +
            obj.g +
            ', ' +
            obj.b +
            (alpha ? `, ${h & 0x000000ff}` : '') +
            ')';
}
function rgbToHsb(r, g, b) {
    r /= 255;
    g /= 255;
    b /= 255;
    const v = Math.max(r, g, b), n = v - Math.min(r, g, b);
    const h = n === 0
        ? 0
        : n && v === r
            ? (g - b) / n
            : v === g
                ? 2 + (b - r) / n
                : 4 + (r - g) / n;
    return [60 * (h < 0 ? h + 6 : h), v && (n / v) * 100, v * 100];
}
function hsbToRgb(h, s, b) {
    s /= 100;
    b /= 100;
    const k = (n) => (n + h / 60) % 6;
    const f = (n) => b * (1 - s * Math.max(0, Math.min(k(n), 4 - k(n), 1)));
    return [255 * f(5), 255 * f(3), 255 * f(1)];
}

export { getCareSearchUrl as a, hsbToRgb as b, formatSpotlightsList as c, checkAvailableSpotlight as d, formatHealthTool as e, formatCategory as f, getTogetherUserPostsApiPath as g, hexToRgb as h, formatVideoItem as i, formatSpecialties as j, formatHospital as k, rgbToHsb as r };
