74 lines
3.1 KiB
JavaScript
74 lines
3.1 KiB
JavaScript
const ANNOUNCEMENT_ICON_OPTIONS = [
|
|
{ value: 'megaphone-fill', label: 'Megaphone' },
|
|
{ value: 'megaphone', label: 'Megaphone outline' },
|
|
{ value: 'bell-fill', label: 'Bell' },
|
|
{ value: 'bell', label: 'Bell outline' },
|
|
{ value: 'exclamation-triangle-fill', label: 'Warning' },
|
|
{ value: 'exclamation-triangle', label: 'Warning outline' },
|
|
{ value: 'info-circle-fill', label: 'Info' },
|
|
{ value: 'info-circle', label: 'Info outline' },
|
|
{ value: 'check-circle-fill', label: 'Success' },
|
|
{ value: 'check-circle', label: 'Success outline' },
|
|
{ value: 'lightbulb-fill', label: 'Idea' },
|
|
{ value: 'lightbulb', label: 'Idea outline' },
|
|
{ value: 'calendar-event-fill', label: 'Calendar' },
|
|
{ value: 'calendar-event', label: 'Calendar outline' },
|
|
{ value: 'clock-fill', label: 'Clock' },
|
|
{ value: 'clock', label: 'Clock outline' },
|
|
{ value: 'wifi-off', label: 'Wi-Fi Offline' },
|
|
{ value: 'wifi', label: 'Wi-Fi' },
|
|
{ value: 'hdd-network', label: 'Network' },
|
|
{ value: 'hdd-network-fill', label: 'Network fill' },
|
|
{ value: 'speaker-fill', label: 'Speaker' },
|
|
{ value: 'speaker', label: 'Speaker outline' },
|
|
{ value: 'shield-fill', label: 'Shield' },
|
|
{ value: 'shield', label: 'Shield outline' },
|
|
{ value: 'collection-play-fill', label: 'Playlist' },
|
|
{ value: 'collection-play', label: 'Playlist outline' },
|
|
{ value: 'broadcast', label: 'Broadcast' },
|
|
{ value: 'broadcast-pin', label: 'Broadcast pin' },
|
|
{ value: 'plug-fill', label: 'Plug' },
|
|
{ value: 'plug', label: 'Plug outline' },
|
|
{ value: 'lightning-charge-fill', label: 'Urgent' },
|
|
{ value: 'lightning-charge', label: 'Urgent outline' },
|
|
{ value: 'car-front-fill', label: 'Car Front' },
|
|
{ value: 'car-front', label: 'Car Front outline' },
|
|
{ value: 'lamp-fill', label: 'Lamp' },
|
|
{ value: 'lamp', label: 'Lamp outline' },
|
|
{ value: 'envelope-fill', label: 'Message' },
|
|
{ value: 'envelope', label: 'Message outline' },
|
|
{ value: 'people-fill', label: 'Audience' },
|
|
{ value: 'people', label: 'Audience outline' },
|
|
{ value: 'browser-chrome', label: 'Browser Chrome' },
|
|
{ value: 'browser-edge', label: 'Browser Edge' },
|
|
{ value: 'browser-firefox', label: 'Browser Firefox' },
|
|
{ value: 'browser-safari', label: 'Browser Safari' },
|
|
{ value: 'cone', label: 'Cone' },
|
|
{ value: 'cone-striped', label: 'Cone striped' },
|
|
{ value: 'cup-straw', label: 'Cup straw' },
|
|
{ value: 'fire', label: 'Fire' }
|
|
];
|
|
|
|
const ANNOUNCEMENT_ICON_KEYS = ANNOUNCEMENT_ICON_OPTIONS.map(function (option) {
|
|
return option.value;
|
|
});
|
|
|
|
const ANNOUNCEMENT_ICON_LABELS = ANNOUNCEMENT_ICON_OPTIONS.reduce(function (labels, option) {
|
|
labels[option.value] = option.label;
|
|
return labels;
|
|
}, Object.create(null));
|
|
|
|
const DEFAULT_ANNOUNCEMENT_ICON = 'megaphone-fill';
|
|
|
|
function normalizeAnnouncementIcon(value) {
|
|
const normalized = String(value || '').trim().toLowerCase();
|
|
return ANNOUNCEMENT_ICON_KEYS.includes(normalized) ? normalized : DEFAULT_ANNOUNCEMENT_ICON;
|
|
}
|
|
|
|
module.exports = {
|
|
ANNOUNCEMENT_ICON_OPTIONS,
|
|
ANNOUNCEMENT_ICON_KEYS,
|
|
ANNOUNCEMENT_ICON_LABELS,
|
|
DEFAULT_ANNOUNCEMENT_ICON,
|
|
normalizeAnnouncementIcon
|
|
}; |