@wgalleti/primevue-components 1.7.2 → 1.9.0
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.
- package/dist/components/crud/WEditableTable.vue.d.ts +10 -6
- package/dist/components/index.d.ts +1 -0
- package/dist/components/ui/WGroupedSelectList.vue.d.ts +100 -0
- package/dist/components/ui/WKpiCard.vue.d.ts +6 -0
- package/dist/components/ui/WKpiGrid.vue.d.ts +3 -3
- package/dist/components/ui/WMapSelect.vue.d.ts +3 -3
- package/dist/components-BF5wlxI5.cjs +25 -0
- package/dist/components-BF5wlxI5.cjs.map +1 -0
- package/dist/{components-BLTs63gb.js → components-DvHpUfOc.js} +2359 -2030
- package/dist/components-DvHpUfOc.js.map +1 -0
- package/dist/components.cjs +1 -1
- package/dist/components.js +2 -2
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +29 -29
- package/dist/index.js.map +1 -1
- package/dist/primevue-components.css +1 -1
- package/dist/types/editableTable.d.ts +30 -8
- package/dist/types/groupedSelectList.d.ts +15 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/kpi.d.ts +2 -0
- package/package.json +1 -1
- package/dist/components-B0gZh8LS.cjs +0 -25
- package/dist/components-B0gZh8LS.cjs.map +0 -1
- package/dist/components-BLTs63gb.js.map +0 -1
|
@@ -12,15 +12,18 @@ import { EditableColumnDef, EditableRow } from '../../types/editableTable';
|
|
|
12
12
|
* A subtabela de insumos do design é este mesmo componente dentro do slot
|
|
13
13
|
* `#expansion` — não existe componente separado para "tabela filha".
|
|
14
14
|
*
|
|
15
|
-
* **
|
|
16
|
-
* `WCrudView` já faz com a listagem.
|
|
15
|
+
* **Componente mais estreito que 840px ou que o piso da grade: a tabela vira
|
|
16
|
+
* card**, uma linha por card, como o `WCrudView` já faz com a listagem. A régua é a largura do PRÓPRIO
|
|
17
|
+
* componente, não a da janela: com a barra lateral do app, a janela passa de 840
|
|
18
|
+
* muito antes de a tabela caber, e era nessa faixa que a coluna do título caía a
|
|
19
|
+
* zero. E vira sem tela paralela: a marcação é a
|
|
17
20
|
* MESMA — o `<table>` troca de display e cada `<tbody>` (que já era uma linha)
|
|
18
21
|
* vira o card. É isso que mantém os slots `#cell-*`, os editores e a expansão
|
|
19
22
|
* funcionando iguais nas duas larguras; duplicar a árvore para o tablet daria
|
|
20
23
|
* duas UIs para a mesma etapa, que divergem na primeira correção.
|
|
21
24
|
*
|
|
22
25
|
* O que cada coluna vira dentro do card sai de `column.card` (título, ações,
|
|
23
|
-
* contexto, campo, leitura). Sem declarar nada, a primeira coluna é o título e
|
|
26
|
+
* contexto, número principal, campo, leitura). Sem declarar nada, a primeira coluna é o título e
|
|
24
27
|
* as demais são campos — toda tabela existente já cai em pé no tablet.
|
|
25
28
|
*/
|
|
26
29
|
type __VLS_Props = {
|
|
@@ -44,9 +47,10 @@ type __VLS_Props = {
|
|
|
44
47
|
/** Campo usado como `key` das linhas. Sem ele, a chave é o índice. */
|
|
45
48
|
rowKey?: string;
|
|
46
49
|
/**
|
|
47
|
-
* Quando a tabela vira card. `auto` (default) segue a
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
+
* Quando a tabela vira card. `auto` (default) segue a largura do próprio
|
|
51
|
+
* componente (não da janela): card abaixo de 840px ou do piso da grade, o que
|
|
52
|
+
* for maior; tabela acima. `never` mantém a tabela em qualquer largura (planilha
|
|
53
|
+
* que só faz sentido em grade, rola na horizontal); `always` é para vitrine e teste.
|
|
50
54
|
*/
|
|
51
55
|
cardMode?: 'auto' | 'never' | 'always';
|
|
52
56
|
/** Rótulo do abridor da expansão no card — lá não existe coluna de seta. */
|
|
@@ -33,6 +33,7 @@ export { default as WAvatar } from './ui/WAvatar.vue';
|
|
|
33
33
|
export { default as WCheckList } from './ui/WCheckList.vue';
|
|
34
34
|
export { default as WInlineCell } from './ui/WInlineCell.vue';
|
|
35
35
|
export { default as WAttentionList } from './ui/WAttentionList.vue';
|
|
36
|
+
export { default as WGroupedSelectList } from './ui/WGroupedSelectList.vue';
|
|
36
37
|
export { default as WMapSelect } from './ui/WMapSelect.vue';
|
|
37
38
|
export { default as WMarkdownView } from './ui/WMarkdownView.vue';
|
|
38
39
|
export { default as WMarkdownEditor } from './form/WMarkdownEditor.vue';
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { ColumnDef } from '../../types/column';
|
|
2
|
+
import { GroupedSelectKey } from '../../types/groupedSelectList';
|
|
3
|
+
/**
|
|
4
|
+
* Tabela agrupada com seleção múltipla: grupos recolhíveis, checkbox de grupo em três estados,
|
|
5
|
+
* linhas que podem não ser selecionáveis (com o motivo num badge) e a ação "selecionar todos os
|
|
6
|
+
* resultados". O componente nunca filtra: `items` já é o resultado. As chaves de `selection` que
|
|
7
|
+
* não estão em `items` ficam intactas e não são contadas — podá-las é papel de quem chama.
|
|
8
|
+
* `selection` e `collapsed` são `defineModel`: seguem sempre o pai e funcionam sem v-model.
|
|
9
|
+
*/
|
|
10
|
+
type __VLS_Props = {
|
|
11
|
+
/** Linhas já filtradas; a ordem dos grupos é a da primeira aparição. */
|
|
12
|
+
items: Record<string, unknown>[];
|
|
13
|
+
columns: ColumnDef[];
|
|
14
|
+
/** Campo que identifica a linha (o valor entra em `selection`). */
|
|
15
|
+
dataKey?: string;
|
|
16
|
+
/** Campo (ou função) que dá a chave do grupo da linha. */
|
|
17
|
+
groupBy: string | ((item: Record<string, unknown>) => string);
|
|
18
|
+
/** Rótulo do grupo; default a própria chave. */
|
|
19
|
+
groupLabel?: (groupKey: string, items: Record<string, unknown>[]) => string;
|
|
20
|
+
/** Trava global: false desabilita todo checkbox, sem badge, e esconde "selecionar todos". */
|
|
21
|
+
selectable?: boolean;
|
|
22
|
+
/** Diz se a linha pode ser selecionada; default todas. Linha travada já selecionada pode ser desmarcada. */
|
|
23
|
+
isSelectable?: (item: Record<string, unknown>) => boolean;
|
|
24
|
+
/** Texto do badge nas linhas não selecionáveis. */
|
|
25
|
+
disabledReason?: (item: Record<string, unknown>) => string | null | undefined;
|
|
26
|
+
/** Com linhas já na tela elas continuam visíveis, com uma barra de carregamento; o placeholder só aparece sem linhas. */
|
|
27
|
+
loading?: boolean;
|
|
28
|
+
emptyMessage?: string;
|
|
29
|
+
selectAllLabel?: string;
|
|
30
|
+
clearSelectionLabel?: string;
|
|
31
|
+
/** false remove o botão de recolher dos grupos. */
|
|
32
|
+
collapsible?: boolean;
|
|
33
|
+
};
|
|
34
|
+
type __VLS_ModelProps = {
|
|
35
|
+
/** Chaves das linhas selecionadas (v-model:selection). Sem v-model do pai o estado é local. */
|
|
36
|
+
'selection'?: GroupedSelectKey[];
|
|
37
|
+
/** Chaves dos grupos recolhidos (v-model:collapsed). */
|
|
38
|
+
'collapsed'?: string[];
|
|
39
|
+
};
|
|
40
|
+
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
41
|
+
declare var __VLS_1: {}, __VLS_3: {}, __VLS_12: {
|
|
42
|
+
groupKey: string;
|
|
43
|
+
label: string;
|
|
44
|
+
items: Record<string, unknown>[];
|
|
45
|
+
selectedCount: number;
|
|
46
|
+
selectableCount: number;
|
|
47
|
+
collapsed: boolean;
|
|
48
|
+
}, __VLS_14: {
|
|
49
|
+
groupKey: string;
|
|
50
|
+
label: string;
|
|
51
|
+
items: Record<string, unknown>[];
|
|
52
|
+
selectedCount: number;
|
|
53
|
+
selectableCount: number;
|
|
54
|
+
collapsed: boolean;
|
|
55
|
+
}, __VLS_24: `column-${string}`, __VLS_25: {
|
|
56
|
+
data: Record<string, unknown>;
|
|
57
|
+
column: ColumnDef;
|
|
58
|
+
value: unknown;
|
|
59
|
+
}, __VLS_37: {
|
|
60
|
+
data: Record<string, unknown>;
|
|
61
|
+
};
|
|
62
|
+
type __VLS_Slots = {} & {
|
|
63
|
+
[K in NonNullable<typeof __VLS_24>]?: (props: typeof __VLS_25) => any;
|
|
64
|
+
} & {
|
|
65
|
+
summary?: (props: typeof __VLS_1) => any;
|
|
66
|
+
} & {
|
|
67
|
+
empty?: (props: typeof __VLS_3) => any;
|
|
68
|
+
} & {
|
|
69
|
+
'group-header'?: (props: typeof __VLS_12) => any;
|
|
70
|
+
} & {
|
|
71
|
+
'group-meta'?: (props: typeof __VLS_14) => any;
|
|
72
|
+
} & {
|
|
73
|
+
'row-actions'?: (props: typeof __VLS_37) => any;
|
|
74
|
+
};
|
|
75
|
+
declare const __VLS_base: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
76
|
+
"update:selection": (value: GroupedSelectKey[]) => any;
|
|
77
|
+
"update:collapsed": (value: string[]) => any;
|
|
78
|
+
}, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
79
|
+
"onUpdate:selection"?: ((value: GroupedSelectKey[]) => any) | undefined;
|
|
80
|
+
"onUpdate:collapsed"?: ((value: string[]) => any) | undefined;
|
|
81
|
+
}>, {
|
|
82
|
+
emptyMessage: string;
|
|
83
|
+
loading: boolean;
|
|
84
|
+
dataKey: string;
|
|
85
|
+
groupLabel: (groupKey: string, items: Record<string, unknown>[]) => string;
|
|
86
|
+
selectable: boolean;
|
|
87
|
+
isSelectable: (item: Record<string, unknown>) => boolean;
|
|
88
|
+
disabledReason: (item: Record<string, unknown>) => string | null | undefined;
|
|
89
|
+
selectAllLabel: string;
|
|
90
|
+
clearSelectionLabel: string;
|
|
91
|
+
collapsible: boolean;
|
|
92
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
93
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
94
|
+
declare const _default: typeof __VLS_export;
|
|
95
|
+
export default _default;
|
|
96
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
97
|
+
new (): {
|
|
98
|
+
$slots: S;
|
|
99
|
+
};
|
|
100
|
+
};
|
|
@@ -25,6 +25,11 @@ type __VLS_Props = {
|
|
|
25
25
|
size?: 'default' | 'compact';
|
|
26
26
|
/** Card usado como filtro e aplicado agora: destaca e anuncia `aria-pressed`. */
|
|
27
27
|
active?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* O que o tom da severidade pinta: `icon` (padrão) só o ícone; `value` também o
|
|
30
|
+
* número — para o KPI cujo valor já é o alerta (atraso, saldo negativo).
|
|
31
|
+
*/
|
|
32
|
+
tint?: 'icon' | 'value';
|
|
28
33
|
};
|
|
29
34
|
declare var __VLS_28: {}, __VLS_30: {}, __VLS_32: {}, __VLS_34: {}, __VLS_36: {};
|
|
30
35
|
type __VLS_Slots = {} & {
|
|
@@ -44,6 +49,7 @@ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {},
|
|
|
44
49
|
onClick?: ((event: KeyboardEvent | MouseEvent) => any) | undefined;
|
|
45
50
|
}>, {
|
|
46
51
|
size: "default" | "compact";
|
|
52
|
+
tint: "icon" | "value";
|
|
47
53
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
48
54
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
49
55
|
declare const _default: typeof __VLS_export;
|
|
@@ -2,9 +2,9 @@ import { KpiItem, KpiItemClickEvent } from '../../types/kpi';
|
|
|
2
2
|
type __VLS_Props = {
|
|
3
3
|
items?: KpiItem[];
|
|
4
4
|
/**
|
|
5
|
-
* Número fixo de colunas (2–6) ou 'auto'
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* Número fixo de colunas (2–6) ou 'auto': a grade escolhe, pela própria
|
|
6
|
+
* largura, um número de colunas que fecha as linhas (4 KPIs: 4, 2×2 ou 1 —
|
|
7
|
+
* nunca 3 + 1). Use 'auto' em dashboards que devem aproveitar a largura.
|
|
8
8
|
*/
|
|
9
9
|
columns?: 2 | 3 | 4 | 5 | 6 | 'auto';
|
|
10
10
|
/**
|
|
@@ -219,16 +219,16 @@ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {
|
|
|
219
219
|
fecharDetalhe: typeof fecharDetalhe;
|
|
220
220
|
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
221
221
|
"update:modelValue": (ids: MapSelectId[]) => any;
|
|
222
|
+
"update:collapsed": (collapsed: boolean) => any;
|
|
222
223
|
"feature-click": (feature: MapSelectFeature) => any;
|
|
223
224
|
"feature-enter": (feature: MapSelectFeature) => any;
|
|
224
225
|
"feature-leave": () => any;
|
|
225
|
-
"update:collapsed": (collapsed: boolean) => any;
|
|
226
226
|
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
227
227
|
"onUpdate:modelValue"?: ((ids: MapSelectId[]) => any) | undefined;
|
|
228
|
+
"onUpdate:collapsed"?: ((collapsed: boolean) => any) | undefined;
|
|
228
229
|
"onFeature-click"?: ((feature: MapSelectFeature) => any) | undefined;
|
|
229
230
|
"onFeature-enter"?: ((feature: MapSelectFeature) => any) | undefined;
|
|
230
231
|
"onFeature-leave"?: (() => any) | undefined;
|
|
231
|
-
"onUpdate:collapsed"?: ((collapsed: boolean) => any) | undefined;
|
|
232
232
|
}>, {
|
|
233
233
|
searchPlaceholder: string;
|
|
234
234
|
emptyMessage: string;
|
|
@@ -238,6 +238,7 @@ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {
|
|
|
238
238
|
readonly: boolean;
|
|
239
239
|
selectionMode: MapSelectSelectionMode;
|
|
240
240
|
features: MapSelectFeature[];
|
|
241
|
+
collapsed: boolean;
|
|
241
242
|
scopeGeometry: MapSelectGeometry | null;
|
|
242
243
|
tileUrl: string;
|
|
243
244
|
tileAttribution: string;
|
|
@@ -250,7 +251,6 @@ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {
|
|
|
250
251
|
clearLabel: string;
|
|
251
252
|
collapseLabel: string;
|
|
252
253
|
expandLabel: string;
|
|
253
|
-
collapsed: boolean;
|
|
254
254
|
badgeLabel: string;
|
|
255
255
|
mapErrorMessage: string;
|
|
256
256
|
tooltips: MapSelectTooltips;
|