@tekkare/romulus 0.1.108 → 0.1.110
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/module.json
CHANGED
|
@@ -54,6 +54,11 @@ const props = withDefaults(
|
|
|
54
54
|
mode?: 'create' | 'edit'
|
|
55
55
|
/** Alerte a modifier, en mode `edit`. */
|
|
56
56
|
initial?: Partial<RmAlertDraft>
|
|
57
|
+
/**
|
|
58
|
+
* Le mode d'essai est ouvert cote API : la cadence courte apparait. Hors
|
|
59
|
+
* de la, elle n'existe pas a l'ecran.
|
|
60
|
+
*/
|
|
61
|
+
testCadence?: boolean
|
|
57
62
|
lang?: 'fr' | 'en'
|
|
58
63
|
}>(),
|
|
59
64
|
{
|
|
@@ -64,6 +69,7 @@ const props = withDefaults(
|
|
|
64
69
|
submitting: false,
|
|
65
70
|
mode: 'create',
|
|
66
71
|
initial: undefined,
|
|
72
|
+
testCadence: false,
|
|
67
73
|
lang: 'fr',
|
|
68
74
|
},
|
|
69
75
|
)
|
|
@@ -109,6 +115,7 @@ const FR = {
|
|
|
109
115
|
daily: 'Quotidienne (un envoi par jour au plus)',
|
|
110
116
|
weekly: 'Hebdomadaire (un envoi par semaine au plus)',
|
|
111
117
|
monthly: 'Mensuelle (un envoi par mois au plus)',
|
|
118
|
+
test5: 'Toutes les 5 minutes (mode essai)',
|
|
112
119
|
cadenceHint:
|
|
113
120
|
'Un plafond, pas un rythme : rien ne part quand rien n’a bougé, et la détection suit celle des données.',
|
|
114
121
|
submit: 'Créer l’alerte',
|
|
@@ -150,6 +157,7 @@ const EN = {
|
|
|
150
157
|
daily: 'Daily (at most one a day)',
|
|
151
158
|
weekly: 'Weekly (at most one a week)',
|
|
152
159
|
monthly: 'Monthly (at most one a month)',
|
|
160
|
+
test5: 'Every 5 minutes (test mode)',
|
|
153
161
|
cadenceHint:
|
|
154
162
|
'A cap, not a rhythm: nothing goes out when nothing moved, and detection follows the data.',
|
|
155
163
|
submit: 'Create the alert',
|
|
@@ -246,6 +254,9 @@ const cadenceOptions = computed(() => [
|
|
|
246
254
|
{ value: 'monthly' as const, label: T.value.monthly },
|
|
247
255
|
{ value: 'weekly' as const, label: T.value.weekly },
|
|
248
256
|
{ value: 'daily' as const, label: T.value.daily },
|
|
257
|
+
...(props.testCadence
|
|
258
|
+
? [{ value: 'test5' as const, label: T.value.test5 }]
|
|
259
|
+
: []),
|
|
249
260
|
])
|
|
250
261
|
|
|
251
262
|
const cadenceLabel = computed(
|
|
@@ -38,8 +38,8 @@
|
|
|
38
38
|
tombent pas les unes sous les autres et la colonne ne se compare plus.
|
|
39
39
|
|
|
40
40
|
Les variantes de la reference sont des drapeaux : `compact`, `sticky-header`,
|
|
41
|
-
`selectable`, `expandable`, plus `groupBy` pour les sections et `heat`
|
|
42
|
-
colonne pour la carte de chaleur.
|
|
41
|
+
`selectable`, `expandable`, `flat`, plus `groupBy` pour les sections et `heat`
|
|
42
|
+
par colonne pour la carte de chaleur.
|
|
43
43
|
-->
|
|
44
44
|
<script setup lang="ts">
|
|
45
45
|
import { computed, ref } from 'vue'
|
|
@@ -82,6 +82,13 @@ export interface RmTableProps {
|
|
|
82
82
|
/** Rythme dense : 12px de texte, 6/12 de gouttiere. Pour les longues tables. */
|
|
83
83
|
compact?: boolean
|
|
84
84
|
stickyHeader?: boolean
|
|
85
|
+
/**
|
|
86
|
+
* Sans cadre : ni fond, ni bordure, ni rayon. A poser des que la table vit
|
|
87
|
+
* deja dans une carte, sinon les deux bordures se doublent et les coins
|
|
88
|
+
* arrondis dessinent une seconde carte a l'interieur de la premiere.
|
|
89
|
+
* `RmTableCard` le fait de lui-meme ; une carte maison doit le demander.
|
|
90
|
+
*/
|
|
91
|
+
flat?: boolean
|
|
85
92
|
maxHeight?: string
|
|
86
93
|
loading?: boolean
|
|
87
94
|
emptyText?: string
|
|
@@ -112,6 +119,7 @@ const props = withDefaults(defineProps<RmTableProps>(), {
|
|
|
112
119
|
hoverable: true,
|
|
113
120
|
compact: false,
|
|
114
121
|
stickyHeader: true,
|
|
122
|
+
flat: false,
|
|
115
123
|
maxHeight: '500px',
|
|
116
124
|
loading: false,
|
|
117
125
|
emptyText: 'Aucune donnée',
|
|
@@ -285,7 +293,7 @@ function heatClass(col: RmTableColumn, row: Record<string, any>) {
|
|
|
285
293
|
</script>
|
|
286
294
|
|
|
287
295
|
<template>
|
|
288
|
-
<div class="rm-table-wrapper">
|
|
296
|
+
<div class="rm-table-wrapper" :class="{ 'rm-table-wrapper--flat': flat }">
|
|
289
297
|
<!-- La barre d'actions groupees ne sort qu'a partir d'une ligne retenue :
|
|
290
298
|
posee en permanence, elle occuperait une bande vide en haut de table. -->
|
|
291
299
|
<div v-if="selectable && selected.length > 0" class="rm-table__bulk">
|
|
@@ -479,5 +487,5 @@ function heatClass(col: RmTableColumn, row: Record<string, any>) {
|
|
|
479
487
|
</template>
|
|
480
488
|
|
|
481
489
|
<style scoped>
|
|
482
|
-
.rm-table-wrapper{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-md,8px);flex:1;overflow:hidden}.rm-table__scroll{overflow:auto}.rm-table{border-collapse:collapse;font-size:var(--font-13,13px);width:100%}.rm-sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border:0;white-space:nowrap}.rm-table caption{caption-side:top;color:var(--text-primary);font-size:var(--font-13,13px);font-weight:700;padding:0 0 var(--space-8,var(--space-8));text-align:left}.rm-table__th{background:var(--bg-surface-2);border-bottom:1px solid var(--border-default);color:var(--text-secondary);font-size:var(--font-11,11px);font-weight:700;letter-spacing:.08em;padding:var(--space-12) 14px;text-align:left;text-transform:uppercase;white-space:nowrap}.rm-table--sticky .rm-table__th{border-bottom:none;box-shadow:inset 0 -1px 0 var(--border-default);position:sticky;top:0;z-index:2}.rm-table__th--center{text-align:center}.rm-table__th--num,.rm-table__th--right{text-align:right}.rm-table__th--check,.rm-table__th--expand{padding-right:0;width:36px}.rm-table__sort{align-items:center;background:none;border:none;color:inherit;cursor:pointer;display:inline-flex;font:inherit;gap:var(--space-6,var(--space-6));letter-spacing:inherit;padding:0;text-transform:inherit}.rm-table__sort:hover{color:var(--text-primary)}.rm-table__sort:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid var(--text-muted);content:"";display:inline-block;height:0;opacity:.5;vertical-align:middle;width:0}.rm-table__th[aria-sort=ascending] .rm-table__sort:after{border-bottom:5px solid var(--color-primary);border-top:none;opacity:1}.rm-table__th[aria-sort=descending] .rm-table__sort:after{border-top:5px solid var(--color-primary);opacity:1}.rm-table a:focus-visible,.rm-table button:focus-visible{border-radius:var(--radius-sm,4px);outline:2px solid var(--color-primary);outline-offset:2px}.rm-table__td{border-bottom:1px solid var(--border-soft);color:var(--text-primary);padding:var(--space-12) 14px;text-align:left;vertical-align:top}th.rm-table__td{background:transparent;font-weight:700;letter-spacing:0;text-transform:none}.rm-table__td--center{text-align:center}.rm-table__td--right{text-align:right}.rm-table__td--num{font-variant-numeric:tabular-nums;text-align:right}.rm-table__td--check,.rm-table__td--expand{color:var(--text-muted);padding-right:0;width:36px}.rm-table__row--striped>.rm-table__td{background:var(--bg-surface-2)}.rm-table--hoverable .rm-table__row:hover>.rm-table__td,.rm-table__row--selected>.rm-table__td{background:var(--bg-hover)}.rm-table__row--expandable{cursor:pointer}.rm-table__caret{display:inline-flex;transition:transform .16s var(--ease-out,ease)}.rm-table__caret.is-open{color:var(--color-primary);transform:rotate(90deg)}.rm-table__group>th{background:var(--bg-hover);color:var(--color-primary);font-size:var(--font-11,11px);font-weight:700;letter-spacing:.08em;padding:var(--space-8,var(--space-8)) var(--space-12,var(--space-12));text-align:left;text-transform:uppercase}.rm-table__detail>td{background:var(--bg-surface-2);border-bottom:1px solid var(--border-soft);padding:0}.rm-table__detail-body{color:var(--text-secondary);font-size:var(--font-12,12px);line-height:1.6;padding:var(--space-12,var(--space-12)) var(--space-20,var(--space-20))}.rm-table__td--heat-1{background:#fee5e5!important;color:#911616}.rm-table__td--heat-2{background:#ffe7d2!important;color:#8a4309}.rm-table__td--heat-3{background:#fff6cc!important;color:#6b5400}.rm-table__td--heat-4{background:#d8f3dc!important;color:#1b5e25}.rm-table__td--heat-5{background:#b7e4c7!important;color:#0e4b19}body.night .rm-table__td--heat-1{background:#3f1414!important;color:#ffb4b4}body.night .rm-table__td--heat-2{background:#3d2410!important;color:#ffc58a}body.night .rm-table__td--heat-3{background:#3a3210!important;color:#ffe07a}body.night .rm-table__td--heat-4{background:#18351f!important;color:#8ae0a4}body.night .rm-table__td--heat-5{background:#0f4019!important;color:#b4f0c2}.rm-table--compact .rm-table__td,.rm-table--compact .rm-table__th{font-size:var(--font-12,12px);padding:var(--space-6,var(--space-6)) var(--space-12,var(--space-12))}.rm-table--compact .rm-table__th{font-size:var(--font-10,10px)}.rm-table__bulk{align-items:center;background:var(--bg-hover);border-bottom:1px solid var(--color-violet-pale);display:flex;font-size:var(--font-12,12px);justify-content:space-between;padding:var(--space-8,var(--space-8)) var(--space-16,var(--space-16))}.rm-table__bulk-count b{color:var(--color-primary)}.rm-table__bulk-actions{display:flex;gap:var(--space-4,var(--space-4))}.rm-table__pager{align-items:center;background:var(--bg-surface);border-top:1px solid var(--border-default);display:flex;font-size:var(--font-12,12px);gap:var(--space-12,var(--space-12));justify-content:space-between;padding:var(--space-8,var(--space-8)) var(--space-12,var(--space-12))}.rm-table__pager-count{color:var(--text-secondary);font-variant-numeric:tabular-nums}.rm-table__pager-controls{align-items:center;display:flex;gap:var(--space-4,var(--space-4))}.rm-table__pager-page{background:none;border:1px solid transparent;border-radius:var(--radius-sm,6px);color:var(--text-secondary);cursor:pointer;font:inherit;font-variant-numeric:tabular-nums;height:28px;min-width:28px;padding:0 var(--space-6)}.rm-table__pager-page:hover{background:var(--bg-hover);color:var(--color-secondary)}.rm-table__pager-page.is-current{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-inverse)}.rm-table__pager-gap{color:var(--text-muted);padding:0 var(--space-2)}.rm-table__empty{color:var(--text-muted);padding:var(--space-32) var(--space-16);text-align:center}.rm-table__skeleton{height:14px;width:80%}
|
|
490
|
+
.rm-table-wrapper{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-md,8px);flex:1;overflow:hidden}.rm-table-wrapper--flat{background:transparent;border:none;border-radius:0}.rm-table__scroll{overflow:auto}.rm-table{border-collapse:collapse;font-size:var(--font-13,13px);width:100%}.rm-sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border:0;white-space:nowrap}.rm-table caption{caption-side:top;color:var(--text-primary);font-size:var(--font-13,13px);font-weight:700;padding:0 0 var(--space-8,var(--space-8));text-align:left}.rm-table__th{background:var(--bg-surface-2);border-bottom:1px solid var(--border-default);color:var(--text-secondary);font-size:var(--font-11,11px);font-weight:700;letter-spacing:.08em;padding:var(--space-12) 14px;text-align:left;text-transform:uppercase;white-space:nowrap}.rm-table--sticky .rm-table__th{border-bottom:none;box-shadow:inset 0 -1px 0 var(--border-default);position:sticky;top:0;z-index:2}.rm-table__th--center{text-align:center}.rm-table__th--num,.rm-table__th--right{text-align:right}.rm-table__th--check,.rm-table__th--expand{padding-right:0;width:36px}.rm-table__sort{align-items:center;background:none;border:none;color:inherit;cursor:pointer;display:inline-flex;font:inherit;gap:var(--space-6,var(--space-6));letter-spacing:inherit;padding:0;text-transform:inherit}.rm-table__sort:hover{color:var(--text-primary)}.rm-table__sort:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid var(--text-muted);content:"";display:inline-block;height:0;opacity:.5;vertical-align:middle;width:0}.rm-table__th[aria-sort=ascending] .rm-table__sort:after{border-bottom:5px solid var(--color-primary);border-top:none;opacity:1}.rm-table__th[aria-sort=descending] .rm-table__sort:after{border-top:5px solid var(--color-primary);opacity:1}.rm-table a:focus-visible,.rm-table button:focus-visible{border-radius:var(--radius-sm,4px);outline:2px solid var(--color-primary);outline-offset:2px}.rm-table__td{border-bottom:1px solid var(--border-soft);color:var(--text-primary);padding:var(--space-12) 14px;text-align:left;vertical-align:top}th.rm-table__td{background:transparent;font-weight:700;letter-spacing:0;text-transform:none}.rm-table__td--center{text-align:center}.rm-table__td--right{text-align:right}.rm-table__td--num{font-variant-numeric:tabular-nums;text-align:right}.rm-table__td--check,.rm-table__td--expand{color:var(--text-muted);padding-right:0;width:36px}.rm-table__row--striped>.rm-table__td{background:var(--bg-surface-2)}.rm-table--hoverable .rm-table__row:hover>.rm-table__td,.rm-table__row--selected>.rm-table__td{background:var(--bg-hover)}.rm-table__row--expandable{cursor:pointer}.rm-table__caret{display:inline-flex;transition:transform .16s var(--ease-out,ease)}.rm-table__caret.is-open{color:var(--color-primary);transform:rotate(90deg)}.rm-table__group>th{background:var(--bg-hover);color:var(--color-primary);font-size:var(--font-11,11px);font-weight:700;letter-spacing:.08em;padding:var(--space-8,var(--space-8)) var(--space-12,var(--space-12));text-align:left;text-transform:uppercase}.rm-table__detail>td{background:var(--bg-surface-2);border-bottom:1px solid var(--border-soft);padding:0}.rm-table__detail-body{color:var(--text-secondary);font-size:var(--font-12,12px);line-height:1.6;padding:var(--space-12,var(--space-12)) var(--space-20,var(--space-20))}.rm-table__td--heat-1{background:#fee5e5!important;color:#911616}.rm-table__td--heat-2{background:#ffe7d2!important;color:#8a4309}.rm-table__td--heat-3{background:#fff6cc!important;color:#6b5400}.rm-table__td--heat-4{background:#d8f3dc!important;color:#1b5e25}.rm-table__td--heat-5{background:#b7e4c7!important;color:#0e4b19}body.night .rm-table__td--heat-1{background:#3f1414!important;color:#ffb4b4}body.night .rm-table__td--heat-2{background:#3d2410!important;color:#ffc58a}body.night .rm-table__td--heat-3{background:#3a3210!important;color:#ffe07a}body.night .rm-table__td--heat-4{background:#18351f!important;color:#8ae0a4}body.night .rm-table__td--heat-5{background:#0f4019!important;color:#b4f0c2}.rm-table--compact .rm-table__td,.rm-table--compact .rm-table__th{font-size:var(--font-12,12px);padding:var(--space-6,var(--space-6)) var(--space-12,var(--space-12))}.rm-table--compact .rm-table__th{font-size:var(--font-10,10px)}.rm-table__bulk{align-items:center;background:var(--bg-hover);border-bottom:1px solid var(--color-violet-pale);display:flex;font-size:var(--font-12,12px);justify-content:space-between;padding:var(--space-8,var(--space-8)) var(--space-16,var(--space-16))}.rm-table__bulk-count b{color:var(--color-primary)}.rm-table__bulk-actions{display:flex;gap:var(--space-4,var(--space-4))}.rm-table__pager{align-items:center;background:var(--bg-surface);border-top:1px solid var(--border-default);display:flex;font-size:var(--font-12,12px);gap:var(--space-12,var(--space-12));justify-content:space-between;padding:var(--space-8,var(--space-8)) var(--space-12,var(--space-12))}.rm-table__pager-count{color:var(--text-secondary);font-variant-numeric:tabular-nums}.rm-table__pager-controls{align-items:center;display:flex;gap:var(--space-4,var(--space-4))}.rm-table__pager-page{background:none;border:1px solid transparent;border-radius:var(--radius-sm,6px);color:var(--text-secondary);cursor:pointer;font:inherit;font-variant-numeric:tabular-nums;height:28px;min-width:28px;padding:0 var(--space-6)}.rm-table__pager-page:hover{background:var(--bg-hover);color:var(--color-secondary)}.rm-table__pager-page.is-current{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-inverse)}.rm-table__pager-gap{color:var(--text-muted);padding:0 var(--space-2)}.rm-table__empty{color:var(--text-muted);padding:var(--space-32) var(--space-16);text-align:center}.rm-table__skeleton{height:14px;width:80%}
|
|
483
491
|
</style>
|
|
@@ -6,8 +6,13 @@
|
|
|
6
6
|
* importer un `.vue`. Meme raison que pour `utils/export.ts`.
|
|
7
7
|
*/
|
|
8
8
|
export type RmAlertStatus = 'seeding' | 'active' | 'paused' | 'stale' | 'failing';
|
|
9
|
-
/**
|
|
10
|
-
|
|
9
|
+
/**
|
|
10
|
+
* Plafond d'envoi du mail, jamais une promesse de frequence.
|
|
11
|
+
*
|
|
12
|
+
* `test5` n'est pas un produit : c'est le mode d'essai (cinq minutes), qui
|
|
13
|
+
* n'apparait que si l'API dit l'avoir ouvert.
|
|
14
|
+
*/
|
|
15
|
+
export type RmAlertCadence = 'daily' | 'weekly' | 'monthly' | 'test5';
|
|
11
16
|
/**
|
|
12
17
|
* Surveiller le document entier plutot qu'une liste de champs. Les champs
|
|
13
18
|
* d'ingestion (horodatage, date de collecte) restent exclus cote moteur,
|