@conduction/nextcloud-vue 2.122.0 → 2.123.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/esm/components/CnAppRoot/CnAppRoot.vue2.js +1 -0
- package/dist/esm/components/CnAppRoot/CnAppRoot.vue2.js.map +1 -1
- package/dist/esm/components/CnAppRoot/CnAppRoot.vue3.js.map +1 -1
- package/dist/esm/components/CnAttentionFlagWidget/CnAttentionFlagWidget.vue.js +1 -1
- package/dist/esm/components/CnAttentionFlagWidget/CnAttentionFlagWidget.vue2.js +18 -4
- package/dist/esm/components/CnAttentionFlagWidget/CnAttentionFlagWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnAttentionFlagWidget/CnAttentionFlagWidget.vue3.js +63 -32
- package/dist/esm/components/CnAttentionFlagWidget/CnAttentionFlagWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnChartWidget/CnChartWidget.vue.js +1 -1
- package/dist/esm/components/CnChartWidget/CnChartWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnChartWidget/CnChartWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js +35 -0
- package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js.map +1 -1
- package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js +11 -5
- package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js.map +1 -1
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue.js +1 -1
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue2.js +13 -0
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue2.js.map +1 -1
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue3.js +37 -5
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue3.js.map +1 -1
- package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue.js +1 -1
- package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue2.js +40 -0
- package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue2.js.map +1 -1
- package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue3.js +71 -65
- package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue3.js.map +1 -1
- package/dist/esm/components/CnFlowDetail/CnFlowDetail.vue.js +1 -1
- package/dist/esm/components/CnFlowDetail/CnFlowDetail.vue2.js +20 -0
- package/dist/esm/components/CnFlowDetail/CnFlowDetail.vue2.js.map +1 -1
- package/dist/esm/components/CnFlowDetail/CnFlowDetail.vue3.js +2 -1
- package/dist/esm/components/CnFlowDetail/CnFlowDetail.vue3.js.map +1 -1
- package/dist/esm/components/CnFlowsPage/CnFlowBoard.vue.js +1 -1
- package/dist/esm/components/CnFlowsPage/CnFlowBoard.vue2.js +2 -0
- package/dist/esm/components/CnFlowsPage/CnFlowBoard.vue2.js.map +1 -1
- package/dist/esm/components/CnFlowsPage/CnFlowBoard.vue3.js +49 -44
- package/dist/esm/components/CnFlowsPage/CnFlowBoard.vue3.js.map +1 -1
- package/dist/esm/components/CnFlowsPage/CnFlowEditorPage.vue2.js +10 -0
- package/dist/esm/components/CnFlowsPage/CnFlowEditorPage.vue2.js.map +1 -1
- package/dist/esm/components/CnFlowsPage/CnFlowEditorPage.vue3.js +2 -1
- package/dist/esm/components/CnFlowsPage/CnFlowEditorPage.vue3.js.map +1 -1
- package/dist/esm/components/CnGraphCanvas/CnGraphCanvas.vue2.js +31 -0
- package/dist/esm/components/CnGraphCanvas/CnGraphCanvas.vue2.js.map +1 -1
- package/dist/esm/components/CnGraphCanvas/CnGraphCanvas.vue3.js +4 -3
- package/dist/esm/components/CnGraphCanvas/CnGraphCanvas.vue3.js.map +1 -1
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js +34 -2
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js.map +1 -1
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js.map +1 -1
- package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue.js +1 -1
- package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue2.js +2 -0
- package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue2.js.map +1 -1
- package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue3.js +2 -1
- package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue3.js.map +1 -1
- package/dist/esm/components/CnSectionsWidget/CnSectionsWidget.vue.js +1 -1
- package/dist/esm/components/CnSectionsWidget/CnSectionsWidget.vue2.js +31 -1
- package/dist/esm/components/CnSectionsWidget/CnSectionsWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnSectionsWidget/CnSectionsWidget.vue3.js +14 -4
- package/dist/esm/components/CnSectionsWidget/CnSectionsWidget.vue3.js.map +1 -1
- package/dist/esm/composables/flowGraphLayout.js +36 -7
- package/dist/esm/composables/flowGraphLayout.js.map +1 -1
- package/dist/esm/composables/useFlowStore.js +7 -3
- package/dist/esm/composables/useFlowStore.js.map +1 -1
- package/dist/esm/l10n/en.json.js +3 -1
- package/dist/esm/l10n/en.json.js.map +1 -1
- package/dist/esm/l10n/nl.json.js +3 -1
- package/dist/esm/l10n/nl.json.js.map +1 -1
- package/dist/esm/library-style.js +1 -1
- package/dist/esm/nextcloud-vue.css +508 -303
- package/dist/esm/utils/manifestTranslate.js +12 -3
- package/dist/esm/utils/manifestTranslate.js.map +1 -1
- package/dist/esm/utils/routeFilters.js +3 -3
- package/dist/esm/utils/routeFilters.js.map +1 -1
- package/dist/nextcloud-vue.cjs.js +1217 -847
- package/dist/nextcloud-vue.cjs.js.map +2 -2
- package/dist/nextcloud-vue.css +508 -303
- package/l10n/en.json +3 -1
- package/l10n/nl.json +3 -1
- package/package.json +1 -1
- package/src/components/CnAppRoot/CnAppRoot.vue +1 -0
- package/src/components/CnAttentionFlagWidget/CnAttentionFlagWidget.vue +50 -5
- package/src/components/CnChartWidget/CnChartWidget.vue +10 -8
- package/src/components/CnDetailPage/CnDetailPage.md +10 -0
- package/src/components/CnDetailPage/CnDetailPage.vue +42 -1
- package/src/components/CnDetailWidgetHost/CnDetailWidgetHost.vue +39 -0
- package/src/components/CnFilesBrowser/CnFilesBrowser.vue +95 -37
- package/src/components/CnFlowDetail/CnFlowDetail.vue +21 -0
- package/src/components/CnFlowsPage/CnFlowBoard.vue +35 -18
- package/src/components/CnFlowsPage/CnFlowEditorPage.vue +11 -0
- package/src/components/CnGraphCanvas/CnGraphCanvas.vue +34 -2
- package/src/components/CnIndexPage/CnIndexPage.vue +34 -2
- package/src/components/CnObjectSidebar/CnFilesTab.vue +3 -0
- package/src/components/CnSectionsWidget/CnSectionsWidget.vue +53 -2
- package/src/composables/flowGraphLayout.js +35 -6
- package/src/composables/useFlowStore.js +7 -3
- package/src/css/detail-page.css +6 -0
- package/src/css/look-board-detail.css +26 -6
- package/src/css/look-board-index.css +43 -0
- package/src/css/look-board.css +89 -3
- package/src/utils/manifestTranslate.js +12 -3
- package/src/utils/routeFilters.js +3 -3
package/src/css/look-board.css
CHANGED
|
@@ -187,8 +187,8 @@
|
|
|
187
187
|
/* ---- Dashboard switch row --------------------------------------------- */
|
|
188
188
|
/* The switch row under a board dashboard's header (DqMijnWerk, DqMijnTeam).
|
|
189
189
|
The link pills take the deep primary ink of the boards' primary pills: the
|
|
190
|
-
light primary text
|
|
191
|
-
|
|
190
|
+
light primary text, the ink a theme pairs with the light primary ground
|
|
191
|
+
(DqMijnWerk #234a78 on #eaf0f7, 8:1). A theme that forces the link ink onto
|
|
192
192
|
every `a` reads it from --nldesign-color-on-surface, so the pill hands it
|
|
193
193
|
its own. The view switch is the board's segmented control: 14px labels, the
|
|
194
194
|
others in the soft ink, the chosen one raised on white without an edge;
|
|
@@ -196,7 +196,7 @@
|
|
|
196
196
|
@spec openspec/changes/board-dashboard-switch-row/specs/board-dashboard-switch-row/spec.md#requirement-the-link-pills-take-the-deep-primary-ink
|
|
197
197
|
@spec openspec/changes/board-dashboard-switch-row/specs/board-dashboard-switch-row/spec.md#requirement-the-view-switch-is-the-boards-segmented-control */
|
|
198
198
|
.cn-look-board .cn-dashboard-page__switch-row .cn-dashboard-page__view-link:not(.cn-look-nextcloud *) {
|
|
199
|
-
--cn-view-link-ink:
|
|
199
|
+
--cn-view-link-ink: var(--color-primary-element-light-text);
|
|
200
200
|
--nldesign-color-on-surface: var(--cn-view-link-ink);
|
|
201
201
|
color: var(--cn-view-link-ink);
|
|
202
202
|
}
|
|
@@ -221,6 +221,25 @@
|
|
|
221
221
|
}
|
|
222
222
|
}
|
|
223
223
|
|
|
224
|
+
/* ---- Period group ------------------------------------------------------- */
|
|
225
|
+
/* The boards' compact segmented group (the period switch on DqDoorlooptijd
|
|
226
|
+
and DqTermijnen, Gemiddeld / Mediaan on DqProcesanalyse) pads a label 14px
|
|
227
|
+
on each side and draws the options not chosen in the soft ink; the chosen
|
|
228
|
+
one is raised on white in the main ink. An icon-only option stays square.
|
|
229
|
+
@spec openspec/changes/board-period-group-soft-ink/specs/board-period-group-soft-ink/spec.md#requirement-a-board-period-group-draws-the-options-not-chosen-in-the-soft-ink */
|
|
230
|
+
.cn-look-board .cn-segmented-control.cn-segmented-control--compact .cn-segmented-control__option:not(.cn-look-nextcloud *) {
|
|
231
|
+
padding: 0 14px;
|
|
232
|
+
color: var(--cn-board-text-soft);
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
.cn-look-board .cn-segmented-control.cn-segmented-control--compact .cn-segmented-control__option--checked:not(.cn-look-nextcloud *) {
|
|
236
|
+
color: var(--color-main-text);
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
.cn-look-board .cn-segmented-control.cn-segmented-control--compact .cn-segmented-control__option--icon-only:not(.cn-look-nextcloud *) {
|
|
240
|
+
padding: 0;
|
|
241
|
+
}
|
|
242
|
+
|
|
224
243
|
/* ---- Button weight ------------------------------------------------------ */
|
|
225
244
|
/* The boards draw a labelled button at 600 (DqZaken "Downloaden", DqZaak's
|
|
226
245
|
header, dialog footers, toolbar and row actions). An NcButton reads its
|
|
@@ -1637,6 +1656,11 @@ body:has(.cn-look-board):not(:has(.cn-look-nextcloud)) .v-popper__popper.action-
|
|
|
1637
1656
|
padding: 0 var(--cn-board-dashboard-card-inset) 10px;
|
|
1638
1657
|
}
|
|
1639
1658
|
|
|
1659
|
+
/* DqMijnWerk "Mijn archiefbeoordelingen": its rows and its empty line. */
|
|
1660
|
+
.cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-widget-wrapper:not(.cn-widget-wrapper--borderless) .cn-decision-list {
|
|
1661
|
+
padding: 0 var(--cn-board-dashboard-card-inset) 20px;
|
|
1662
|
+
}
|
|
1663
|
+
|
|
1640
1664
|
.cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-widget-wrapper:not(.cn-widget-wrapper--borderless) .cn-stacked-bar,
|
|
1641
1665
|
.cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-widget-wrapper:not(.cn-widget-wrapper--borderless) .cn-week-strip {
|
|
1642
1666
|
box-sizing: border-box;
|
|
@@ -1682,6 +1706,29 @@ body:has(.cn-look-board):not(:has(.cn-look-nextcloud)) .v-popper__popper.action-
|
|
|
1682
1706
|
padding-inline-end: var(--cn-board-dashboard-card-inset);
|
|
1683
1707
|
}
|
|
1684
1708
|
|
|
1709
|
+
/* ---- A card of cards (DqDoorlooptijd "Naleving") ------------------------- */
|
|
1710
|
+
/* A sections widget laid out in columns on a dashboard card keeps the card's
|
|
1711
|
+
side inset and 20px below. Each section is a small card: a hairline edge,
|
|
1712
|
+
a 10px corner, 14px 16px of padding and its heading at 15px 700, 10px above
|
|
1713
|
+
the content.
|
|
1714
|
+
@spec openspec/changes/sections-card-grid/specs/sections-card-grid/spec.md#requirement-a-board-card-of-cards-draws-the-boards-small-cards */
|
|
1715
|
+
.cn-look-board .cn-dashboard-page:not(.cn-look-nextcloud *) .cn-widget-wrapper:not(.cn-widget-wrapper--borderless) .cn-sections-widget--grid {
|
|
1716
|
+
padding: 0 var(--cn-board-dashboard-card-inset) 20px;
|
|
1717
|
+
}
|
|
1718
|
+
|
|
1719
|
+
.cn-look-board .cn-sections-widget--grid.cn-sections-widget--cards .cn-sections-widget__section:not(.cn-look-nextcloud *) {
|
|
1720
|
+
padding: 14px 16px;
|
|
1721
|
+
border: 1px solid var(--cn-board-hairline);
|
|
1722
|
+
border-radius: 10px;
|
|
1723
|
+
}
|
|
1724
|
+
|
|
1725
|
+
.cn-look-board .cn-sections-widget--grid.cn-sections-widget--cards .cn-sections-widget__heading:not(.cn-look-nextcloud *) {
|
|
1726
|
+
margin: 0 0 10px;
|
|
1727
|
+
font-size: 15px;
|
|
1728
|
+
font-weight: 700;
|
|
1729
|
+
line-height: normal;
|
|
1730
|
+
}
|
|
1731
|
+
|
|
1685
1732
|
/* ---- Week strip (DqMijnWerk "Termijnen deze week") ---------------------- */
|
|
1686
1733
|
/* The days wrap inside the card instead of scrolling sideways: a row holds
|
|
1687
1734
|
as many days of at least 120px as the card fits, and the rest go to the
|
|
@@ -1699,6 +1746,45 @@ body:has(.cn-look-board):not(:has(.cn-look-nextcloud)) .v-popper__popper.action-
|
|
|
1699
1746
|
|
|
1700
1747
|
.cn-look-board .cn-week-strip:not(.cn-look-nextcloud *) .cn-week-strip__head {
|
|
1701
1748
|
flex-wrap: wrap;
|
|
1749
|
+
font-size: 13px;
|
|
1750
|
+
font-weight: 700;
|
|
1751
|
+
color: var(--cn-board-text-soft);
|
|
1752
|
+
}
|
|
1753
|
+
|
|
1754
|
+
/* A board day is a tinted box without an edge, at least 132px high so a week
|
|
1755
|
+
of empty days still reads as a week (DqMijnWerk "Termijnen deze week"): the
|
|
1756
|
+
workspace grey, and today the light primary ground in its own ink. Forced
|
|
1757
|
+
colours drop the grounds, so the box keeps an edge there. */
|
|
1758
|
+
.cn-look-board .cn-week-strip:not(.cn-look-nextcloud *) .cn-week-strip__day {
|
|
1759
|
+
min-height: 132px;
|
|
1760
|
+
padding: 12px;
|
|
1761
|
+
border-color: transparent;
|
|
1762
|
+
border-radius: 10px;
|
|
1763
|
+
background: var(--nldesign-component-content-surface-background-color, var(--color-background-hover));
|
|
1764
|
+
}
|
|
1765
|
+
|
|
1766
|
+
.cn-look-board .cn-week-strip:not(.cn-look-nextcloud *) .cn-week-strip__day--today {
|
|
1767
|
+
background: var(--color-primary-element-light);
|
|
1768
|
+
}
|
|
1769
|
+
|
|
1770
|
+
.cn-look-board .cn-week-strip:not(.cn-look-nextcloud *) .cn-week-strip__day--today .cn-week-strip__head {
|
|
1771
|
+
color: var(--color-primary-element-light-text);
|
|
1772
|
+
}
|
|
1773
|
+
|
|
1774
|
+
.cn-look-board .cn-week-strip:not(.cn-look-nextcloud *) .cn-week-strip__today {
|
|
1775
|
+
border-radius: 10px;
|
|
1776
|
+
font-size: 11px;
|
|
1777
|
+
line-height: 13px;
|
|
1778
|
+
}
|
|
1779
|
+
|
|
1780
|
+
.cn-look-board .cn-week-strip:not(.cn-look-nextcloud *) .cn-week-strip__empty {
|
|
1781
|
+
font-size: 13px;
|
|
1782
|
+
}
|
|
1783
|
+
|
|
1784
|
+
@media (forced-colors: active) {
|
|
1785
|
+
.cn-look-board .cn-week-strip:not(.cn-look-nextcloud *) .cn-week-strip__day {
|
|
1786
|
+
border-color: CanvasText;
|
|
1787
|
+
}
|
|
1702
1788
|
}
|
|
1703
1789
|
|
|
1704
1790
|
/* ---- A card of boxed stat tiles (DcRapportages "Vergaderingen en efficiëntie") -- */
|
|
@@ -12,7 +12,9 @@
|
|
|
12
12
|
* for the language, then for its base (`en_GB` falls back to `en`);
|
|
13
13
|
* 2. otherwise the host's `translate(text, vars)`, whose answer is the text
|
|
14
14
|
* itself when it has no translation;
|
|
15
|
-
* 3. the
|
|
15
|
+
* 3. the library's own catalog (`library`), for the strings a library
|
|
16
|
+
* component asks through `cnTranslate` and the app never translates;
|
|
17
|
+
* 4. the text as written.
|
|
16
18
|
*
|
|
17
19
|
* The fallback is per label, never per page. The manifest is read through a
|
|
18
20
|
* getter on every call, so an edit to the working copy shows at once.
|
|
@@ -52,9 +54,10 @@ function fill(text, vars) {
|
|
|
52
54
|
* @param {() => (object|null|undefined)} options.getManifest The live manifest (the editor's working copy while editing).
|
|
53
55
|
* @param {() => string} options.getLanguage The language to show.
|
|
54
56
|
* @param {(text: string, vars?: object) => string} [options.translate] The host's translate.
|
|
57
|
+
* @param {(text: string, vars?: object) => string} [options.library] The library's translate, asked when the host has no translation.
|
|
55
58
|
* @return {Function} `(text, vars) => string`, with `lookup`, `fellBack` and `sourceLanguage` attached.
|
|
56
59
|
*/
|
|
57
|
-
export function createManifestTranslate({ getManifest, getLanguage, translate }) {
|
|
60
|
+
export function createManifestTranslate({ getManifest, getLanguage, translate, library }) {
|
|
58
61
|
const host = typeof translate === 'function' ? translate : (text) => text
|
|
59
62
|
|
|
60
63
|
const i18n = () => {
|
|
@@ -79,7 +82,13 @@ export function createManifestTranslate({ getManifest, getLanguage, translate })
|
|
|
79
82
|
}
|
|
80
83
|
}
|
|
81
84
|
const answer = host(text, vars)
|
|
82
|
-
|
|
85
|
+
let shown = typeof answer === 'string' && answer !== '' ? answer : fill(text, vars)
|
|
86
|
+
if (shown === fill(text, vars) && typeof library === 'function') {
|
|
87
|
+
const own = library(text, vars)
|
|
88
|
+
if (typeof own === 'string' && own !== '') {
|
|
89
|
+
shown = own
|
|
90
|
+
}
|
|
91
|
+
}
|
|
83
92
|
return { text: shown, fellBack: !!block && !inSource && shown === fill(text, vars) }
|
|
84
93
|
}
|
|
85
94
|
|
|
@@ -123,9 +123,9 @@ export function resolveQueryFilters(query, ctx) {
|
|
|
123
123
|
}
|
|
124
124
|
const out = {}
|
|
125
125
|
for (const [k, v] of Object.entries(query)) {
|
|
126
|
-
// `contentSearch` is the index page's own "search inside files" switch
|
|
127
|
-
//
|
|
128
|
-
if (k.startsWith('_') || k === 'contentSearch') {
|
|
126
|
+
// `contentSearch` is the index page's own "search inside files" switch
|
|
127
|
+
// and `savedView` names the applied saved view: neither filters the records.
|
|
128
|
+
if (k.startsWith('_') || k === 'contentSearch' || k === 'savedView') {
|
|
129
129
|
continue
|
|
130
130
|
}
|
|
131
131
|
if (v === undefined || v === null || v === '') {
|