v-sistec-features 1.0.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,61 @@
1
+ import { ref, computed, type CSSProperties } from 'vue';
2
+
3
+ export function useImagePreview() {
4
+
5
+ const isHovering = ref<boolean>(false);
6
+ const previewSrc = ref<string>('');
7
+ const previewX = ref<number>(0);
8
+ const previewY = ref<number>(0);
9
+
10
+ const previewStyle = computed<CSSProperties>(() => ({
11
+ position: 'fixed',
12
+ zIndex: 9999,
13
+ pointerEvents: 'none',
14
+ top: `${previewY.value + 15}px`,
15
+ left: `${previewX.value + 15}px`,
16
+ }));
17
+
18
+ function updatePreviewPosition(event: MouseEvent): void {
19
+ const cursorX = event.clientX;
20
+ const cursorY = event.clientY;
21
+ const viewportHeight = window.innerHeight;
22
+ const offset = 15;
23
+ const previewHeight = 300; // Altura máxima estimada
24
+
25
+ let newY = cursorY + offset;
26
+
27
+ if (newY + previewHeight > viewportHeight) {
28
+ newY = cursorY - previewHeight - offset;
29
+ if (newY < 0) {
30
+ newY = 0;
31
+ }
32
+ }
33
+ previewX.value = cursorX;
34
+ previewY.value = newY;
35
+ }
36
+
37
+ function handleMouseOver(event: MouseEvent, src: string): void {
38
+ isHovering.value = true;
39
+ previewSrc.value = src;
40
+ updatePreviewPosition(event);
41
+ }
42
+
43
+ function handleMouseMove(event: MouseEvent): void {
44
+ if (isHovering.value) {
45
+ updatePreviewPosition(event);
46
+ }
47
+ }
48
+
49
+ function handleMouseLeave(): void {
50
+ isHovering.value = false;
51
+ }
52
+
53
+ return {
54
+ isHovering,
55
+ previewSrc,
56
+ previewStyle,
57
+ handleMouseOver,
58
+ handleMouseMove,
59
+ handleMouseLeave,
60
+ };
61
+ }
@@ -0,0 +1,7 @@
1
+ import VColumn from './components/VColumn.vue';
2
+ import VDataTable from './components/VDataTable.vue';
3
+
4
+ export {
5
+ VDataTable,
6
+ VColumn
7
+ };
@@ -0,0 +1,32 @@
1
+ // src/keys.ts
2
+ import type { InjectionKey, Slot } from 'vue'
3
+
4
+ export interface ColumnConfiguration {
5
+ field: string | null;
6
+ header: string;
7
+ type: 'text' | 'img' | 'date' | 'html';
8
+ class_column: string;
9
+ class_row: string;
10
+ class_item: string;
11
+ transform_function: ((value: any) => any) | null;
12
+ bodySlot?: Slot;
13
+ limite_text?: number;
14
+ deactivate_img_preview?: boolean;
15
+ format?: 'complete' | 'simple';
16
+ }
17
+
18
+ // A API que o VDataTable "fornece" para os filhos
19
+ export interface DataTableApi {
20
+ addColumn: (config: ColumnConfiguration) => void;
21
+ }
22
+
23
+ // A chave de injeção do DataTableApi
24
+ export const dataTableApiKey: InjectionKey<DataTableApi> = Symbol('v-datatable-key')
25
+
26
+ export interface PaginationObject {
27
+ current_page: number;
28
+ count: number;
29
+ limit_per_page: number;
30
+ search: string;
31
+ filter: string;
32
+ }
package/dist/vite.svg DELETED
@@ -1 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>