manu-sapiens's picture
copy of omnitool_latest - should be working
b39afbe
raw
history blame
1.27 kB
/**
* Copyright (c) 2023 MERCENARIES.AI PTE. LTD.
* All rights reserved.
*/
import tippy from 'tippy.js';
import 'tippy.js/dist/tippy.css';
import DOMPurify from 'dompurify';
import { galleryComponent } from './GalleryComponent.js';
import { audioPlayerComponent } from './AudioPlayerComponent.js';
export function registerUtils(alpine) {
alpine.data('inputUtils', () => ({
textareaAutoResize(el) {
el.style.height = 'auto';
el.style.height = Math.min(el.scrollHeight, 400) + 'px';
},
scrollBottom(el) {
el.scrollTop = el.scrollHeight;
}
}));
alpine.data('gallery', () => galleryComponent());
alpine.data('audioPlayer', () => audioPlayerComponent());
alpine.magic('tooltip', (el) => (message) => {
const instance = tippy(el, { content: message, trigger: 'manual' });
instance.show();
setTimeout(() => {
instance.hide();
setTimeout(() => instance.destroy(), 150);
}, 2000);
});
// Directive: x-tooltip or x-tooltip:reactive
alpine.directive('tooltip', (el, { value, expression }, { evaluate }) => {
let text = expression;
if (value === 'reactive') {
text = evaluate(expression);
}
tippy(el, { content: DOMPurify.sanitize(text, { ALLOWED_TAGS: [] }) });
});
}