Spaces:
Running
Running
File size: 1,271 Bytes
b39afbe |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
/**
* 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: [] }) });
});
}
|