@tekkare/romulus 0.1.225 → 0.1.227
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
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
bouton qui disparait n'apprend pas pourquoi.
|
|
14
14
|
-->
|
|
15
15
|
<script setup lang="ts">
|
|
16
|
-
import { computed } from 'vue'
|
|
16
|
+
import { computed, reactive } from 'vue'
|
|
17
17
|
import type { RmAlert, RmAlertEvent, RmAlertMenuItem } from '../utils/alerts'
|
|
18
18
|
|
|
19
19
|
const props = withDefaults(
|
|
@@ -36,6 +36,12 @@ const props = withDefaults(
|
|
|
36
36
|
expandedEvents?: RmAlertEvent[]
|
|
37
37
|
expandedLoading?: boolean
|
|
38
38
|
lang?: 'fr' | 'en'
|
|
39
|
+
/**
|
|
40
|
+
* Sections rendues repliees, par leur libelle (`group`). Pour ce qui se
|
|
41
|
+
* consulte rarement, comme les alertes posees depuis une autre app : la
|
|
42
|
+
* liste reste complete sans que ces cartes passent devant.
|
|
43
|
+
*/
|
|
44
|
+
collapsedGroups?: string[]
|
|
39
45
|
}>(),
|
|
40
46
|
{
|
|
41
47
|
events: () => [],
|
|
@@ -49,6 +55,7 @@ const props = withDefaults(
|
|
|
49
55
|
expandedEvents: () => [],
|
|
50
56
|
expandedLoading: false,
|
|
51
57
|
lang: 'fr',
|
|
58
|
+
collapsedGroups: () => [],
|
|
52
59
|
},
|
|
53
60
|
)
|
|
54
61
|
|
|
@@ -129,6 +136,9 @@ const sections = computed(() => {
|
|
|
129
136
|
return order.map((label) => ({ label, alerts: byLabel.get(label)! }))
|
|
130
137
|
})
|
|
131
138
|
|
|
139
|
+
/** Sections repliables ouvertes a la main. Toutes fermees au depart. */
|
|
140
|
+
const opened = reactive<Record<string, boolean>>({})
|
|
141
|
+
|
|
132
142
|
const unreadTotal = computed(() =>
|
|
133
143
|
props.alerts.reduce((total, alert) => total + (alert.unreadCount ?? 0), 0),
|
|
134
144
|
)
|
|
@@ -200,30 +210,52 @@ function setTab(value: 'active' | 'paused' | 'events') {
|
|
|
200
210
|
|
|
201
211
|
<template v-else>
|
|
202
212
|
<div v-if="sections.length" class="rm-alerts__list">
|
|
203
|
-
<section
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
213
|
+
<template v-for="section in sections" :key="section.label">
|
|
214
|
+
<RmCollapse
|
|
215
|
+
v-if="section.label && collapsedGroups.includes(section.label)"
|
|
216
|
+
:model-value="!!opened[section.label]"
|
|
217
|
+
:title="section.label"
|
|
218
|
+
:count="section.alerts.length"
|
|
219
|
+
@update:model-value="opened[section.label] = $event"
|
|
220
|
+
>
|
|
221
|
+
<div class="rm-alerts__section">
|
|
222
|
+
<RmAlertCard
|
|
223
|
+
v-for="alert in section.alerts"
|
|
224
|
+
:key="alert.id"
|
|
225
|
+
:alert="alert"
|
|
226
|
+
:menu="menu"
|
|
227
|
+
:lang="lang"
|
|
228
|
+
:on-watched-page="onWatchedPage"
|
|
229
|
+
:expanded="expandedId === alert.id"
|
|
230
|
+
:events="expandedId === alert.id ? expandedEvents : []"
|
|
231
|
+
:events-loading="expandedId === alert.id && expandedLoading"
|
|
232
|
+
@open="emit('open', $event)"
|
|
233
|
+
@rearm="emit('rearm', $event)"
|
|
234
|
+
@menu="emit('menu', $event)"
|
|
235
|
+
/>
|
|
236
|
+
</div>
|
|
237
|
+
</RmCollapse>
|
|
238
|
+
<section v-else class="rm-alerts__section">
|
|
239
|
+
<h3 v-if="section.label" class="rm-alerts__section-title">
|
|
240
|
+
{{ section.label }}
|
|
241
|
+
<span class="rm-alerts__section-count">{{ section.alerts.length }}</span>
|
|
242
|
+
</h3>
|
|
243
|
+
<RmAlertCard
|
|
244
|
+
v-for="alert in section.alerts"
|
|
245
|
+
:key="alert.id"
|
|
246
|
+
:alert="alert"
|
|
247
|
+
:menu="menu"
|
|
248
|
+
:lang="lang"
|
|
249
|
+
:on-watched-page="onWatchedPage"
|
|
250
|
+
:expanded="expandedId === alert.id"
|
|
251
|
+
:events="expandedId === alert.id ? expandedEvents : []"
|
|
252
|
+
:events-loading="expandedId === alert.id && expandedLoading"
|
|
253
|
+
@open="emit('open', $event)"
|
|
254
|
+
@rearm="emit('rearm', $event)"
|
|
255
|
+
@menu="emit('menu', $event)"
|
|
256
|
+
/>
|
|
257
|
+
</section>
|
|
258
|
+
</template>
|
|
227
259
|
</div>
|
|
228
260
|
|
|
229
261
|
<!-- Meme etat vide que les vues : cadre pointille, cloche teintee quand
|
|
@@ -818,5 +818,5 @@ const showGroup = (i: number) =>
|
|
|
818
818
|
</template>
|
|
819
819
|
|
|
820
820
|
<style scoped>
|
|
821
|
-
.rm-rte{color:var(--text-primary);display:flex;flex-direction:column;font-family:var(--font-sans);min-height:0}.rm-rte__toolbar{align-items:center;background:var(--bg-surface);border:1px solid var(--border-soft);border-radius:var(--radius-md);display:flex;flex-wrap:wrap;gap:var(--space-2);padding:var(--space-4);position:sticky;top:0;z-index:var(--z-sticky,20)}.rm-rte__sep{background:var(--border-soft);height:20px;margin:0 var(--space-4);width:1px}.rm-rte__style{background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;font:inherit;font-size:var(--font-13);height:28px;padding:0 var(--space-6)}.rm-rte__style:hover{background:var(--bg-hover)}.rm-rte__btn{align-items:center;background:transparent;border:0;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;display:inline-flex;height:28px;justify-content:center;width:28px}.rm-rte__btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.rm-rte__btn.is-active{background:var(--color-accent-soft);color:var(--color-primary)}.rm-rte__btn:disabled{cursor:default;opacity:.4}.rm-rte__btn:focus-visible,.rm-rte__style:focus-visible{box-shadow:var(--shadow-focus);outline:none}.rm-rte__link{align-items:center;display:flex;flex:1 1 220px;gap:var(--space-4)}.rm-rte__link input{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-primary);flex:1;font:inherit;font-size:var(--font-13);height:28px;padding:0 var(--space-8)}.rm-rte__content{flex:1;min-height:0}.rm-rte__content :deep(.ProseMirror){font-size:var(--font-14);line-height:1.65;min-height:240px;outline:none;overflow-wrap:anywhere;padding:var(--space-16) var(--space-
|
|
821
|
+
.rm-rte{color:var(--text-primary);display:flex;flex-direction:column;font-family:var(--font-sans);min-height:0}.rm-rte:not(.rm-rte--readonly){background:var(--bg-surface);border:1px solid var(--border-soft);border-radius:var(--radius-md)}.rm-rte__toolbar{align-items:center;background:var(--bg-surface);border-bottom:1px solid var(--border-soft);border-radius:var(--radius-md) var(--radius-md) 0 0;display:flex;flex-wrap:wrap;gap:var(--space-2);padding:var(--space-4);position:sticky;top:0;z-index:var(--z-sticky,20)}.rm-rte__sep{background:var(--border-soft);height:20px;margin:0 var(--space-4);width:1px}.rm-rte__style{background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;font:inherit;font-size:var(--font-13);height:28px;padding:0 var(--space-6)}.rm-rte__style:hover{background:var(--bg-hover)}.rm-rte__btn{align-items:center;background:transparent;border:0;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;display:inline-flex;height:28px;justify-content:center;width:28px}.rm-rte__btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.rm-rte__btn.is-active{background:var(--color-accent-soft);color:var(--color-primary)}.rm-rte__btn:disabled{cursor:default;opacity:.4}.rm-rte__btn:focus-visible,.rm-rte__style:focus-visible{box-shadow:var(--shadow-focus);outline:none}.rm-rte__link{align-items:center;display:flex;flex:1 1 220px;gap:var(--space-4)}.rm-rte__link input{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-primary);flex:1;font:inherit;font-size:var(--font-13);height:28px;padding:0 var(--space-8)}.rm-rte__content{flex:1;min-height:0}.rm-rte__content :deep(.ProseMirror){font-size:var(--font-14);line-height:1.65;min-height:240px;outline:none;overflow-wrap:anywhere;padding:var(--space-16) var(--space-20)}.rm-rte--readonly .rm-rte__content :deep(.ProseMirror){min-height:0;padding:0}.rm-rte__content :deep(.ProseMirror>*+*){margin-top:.6em}.rm-rte__content :deep(h1){font-family:var(--font-serif);font-size:var(--font-24);font-weight:var(--weight-bold);line-height:1.25;margin:1.2em 0 0}.rm-rte__content :deep(h2){font-size:var(--font-18);font-weight:var(--weight-semibold);line-height:1.3;margin:1.1em 0 0}.rm-rte__content :deep(h3){font-size:var(--font-16);font-weight:var(--weight-semibold);margin:1em 0 0}.rm-rte__content :deep(.ProseMirror>:first-child){margin-top:0}.rm-rte__content :deep(p){margin:0}.rm-rte__content :deep(ol),.rm-rte__content :deep(ul){margin:0;padding-left:1.4em}.rm-rte__content :deep(a){color:var(--color-primary);text-decoration:underline;text-underline-offset:2px}.rm-rte__content :deep(code){background:var(--bg-surface-3);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.9em;padding:.1em .35em}.rm-rte__content :deep(pre){background:var(--bg-surface-3);border-radius:var(--radius-md);overflow-x:auto;padding:var(--space-12)}.rm-rte__content :deep(pre code){background:none;padding:0}.rm-rte__content :deep(blockquote){background:rgba(var(--brand-rgb),.06);border-left:3px solid var(--color-primary);border-radius:0 var(--radius-md) var(--radius-md) 0;color:var(--text-primary);margin:0;padding:var(--space-10) var(--space-16)}.rm-rte__content :deep(hr){border:0;border-top:1px solid var(--border-default);margin:1.2em 0}.rm-rte__content :deep(mark){border-radius:2px;color:inherit;padding:0 .1em}.rm-rte__content :deep(ul[data-type=taskList]){list-style:none;padding-left:.2em}.rm-rte__content :deep(ul[data-type=taskList] li){align-items:flex-start;display:flex;gap:var(--space-8)}.rm-rte__content :deep(ul[data-type=taskList] li>label){margin-top:.2em}.rm-rte__content :deep(ul[data-type=taskList] li>div){flex:1}.rm-rte__content :deep(ul[data-type=taskList] li[data-checked=true]>div){color:var(--text-muted);text-decoration:line-through}.rm-rte__content :deep(input[type=checkbox]){accent-color:var(--color-primary)}.rm-rte__content :deep(.tableWrapper){overflow-x:auto}.rm-rte__content :deep(table){border-collapse:collapse;table-layout:fixed;width:100%}.rm-rte__content :deep(td),.rm-rte__content :deep(th){border:1px solid var(--border-default);min-width:80px;padding:var(--space-6) var(--space-8);position:relative;vertical-align:top}.rm-rte__content :deep(th){background:var(--bg-surface-2);font-weight:var(--weight-semibold);text-align:left}.rm-rte__content :deep(.selectedCell):after{background:var(--color-accent-soft);content:"";inset:0;opacity:.5;pointer-events:none;position:absolute}.rm-rte__content :deep(p.is-editor-empty:first-child):before{color:var(--text-muted);content:attr(data-placeholder);float:left;height:0;pointer-events:none}.rm-rte__content :deep(.rm-rte-mention),.rm-rte__content :deep(.rm-rte-pagelink){border-radius:var(--radius-sm);cursor:pointer;display:inline-block;font-weight:var(--weight-medium);max-width:min(100%,320px);overflow:hidden;padding:0 .35em;text-overflow:ellipsis;vertical-align:bottom;white-space:nowrap}.rm-rte__content :deep(.rm-rte-mention--user){background:var(--color-accent-soft);color:var(--color-primary)}.rm-rte__content :deep(.rm-rte-mention--resource){background:var(--rm-text-bg-teal);color:var(--rm-text-c-teal)}.rm-rte__content :deep(.rm-rte-pagelink){color:var(--text-primary);text-decoration:underline;text-decoration-color:var(--border-default);text-underline-offset:3px}.rm-rte__content :deep(.rm-rte-pagelink:hover){background:var(--bg-hover)}.rm-rte__content :deep(.ProseMirror-selectednode){box-shadow:var(--shadow-focus)}.rm-rte__layer{background:var(--bg-surface);border:1px solid var(--border-soft);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);color:var(--text-primary);font-family:var(--font-sans);font-size:var(--font-13);padding:var(--space-6);z-index:var(--z-popover,1000)}.rm-rte__tablemenu{align-items:center;display:flex;gap:var(--space-2);padding:var(--space-4)}.rm-rte__menu{max-height:320px;overflow-y:auto;width:290px}.rm-rte__group,.rm-rte__layer-title{color:var(--text-muted);font-size:var(--font-11);font-weight:var(--weight-semibold);letter-spacing:.04em;padding:var(--space-6) var(--space-8) var(--space-2);text-transform:uppercase}.rm-rte__item{align-items:center;background:transparent;border:0;border-radius:var(--radius-sm);color:inherit;cursor:pointer;display:flex;font:inherit;gap:var(--space-8);padding:var(--space-6) var(--space-8);text-align:left;width:100%}.rm-rte__item.is-active{background:var(--bg-hover)}.rm-rte__item-icon{align-items:center;background:var(--bg-surface-2);border:1px solid var(--border-soft);border-radius:var(--radius-sm);color:var(--text-secondary);display:inline-flex;flex:none;height:28px;justify-content:center;width:28px}.rm-rte__item-text{display:flex;flex-direction:column;min-width:0}.rm-rte__item-text>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rm-rte__item-text small{color:var(--text-muted);font-size:var(--font-11)}.rm-rte__empty,.rm-rte__hint{color:var(--text-muted);padding:var(--space-8)}.rm-rte__hint{align-items:flex-start;border-top:1px solid var(--border-soft);display:flex;font-size:var(--font-12);gap:var(--space-6);line-height:1.4;margin:var(--space-4) 0 0}.rm-rte__hint :deep(svg){flex:none;margin-top:1px}.rm-rte__swatches{display:grid;gap:var(--space-4);grid-template-columns:repeat(5,28px);padding:var(--space-4) var(--space-6) var(--space-6)}.rm-rte-swatch{align-items:center;background:var(--bg-surface);border:1px solid var(--border-soft);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;display:inline-flex;font-weight:var(--weight-semibold);height:28px;justify-content:center;width:28px}.rm-rte-swatch:hover{border-color:var(--border-default);box-shadow:var(--shadow-xs)}
|
|
822
822
|
</style>
|