@conduction/nextcloud-vue 2.108.0 → 2.110.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.
Files changed (161) hide show
  1. package/dist/esm/components/CnActionDialog/CnActionDialog.vue.js +1 -1
  2. package/dist/esm/components/CnActionDialog/CnActionDialog.vue2.js +115 -12
  3. package/dist/esm/components/CnActionDialog/CnActionDialog.vue2.js.map +1 -1
  4. package/dist/esm/components/CnActionDialog/CnActionDialog.vue3.js +36 -9
  5. package/dist/esm/components/CnActionDialog/CnActionDialog.vue3.js.map +1 -1
  6. package/dist/esm/components/CnAddressSearch/CnAddressSearch.vue.js +10 -0
  7. package/dist/esm/components/CnAddressSearch/CnAddressSearch.vue.js.map +1 -0
  8. package/dist/esm/components/CnAddressSearch/CnAddressSearch.vue2.js +305 -0
  9. package/dist/esm/components/CnAddressSearch/CnAddressSearch.vue2.js.map +1 -0
  10. package/dist/esm/components/CnAddressSearch/CnAddressSearch.vue3.js +38 -0
  11. package/dist/esm/components/CnAddressSearch/CnAddressSearch.vue3.js.map +1 -0
  12. package/dist/esm/components/CnAssignDialog/CnAssignDialog.vue.js +10 -0
  13. package/dist/esm/components/CnAssignDialog/CnAssignDialog.vue.js.map +1 -0
  14. package/dist/esm/components/CnAssignDialog/CnAssignDialog.vue2.js +398 -0
  15. package/dist/esm/components/CnAssignDialog/CnAssignDialog.vue2.js.map +1 -0
  16. package/dist/esm/components/CnAssignDialog/CnAssignDialog.vue3.js +155 -0
  17. package/dist/esm/components/CnAssignDialog/CnAssignDialog.vue3.js.map +1 -0
  18. package/dist/esm/components/CnDecisionListWidget/CnDecisionListWidget.vue.js +9 -0
  19. package/dist/esm/components/CnDecisionListWidget/CnDecisionListWidget.vue.js.map +1 -0
  20. package/dist/esm/components/CnDecisionListWidget/CnDecisionListWidget.vue2.js +281 -0
  21. package/dist/esm/components/CnDecisionListWidget/CnDecisionListWidget.vue2.js.map +1 -0
  22. package/dist/esm/components/CnDecisionListWidget/CnDecisionListWidget.vue3.js +137 -0
  23. package/dist/esm/components/CnDecisionListWidget/CnDecisionListWidget.vue3.js.map +1 -0
  24. package/dist/esm/components/CnDuplicateWarning/CnDuplicateWarning.vue.js +9 -0
  25. package/dist/esm/components/CnDuplicateWarning/CnDuplicateWarning.vue.js.map +1 -0
  26. package/dist/esm/components/CnDuplicateWarning/CnDuplicateWarning.vue2.js +225 -0
  27. package/dist/esm/components/CnDuplicateWarning/CnDuplicateWarning.vue2.js.map +1 -0
  28. package/dist/esm/components/CnDuplicateWarning/CnDuplicateWarning.vue3.js +110 -0
  29. package/dist/esm/components/CnDuplicateWarning/CnDuplicateWarning.vue3.js.map +1 -0
  30. package/dist/esm/components/CnFormDialog/CnFormDialog.vue.js +1 -1
  31. package/dist/esm/components/CnFormDialog/CnFormDialog.vue2.js +19 -3
  32. package/dist/esm/components/CnFormDialog/CnFormDialog.vue2.js.map +1 -1
  33. package/dist/esm/components/CnFormDialog/CnFormDialog.vue3.js.map +1 -1
  34. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js +30 -0
  35. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js.map +1 -1
  36. package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js +513 -481
  37. package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js.map +1 -1
  38. package/dist/esm/components/CnNcDashboardList/CnNcDashboardList.vue.js +9 -0
  39. package/dist/esm/components/CnNcDashboardList/CnNcDashboardList.vue.js.map +1 -0
  40. package/dist/esm/components/CnNcDashboardList/CnNcDashboardList.vue2.js +181 -0
  41. package/dist/esm/components/CnNcDashboardList/CnNcDashboardList.vue2.js.map +1 -0
  42. package/dist/esm/components/CnNcDashboardList/CnNcDashboardList.vue3.js +50 -0
  43. package/dist/esm/components/CnNcDashboardList/CnNcDashboardList.vue3.js.map +1 -0
  44. package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue.js +1 -1
  45. package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue2.js +102 -1
  46. package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue2.js.map +1 -1
  47. package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue3.js +6 -6
  48. package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue3.js.map +1 -1
  49. package/dist/esm/components/CnPlanWidget/CnPlanWidget.vue.js +9 -0
  50. package/dist/esm/components/CnPlanWidget/CnPlanWidget.vue.js.map +1 -0
  51. package/dist/esm/components/CnPlanWidget/CnPlanWidget.vue2.js +190 -0
  52. package/dist/esm/components/CnPlanWidget/CnPlanWidget.vue2.js.map +1 -0
  53. package/dist/esm/components/CnPlanWidget/CnPlanWidget.vue3.js +91 -0
  54. package/dist/esm/components/CnPlanWidget/CnPlanWidget.vue3.js.map +1 -0
  55. package/dist/esm/components/CnPlanWidget/CnPlanWidgetRow.vue.js +9 -0
  56. package/dist/esm/components/CnPlanWidget/CnPlanWidgetRow.vue.js.map +1 -0
  57. package/dist/esm/components/CnPlanWidget/CnPlanWidgetRow.vue2.js +64 -0
  58. package/dist/esm/components/CnPlanWidget/CnPlanWidgetRow.vue2.js.map +1 -0
  59. package/dist/esm/components/CnPlanWidget/CnPlanWidgetRow.vue3.js +49 -0
  60. package/dist/esm/components/CnPlanWidget/CnPlanWidgetRow.vue3.js.map +1 -0
  61. package/dist/esm/components/CnRedactionEditor/CnRedactionEditor.vue.js +9 -0
  62. package/dist/esm/components/CnRedactionEditor/CnRedactionEditor.vue.js.map +1 -0
  63. package/dist/esm/components/CnRedactionEditor/CnRedactionEditor.vue2.js +382 -0
  64. package/dist/esm/components/CnRedactionEditor/CnRedactionEditor.vue2.js.map +1 -0
  65. package/dist/esm/components/CnRedactionEditor/CnRedactionEditor.vue3.js +285 -0
  66. package/dist/esm/components/CnRedactionEditor/CnRedactionEditor.vue3.js.map +1 -0
  67. package/dist/esm/components/CnRetentionWidget/CnRetentionWidget.vue.js +9 -0
  68. package/dist/esm/components/CnRetentionWidget/CnRetentionWidget.vue.js.map +1 -0
  69. package/dist/esm/components/CnRetentionWidget/CnRetentionWidget.vue2.js +277 -0
  70. package/dist/esm/components/CnRetentionWidget/CnRetentionWidget.vue2.js.map +1 -0
  71. package/dist/esm/components/CnRetentionWidget/CnRetentionWidget.vue3.js +183 -0
  72. package/dist/esm/components/CnRetentionWidget/CnRetentionWidget.vue3.js.map +1 -0
  73. package/dist/esm/components/CnWidgetGrid/builtInWidgets.js +16 -14
  74. package/dist/esm/components/CnWidgetGrid/builtInWidgets.js.map +1 -1
  75. package/dist/esm/components/CnWidgetGrid/registerDashboardWidgets.js +53 -22
  76. package/dist/esm/components/CnWidgetGrid/registerDashboardWidgets.js.map +1 -1
  77. package/dist/esm/components/CnWorkQueue/CnWorkQueue.vue.js +9 -0
  78. package/dist/esm/components/CnWorkQueue/CnWorkQueue.vue.js.map +1 -0
  79. package/dist/esm/components/CnWorkQueue/CnWorkQueue.vue2.js +253 -0
  80. package/dist/esm/components/CnWorkQueue/CnWorkQueue.vue2.js.map +1 -0
  81. package/dist/esm/components/CnWorkQueue/CnWorkQueue.vue3.js +197 -0
  82. package/dist/esm/components/CnWorkQueue/CnWorkQueue.vue3.js.map +1 -0
  83. package/dist/esm/index.js +12 -0
  84. package/dist/esm/index.js.map +1 -1
  85. package/dist/esm/l10n/en.json.js +106 -1
  86. package/dist/esm/l10n/en.json.js.map +1 -1
  87. package/dist/esm/l10n/nl.json.js +105 -1
  88. package/dist/esm/l10n/nl.json.js.map +1 -1
  89. package/dist/esm/library-style.js +1 -1
  90. package/dist/esm/nextcloud-vue.css +510 -76
  91. package/dist/esm/utils/actionsDispatcher.js +11 -3
  92. package/dist/esm/utils/actionsDispatcher.js.map +1 -1
  93. package/dist/esm/utils/builtInModals.js +3 -1
  94. package/dist/esm/utils/builtInModals.js.map +1 -1
  95. package/dist/esm/utils/duplicateWarning.js +62 -0
  96. package/dist/esm/utils/duplicateWarning.js.map +1 -0
  97. package/dist/esm/utils/errors.js +4 -0
  98. package/dist/esm/utils/errors.js.map +1 -1
  99. package/dist/esm/utils/libraryWidgetKeys.js +4 -0
  100. package/dist/esm/utils/libraryWidgetKeys.js.map +1 -1
  101. package/dist/esm/utils/openDuplicateWarning.js +39 -0
  102. package/dist/esm/utils/openDuplicateWarning.js.map +1 -0
  103. package/dist/esm/utils/optionsFrom.js +69 -2
  104. package/dist/esm/utils/optionsFrom.js.map +1 -1
  105. package/dist/esm/utils/planTree.js +57 -0
  106. package/dist/esm/utils/planTree.js.map +1 -0
  107. package/dist/esm/utils/redactionSegments.js +53 -0
  108. package/dist/esm/utils/redactionSegments.js.map +1 -0
  109. package/dist/esm/utils/registerNcDashboardWidgets.js +61 -0
  110. package/dist/esm/utils/registerNcDashboardWidgets.js.map +1 -0
  111. package/dist/esm/utils/searchRefusal.js +62 -0
  112. package/dist/esm/utils/searchRefusal.js.map +1 -0
  113. package/dist/esm/utils/validateManifestV2.compiled.js +3 -3
  114. package/dist/esm/utils/validateManifestV2.compiled.js.map +1 -1
  115. package/dist/nextcloud-vue.cjs.js +17560 -12844
  116. package/dist/nextcloud-vue.cjs.js.map +2 -2
  117. package/dist/nextcloud-vue.css +510 -76
  118. package/l10n/en.json +106 -1
  119. package/l10n/nl.json +105 -1
  120. package/package.json +1 -1
  121. package/src/components/CnActionDialog/CnActionDialog.vue +134 -13
  122. package/src/components/CnAddressSearch/CnAddressSearch.vue +343 -0
  123. package/src/components/CnAddressSearch/index.js +12 -0
  124. package/src/components/CnAssignDialog/CnAssignDialog.vue +525 -0
  125. package/src/components/CnAssignDialog/index.js +12 -0
  126. package/src/components/CnDecisionListWidget/CnDecisionListWidget.vue +388 -0
  127. package/src/components/CnDecisionListWidget/index.js +12 -0
  128. package/src/components/CnDuplicateWarning/CnDuplicateWarning.vue +318 -0
  129. package/src/components/CnDuplicateWarning/index.js +12 -0
  130. package/src/components/CnFormDialog/CnFormDialog.vue +19 -3
  131. package/src/components/CnIndexPage/CnIndexPage.vue +52 -0
  132. package/src/components/CnNcDashboardList/CnNcDashboardList.vue +218 -0
  133. package/src/components/CnNcDashboardList/index.js +12 -0
  134. package/src/components/CnObjectListWidget/CnObjectListWidget.vue +107 -6
  135. package/src/components/CnPlanWidget/CnPlanWidget.vue +246 -0
  136. package/src/components/CnPlanWidget/CnPlanWidgetRow.vue +117 -0
  137. package/src/components/CnPlanWidget/index.js +12 -0
  138. package/src/components/CnRedactionEditor/CnRedactionEditor.vue +655 -0
  139. package/src/components/CnRedactionEditor/index.js +13 -0
  140. package/src/components/CnRetentionWidget/CnRetentionWidget.vue +413 -0
  141. package/src/components/CnRetentionWidget/index.js +12 -0
  142. package/src/components/CnWidgetGrid/builtInWidgets.js +2 -0
  143. package/src/components/CnWidgetGrid/registerDashboardWidgets.js +31 -0
  144. package/src/components/CnWorkQueue/CnWorkQueue.vue +463 -0
  145. package/src/components/CnWorkQueue/index.js +12 -0
  146. package/src/components/index.js +9 -0
  147. package/src/css/index-page.css +24 -0
  148. package/src/index.js +12 -0
  149. package/src/schemas/app-manifest-v2.schema.json +119 -3
  150. package/src/utils/actionsDispatcher.js +10 -2
  151. package/src/utils/builtInModals.js +3 -1
  152. package/src/utils/duplicateWarning.js +59 -0
  153. package/src/utils/errors.js +4 -0
  154. package/src/utils/libraryWidgetKeys.js +4 -0
  155. package/src/utils/openDuplicateWarning.js +35 -0
  156. package/src/utils/optionsFrom.js +68 -1
  157. package/src/utils/planTree.js +54 -0
  158. package/src/utils/redactionSegments.js +50 -0
  159. package/src/utils/registerNcDashboardWidgets.js +57 -0
  160. package/src/utils/searchRefusal.js +59 -0
  161. package/src/utils/validateManifestV2.compiled.js +3 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CnWorkQueue.vue3.js","sources":["../../../../src/components/CnWorkQueue/CnWorkQueue.vue?vue&type=template&id=d5bc0a42&lang.js"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2026 Conduction B.V.\n - SPDX-License-Identifier: EUPL-1.2\n-->\n<template>\n\t<div class=\"cn-work-queue\" data-testid=\"cn-work-queue\">\n\t\t<div v-if=\"title || $slots.actions\" class=\"cn-work-queue__head\">\n\t\t\t<h2 v-if=\"title\" class=\"cn-work-queue__title\">\n\t\t\t\t{{ title }}\n\t\t\t</h2>\n\t\t\t<div class=\"cn-work-queue__actions\">\n\t\t\t\t<!-- @slot Buttons beside the title (\"Plan an item\"). -->\n\t\t\t\t<slot name=\"actions\" />\n\t\t\t</div>\n\t\t</div>\n\n\t\t<NcNoteCard v-for=\"source in unavailable\"\n\t\t\t:key=\"source.source\"\n\t\t\ttype=\"warning\"\n\t\t\t:data-testid=\"`cn-work-queue-unavailable-${source.source}`\">\n\t\t\t{{ t('nextcloud-vue', '{source} could not be read, so this list is incomplete.', { source: source.label || source.source }) }}\n\t\t</NcNoteCard>\n\n\t\t<NcLoadingIcon v-if=\"loading\" :size=\"32\" />\n\t\t<NcEmptyContent v-else-if=\"error\"\n\t\t\t:name=\"t('nextcloud-vue', 'This queue could not be read')\"\n\t\t\t:description=\"error\"\n\t\t\tdata-testid=\"cn-work-queue-error\">\n\t\t\t<template #action>\n\t\t\t\t<NcButton @click=\"load\">\n\t\t\t\t\t{{ t('nextcloud-vue', 'Try again') }}\n\t\t\t\t</NcButton>\n\t\t\t</template>\n\t\t</NcEmptyContent>\n\t\t<template v-else>\n\t\t\t<p v-if=\"shownGroups.length === 0\" class=\"cn-work-queue__muted\" data-testid=\"cn-work-queue-empty\">\n\t\t\t\t{{ text(content.emptyText) || t('nextcloud-vue', 'Nothing is waiting on you.') }}\n\t\t\t</p>\n\t\t\t<section v-for=\"group in shownGroups\"\n\t\t\t\t:key=\"group.key\"\n\t\t\t\tclass=\"cn-work-queue__group\"\n\t\t\t\t:data-testid=\"`cn-work-queue-group-${group.key}`\">\n\t\t\t\t<div class=\"cn-work-queue__group-head\">\n\t\t\t\t\t<h3 class=\"cn-work-queue__group-title\">\n\t\t\t\t\t\t{{ group.label }}\n\t\t\t\t\t\t<span class=\"cn-work-queue__count\">{{ group.items.length }}</span>\n\t\t\t\t\t</h3>\n\t\t\t\t\t<NcButton v-if=\"content.hide\"\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t:aria-label=\"t('nextcloud-vue', 'Hide this group until tomorrow')\"\n\t\t\t\t\t\t:data-testid=\"`cn-work-queue-hide-${group.key}`\"\n\t\t\t\t\t\t@click=\"setHidden(group.key, true)\">\n\t\t\t\t\t\t{{ t('nextcloud-vue', 'Hide until tomorrow') }}\n\t\t\t\t\t</NcButton>\n\t\t\t\t</div>\n\t\t\t\t<p v-if=\"group.closesWhen\" class=\"cn-work-queue__muted\">\n\t\t\t\t\t{{ group.closesWhen }}\n\t\t\t\t</p>\n\t\t\t\t<ul class=\"cn-work-queue__items\">\n\t\t\t\t\t<li v-for=\"item in group.items\"\n\t\t\t\t\t\t:key=\"item.id\"\n\t\t\t\t\t\tclass=\"cn-work-queue__item\"\n\t\t\t\t\t\t:class=\"{ 'cn-work-queue__item--late': item.deadlineTier === 'overdue' }\"\n\t\t\t\t\t\t:data-testid=\"`cn-work-queue-item-${item.id}`\">\n\t\t\t\t\t\t<span class=\"cn-work-queue__avatar\" aria-hidden=\"true\">{{ initials(item.title) }}</span>\n\t\t\t\t\t\t<span class=\"cn-work-queue__body\">\n\t\t\t\t\t\t\t<a :href=\"hrefOf(item) || '#'\" class=\"cn-work-queue__link\" @click=\"onOpen(item, $event)\">{{ item.title }}</a>\n\t\t\t\t\t\t\t<span v-if=\"item.covered || waitingText(item)\" class=\"cn-work-queue__sub\">\n\t\t\t\t\t\t\t\t<span v-if=\"item.covered\">{{ t('nextcloud-vue', 'Covering for {person}', { person: String(item.coveredFor || '') }) }}</span>\n\t\t\t\t\t\t\t\t<span v-if=\"waitingText(item)\" :data-testid=\"`cn-work-queue-waiting-${item.id}`\">{{ waitingText(item) }}</span>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<span v-if=\"item.dueAt\" class=\"cn-work-queue__muted\">{{ item.dueAt }}</span>\n\t\t\t\t\t</li>\n\t\t\t\t</ul>\n\t\t\t</section>\n\t\t</template>\n\n\t\t<section v-if=\"content.hide && hidden.length\" class=\"cn-work-queue__group\" data-testid=\"cn-work-queue-hidden\">\n\t\t\t<h3 class=\"cn-work-queue__group-title\">\n\t\t\t\t{{ t('nextcloud-vue', 'Hidden until tomorrow') }}\n\t\t\t</h3>\n\t\t\t<NcButton v-for=\"key in hidden\"\n\t\t\t\t:key=\"key\"\n\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t:data-testid=\"`cn-work-queue-show-${key}`\"\n\t\t\t\t@click=\"setHidden(key, false)\">\n\t\t\t\t{{ t('nextcloud-vue', 'Show {group} again', { group: labelOf(key) }) }}\n\t\t\t</NcButton>\n\t\t</section>\n\t</div>\n</template>\n\n<script>\nimport axios from '@nextcloud/axios'\nimport { subscribe, unsubscribe } from '@nextcloud/event-bus'\nimport { translate as t } from '@nextcloud/l10n'\nimport { generateUrl } from '@nextcloud/router'\nimport { NcButton, NcEmptyContent, NcLoadingIcon, NcNoteCard } from '@nextcloud/vue'\nimport { fetchEndpointSource } from '../../composables/useEndpointSource.js'\nimport { fillTemplate } from '../../utils/fillTemplate.js'\nimport { openRowTarget } from '../../utils/linkNavigation.js'\n\n/**\n * CnWorkQueue — one list of everything waiting on the reader: tasks,\n * consultations, mentions, calendar items, work they cover for a colleague,\n * from as many sources as the server declares. The component names no\n * source: the server answers the groups (`key`, `label`, `closesWhen`,\n * `items`), so a new kind of work needs no change here. A source that could\n * not be read is named at the top rather than folded into \"nothing is\n * waiting\". A group can be hidden until tomorrow, through the server, so the\n * choice follows the reader to another device. dossiq's personal queue is\n * the first; pipelinq's queue has the same shape. It reads again on\n * `cn:page:refresh`, so work planned or closed in a dialog shows at once.\n *\n * `content`:\n * - `source`: an endpointSource answering `{ groups, hiddenGroups?, unavailable? }`.\n * An item is `{ id, title, dueAt?, deadlineTier?, covered?, coveredFor?,\n * waiting?: { on, days, chases }, route?, href? }`.\n * - `hide`, `show`: url templates with `{group}` that hide a group until\n * tomorrow and show it again, each answering `{ hiddenGroups }`; without\n * `hide` no group can be hidden.\n * - `itemHref`: a template filled from an item, when items carry no `route`/`href`.\n * - `waitingParties`: words for `waiting.on` (`{ applicant: \"the applicant\" }`).\n * - `emptyText`: through the host translate.\n */\nexport default {\n\tname: 'CnWorkQueue',\n\n\tcomponents: { NcButton, NcEmptyContent, NcLoadingIcon, NcNoteCard },\n\n\tinject: {\n\t\t/** The host app's translate (CnAppRoot `cnTranslate`). */\n\t\tcnTranslate: { default: () => (key) => key },\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * The queue's configuration (see the component docs).\n\t\t *\n\t\t * @type {object}\n\t\t */\n\t\tcontent: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => ({}),\n\t\t},\n\n\t\t/** The heading above the queue; none when empty. */\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t},\n\n\temits: ['open'],\n\n\tdata() {\n\t\treturn {\n\t\t\tloading: true,\n\t\t\terror: '',\n\t\t\tgroups: [],\n\t\t\thidden: [],\n\t\t\tunavailable: [],\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * The groups not hidden today.\n\t\t *\n\t\t * @spec openspec/changes/work-queue/specs/work-queue/spec.md#requirement-one-queue-over-every-source\n\t\t * @return {Array<object>}\n\t\t */\n\t\tshownGroups() {\n\t\t\tconst hidden = new Set(this.hidden.map(String))\n\t\t\treturn this.groups.filter((group) => !hidden.has(String(group.key)))\n\t\t},\n\t},\n\n\tmounted() {\n\t\tsubscribe('cn:page:refresh', this.load)\n\t\tthis.load()\n\t},\n\n\tbeforeUnmount() {\n\t\tunsubscribe('cn:page:refresh', this.load)\n\t},\n\n\tmethods: {\n\t\tt,\n\n\t\t/**\n\t\t * A config text through the host translate.\n\t\t *\n\t\t * @param {unknown} value The text.\n\t\t * @return {string}\n\t\t */\n\t\ttext(value) {\n\t\t\treturn typeof value === 'string' && value !== '' ? this.cnTranslate(value) : ''\n\t\t},\n\n\t\t/**\n\t\t * Read the queue; a failed read is an error with a retry.\n\t\t *\n\t\t * @spec openspec/changes/work-queue/specs/work-queue/spec.md#requirement-one-queue-over-every-source\n\t\t * @return {Promise<void>}\n\t\t */\n\t\tasync load() {\n\t\t\tthis.loading = true\n\t\t\tthis.error = ''\n\t\t\ttry {\n\t\t\t\tconst data = (await fetchEndpointSource(this.content.source, {}, { fresh: true })) || {}\n\t\t\t\tthis.groups = (Array.isArray(data.groups) ? data.groups : [])\n\t\t\t\t\t.filter((g) => g && g.key !== undefined)\n\t\t\t\t\t.map((g) => ({ ...g, items: Array.isArray(g.items) ? g.items : [] }))\n\t\t\t\tthis.hidden = Array.isArray(data.hiddenGroups) ? data.hiddenGroups.map(String) : []\n\t\t\t\tthis.unavailable = Array.isArray(data.unavailable) ? data.unavailable.filter((s) => s && s.source) : []\n\t\t\t} catch (failure) {\n\t\t\t\tconst body = failure && failure.response && failure.response.data\n\t\t\t\tthis.error = String((body && (body.message || body.error)) || (failure && failure.message) || failure)\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Hide a group until tomorrow, or show it again, through the server.\n\t\t *\n\t\t * @spec openspec/changes/work-queue/specs/work-queue/spec.md#requirement-one-queue-over-every-source\n\t\t * @param {string} key The group key.\n\t\t * @param {boolean} hide Hide (true) or show (false).\n\t\t * @return {Promise<void>}\n\t\t */\n\t\tasync setHidden(key, hide) {\n\t\t\tconst template = hide ? this.content.hide : this.content.show\n\t\t\tif (!template) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tconst { data } = await axios.post(generateUrl(fillTemplate(template, { group: encodeURIComponent(key) })), {})\n\t\t\t\tthis.hidden = Array.isArray(data && data.hiddenGroups) ? data.hiddenGroups.map(String) : this.hidden\n\t\t\t} catch {\n\t\t\t\t// The group stays as it was; the server decides.\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * A group's label by key, for a hidden group.\n\t\t *\n\t\t * @param {string} key The key.\n\t\t * @return {string}\n\t\t */\n\t\tlabelOf(key) {\n\t\t\tconst group = this.groups.find((g) => String(g.key) === String(key))\n\t\t\treturn group && group.label ? group.label : String(key)\n\t\t},\n\n\t\t/**\n\t\t * An item's page as an href.\n\t\t *\n\t\t * @param {object} item The item.\n\t\t * @return {string}\n\t\t */\n\t\threfOf(item) {\n\t\t\tif (item.route && this.$router) {\n\t\t\t\ttry {\n\t\t\t\t\treturn this.$router.resolve(item.route).href\n\t\t\t\t} catch {\n\t\t\t\t\treturn ''\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (item.href) {\n\t\t\t\treturn String(item.href)\n\t\t\t}\n\t\t\treturn this.content.itemHref ? generateUrl(fillTemplate(this.content.itemHref, item)) : ''\n\t\t},\n\n\t\t/**\n\t\t * Open an item: its route through the router, else its href like a link, else tell the host.\n\t\t *\n\t\t * @param {object} item The item.\n\t\t * @param {MouseEvent} event The click.\n\t\t */\n\t\tonOpen(item, event) {\n\t\t\tif (item.route && this.$router && event && !(event.ctrlKey || event.metaKey || event.shiftKey || event.button === 1)) {\n\t\t\t\tevent.preventDefault()\n\t\t\t\tthis.$router.push(item.route).catch(() => {})\n\t\t\t\treturn\n\t\t\t}\n\t\t\tconst href = this.hrefOf(item)\n\t\t\tif (href) {\n\t\t\t\tif (event) {\n\t\t\t\t\tevent.preventDefault()\n\t\t\t\t}\n\t\t\t\topenRowTarget(event, href)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif (event) {\n\t\t\t\tevent.preventDefault()\n\t\t\t}\n\t\t\t/** @event open An item without a route or href was opened. Payload: the item. */\n\t\t\tthis.$emit('open', item)\n\t\t},\n\n\t\t/**\n\t\t * Who the item waits on, for how long and how often chased.\n\t\t *\n\t\t * @param {object} item The item.\n\t\t * @return {string}\n\t\t */\n\t\twaitingText(item) {\n\t\t\tconst waiting = item && item.waiting\n\t\t\tif (!waiting || typeof waiting !== 'object' || !waiting.on) {\n\t\t\t\treturn ''\n\t\t\t}\n\t\t\tconst parties = {\n\t\t\t\tapplicant: t('nextcloud-vue', 'the applicant'),\n\t\t\t\tthirdParty: t('nextcloud-vue', 'a third party'),\n\t\t\t\tus: t('nextcloud-vue', 'us'),\n\t\t\t}\n\t\t\tconst own = this.content.waitingParties && this.content.waitingParties[waiting.on]\n\t\t\tconst party = own ? this.cnTranslate(own) : (parties[waiting.on] || String(waiting.on))\n\t\t\tconst days = Number.isFinite(waiting.days) ? waiting.days : 0\n\t\t\tconst chases = Number.isFinite(waiting.chases) ? waiting.chases : 0\n\t\t\tif (chases === 0) {\n\t\t\t\treturn t('nextcloud-vue', 'Waiting on {party} for {days} days', { party, days })\n\t\t\t}\n\t\t\tif (chases === 1) {\n\t\t\t\treturn t('nextcloud-vue', 'Waiting on {party} for {days} days, chased once', { party, days })\n\t\t\t}\n\t\t\treturn t('nextcloud-vue', 'Waiting on {party} for {days} days, chased {chases} times', { party, days, chases })\n\t\t},\n\n\t\t/**\n\t\t * Up to two initials of a title.\n\t\t *\n\t\t * @param {string} title The title.\n\t\t * @return {string}\n\t\t */\n\t\tinitials(title) {\n\t\t\treturn String(title ?? '').trim().split(/\\s+/).filter(Boolean).slice(0, 2).map((w) => w[0]).join('').toUpperCase()\n\t\t},\n\t},\n}\n</script>\n\n<style scoped>\n.cn-work-queue {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 24px;\n}\n\n.cn-work-queue__head,\n.cn-work-queue__group-head {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\talign-items: center;\n\tjustify-content: space-between;\n\tgap: 12px;\n}\n\n.cn-work-queue__title {\n\tmargin: 0;\n\tfont-size: 28px;\n\tfont-weight: 700;\n}\n\n.cn-work-queue__actions {\n\tdisplay: flex;\n\tgap: 8px;\n}\n\n.cn-work-queue__group {\n\tpadding: 20px 24px;\n\tborder: 1px solid var(--color-border);\n\tborder-radius: var(--border-radius-large);\n\tbackground: var(--color-main-background);\n}\n\n.cn-work-queue__group-title {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n\tmargin: 0;\n\tfont-size: 18px;\n\tfont-weight: 700;\n}\n\n.cn-work-queue__count {\n\tpadding: 0 8px;\n\tborder-radius: 10px;\n\tbackground: var(--color-background-dark);\n\tfont-size: 12px;\n\tfont-weight: 600;\n}\n\n.cn-work-queue__muted {\n\tmargin: 4px 0 8px;\n\tcolor: var(--color-text-maxcontrast);\n}\n\n.cn-work-queue__items {\n\tmargin: 0;\n\tpadding: 0;\n\tlist-style: none;\n}\n\n.cn-work-queue__item {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 16px;\n\tpadding: 12px 0;\n\tborder-block-end: 1px solid var(--color-border);\n}\n\n.cn-work-queue__item:last-child {\n\tborder-block-end: none;\n}\n\n.cn-work-queue__avatar {\n\tdisplay: inline-flex;\n\tflex: none;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 32px;\n\theight: 32px;\n\tborder-radius: 50%;\n\tbackground: var(--color-background-dark);\n\tcolor: var(--color-text-maxcontrast);\n\tfont-size: 12px;\n\tfont-weight: 700;\n}\n\n.cn-work-queue__body {\n\tdisplay: flex;\n\tflex: 1 1 auto;\n\tflex-direction: column;\n\tmin-width: 0;\n}\n\n.cn-work-queue__link {\n\tcolor: var(--color-main-text);\n\tfont-weight: 700;\n\ttext-decoration: none;\n}\n\n.cn-work-queue__link:hover {\n\ttext-decoration: underline;\n}\n\n.cn-work-queue__item--late .cn-work-queue__link {\n\tcolor: var(--color-error);\n}\n\n.cn-work-queue__sub {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: 12px;\n\tcolor: var(--color-text-maxcontrast);\n\tfont-size: 0.9em;\n}\n</style>\n"],"names":["_openBlock","_createElementBlock","_toDisplayString","_createElementVNode","_renderSlot","_Fragment","_renderList","_createTextVNode","_createBlock","_createVNode","_normalizeClass"],"mappings":"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"}
package/dist/esm/index.js CHANGED
@@ -36,6 +36,9 @@ export { clearRouteSentinelWarnings, resolveRouteSentinels } from './utils/resol
36
36
  export { SENTINEL_CONTEXTS, SENTINEL_DEPRECATIONS, SENTINEL_TOKEN_PATTERNS, SENTINEL_VOCABULARY, classifyToken, contextOf, isKnownToken, looksLikeSentinel, matchDeprecation, scanManifestTokens } from './utils/sentinelTokens.js';
37
37
  export { SENTINEL_RESOLVERS, clearDeprecationWarnings, resolveManifestSubtree, warnIfDeprecated } from './utils/resolveManifestTokens.js';
38
38
  export { actionLink, dispatchAction } from './utils/actionsDispatcher.js';
39
+ export { candidateWithoutBlanks, duplicateAffordances } from './utils/duplicateWarning.js';
40
+ export { openDuplicateWarning } from './utils/openDuplicateWarning.js';
41
+ export { registerNcDashboardWidgets } from './utils/registerNcDashboardWidgets.js';
39
42
  export { installModalStack, uninstallModalStack } from './utils/modalStack.js';
40
43
  export { getDashboardColumnOpts, placeNewWidget } from './utils/dashboardPlacement.js';
41
44
  export { mergeManifestDelta } from './utils/mergeManifestDelta.js';
@@ -53,6 +56,7 @@ export { default as CnActionButtons } from './components/CnActionButtons/CnActio
53
56
  export { default as CnActionDialog } from './components/CnActionDialog/CnActionDialog.vue.js';
54
57
  export { default as CnActionsBar } from './components/CnActionsBar/CnActionsBar.vue.js';
55
58
  export { default as CnActionsMenu } from './components/CnActionsMenu/CnActionsMenu.vue.js';
59
+ export { default as CnAddressSearch } from './components/CnAddressSearch/CnAddressSearch.vue.js';
56
60
  export { default as CnAddWidgetModal } from './dialogs/CnAddWidgetModal.vue.js';
57
61
  export { default as CnAdminActionCard } from './components/CnAdminActionCard/CnAdminActionCard.vue.js';
58
62
  export { default as CnAdminSettingsShell } from './components/CnAdminSettingsShell/CnAdminSettingsShell.vue.js';
@@ -61,6 +65,7 @@ export { default as CnApiReference } from './components/CnApiReference/CnApiRefe
61
65
  export { default as CnAppLoading } from './components/CnAppLoading/CnAppLoading.vue.js';
62
66
  export { default as CnAppNav } from './components/CnAppNav/CnAppNav.vue.js';
63
67
  export { default as CnAppRoot } from './components/CnAppRoot/CnAppRoot.vue.js';
68
+ export { default as CnAssignDialog } from './components/CnAssignDialog/CnAssignDialog.vue.js';
64
69
  export { default as CnAuditTrailCard } from './components/CnAuditTrailCard/CnAuditTrailCard.vue.js';
65
70
  export { default as CnAuditTrailWidget } from './components/CnAuditTrailWidget/CnAuditTrailWidget.vue.js';
66
71
  export { default as CnBannerWidget } from './components/CnBannerWidget/CnBannerWidget.vue.js';
@@ -109,6 +114,7 @@ export { default as CnDataMatrix } from './components/CnDataMatrix/CnDataMatrix.
109
114
  export { default as CnDataTable } from './components/CnDataTable/CnDataTable.vue.js';
110
115
  export { default as CnDateAxisView } from './components/CnDateAxisView/CnDateAxisView.vue.js';
111
116
  export { default as CnDateRangePicker } from './components/CnDateRangePicker/CnDateRangePicker.vue.js';
117
+ export { default as CnDecisionListWidget } from './components/CnDecisionListWidget/CnDecisionListWidget.vue.js';
112
118
  export { default as CnDeckCardCreate } from './components/CnDeckCardCreate/CnDeckCardCreate.vue.js';
113
119
  export { default as CnDeckCardPicker } from './components/CnDeckCardPicker/CnDeckCardPicker.vue.js';
114
120
  export { default as CnDeleteDialog } from './components/CnDeleteDialog/CnDeleteDialog.vue.js';
@@ -126,6 +132,7 @@ export { default as CnDividerWidget } from './components/CnDividerWidget/CnDivid
126
132
  export { default as CnDividerWidgetForm } from './components/CnDividerWidgetForm/CnDividerWidgetForm.vue.js';
127
133
  export { default as CnDocumentReviewList } from './components/CnDocumentReviewList/CnDocumentReviewList.vue.js';
128
134
  export { default as CnDocumentReviewWidget } from './components/CnDocumentReviewList/CnDocumentReviewWidget.vue.js';
135
+ export { default as CnDuplicateWarning } from './components/CnDuplicateWarning/CnDuplicateWarning.vue.js';
129
136
  export { default as CnDurationField } from './components/CnDurationField/CnDurationField.vue.js';
130
137
  export { default as CnEditActionsModal } from './dialogs/CnEditActionsModal.vue.js';
131
138
  export { default as CnEditDataModal } from './dialogs/CnEditDataModal.vue.js';
@@ -229,6 +236,7 @@ export { default as CnMenuWidget } from './components/CnMenuWidget/CnMenuWidget.
229
236
  export { default as CnMenuWidgetForm } from './components/CnMenuWidgetForm/CnMenuWidgetForm.vue.js';
230
237
  export { default as CnMetadataTab } from './components/CnAdvancedFormDialog/CnMetadataTab.vue.js';
231
238
  export { default as CnNavCardGrid } from './components/CnNavCardGrid/CnNavCardGrid.vue.js';
239
+ export { default as CnNcDashboardList } from './components/CnNcDashboardList/CnNcDashboardList.vue.js';
232
240
  export { default as CnNcDashboardWidgetForm } from './components/CnNcDashboardWidgetForm/CnNcDashboardWidgetForm.vue.js';
233
241
  export { default as CnNcWidgetGridPicker } from './components/CnNcWidgetGridPicker/CnNcWidgetGridPicker.vue.js';
234
242
  export { default as CnNcWidgetWidget } from './components/CnNcWidgetWidget/CnNcWidgetWidget.vue.js';
@@ -267,6 +275,7 @@ export { default as CnPartyActionsWidget } from './components/CnPartyActionsWidg
267
275
  export { default as CnPartyPicker } from './components/CnPartyPicker/CnPartyPicker.vue.js';
268
276
  export { default as CnPeopleWidget } from './components/CnPeopleWidget/CnPeopleWidget.vue.js';
269
277
  export { default as CnPeopleWidgetForm } from './components/CnPeopleWidgetForm/CnPeopleWidgetForm.vue.js';
278
+ export { default as CnPlanWidget } from './components/CnPlanWidget/CnPlanWidget.vue.js';
270
279
  export { default as CnPresenceAvatars } from './components/CnPresenceAvatars/CnPresenceAvatars.vue.js';
271
280
  export { default as CnProcessSteps } from './components/CnProcessSteps/CnProcessSteps.vue.js';
272
281
  export { default as CnProgressBar } from './components/CnProgressBar/CnProgressBar.vue.js';
@@ -278,6 +287,7 @@ export { default as CnQuicklinksWidget } from './components/CnQuicklinksWidget/C
278
287
  export { default as CnQuicklinksWidgetForm } from './components/CnQuicklinksWidgetForm/CnQuicklinksWidgetForm.vue.js';
279
288
  export { default as CnRadioCardsWidget } from './components/CnRadioCardsWidget/CnRadioCardsWidget.vue.js';
280
289
  export { default as CnRecordListWidget } from './components/CnRecordListWidget/CnRecordListWidget.vue.js';
290
+ export { default as CnRedactionEditor } from './components/CnRedactionEditor/CnRedactionEditor.vue.js';
281
291
  export { default as CnReferencePreview } from './components/CnReferencePreview/CnReferencePreview.vue.js';
282
292
  export { default as CnRegisterMapping } from './components/CnRegisterMapping/CnRegisterMapping.vue.js';
283
293
  export { default as CnRegisterSchemaSelect } from './components/CnRegisterSchemaSelect/CnRegisterSchemaSelect.vue.js';
@@ -287,6 +297,7 @@ export { default as CnRelatedObjectsWidget } from './components/CnRelatedObjects
287
297
  export { default as CnRelationLinkModal } from './dialogs/CnRelationLinkModal.vue.js';
288
298
  export { default as CnRelationshipGraph } from './components/CnRelationshipGraph/CnRelationshipGraph.vue.js';
289
299
  export { default as CnResourceSelect } from './components/CnResourceSelect/CnResourceSelect.vue.js';
300
+ export { default as CnRetentionWidget } from './components/CnRetentionWidget/CnRetentionWidget.vue.js';
290
301
  export { default as CnRichSubmitDialog } from './components/CnRichSubmitDialog/CnRichSubmitDialog.vue.js';
291
302
  export { default as CnRoadmapItem } from './components/CnRoadmapItem/CnRoadmapItem.vue.js';
292
303
  export { default as CnRoadmapTab } from './components/CnRoadmapTab/CnRoadmapTab.vue.js';
@@ -373,6 +384,7 @@ export { default as CnWidgetVisibilityRulesModal } from './dialogs/CnWidgetVisib
373
384
  export { default as CnWidgetWrapper } from './components/CnWidgetWrapper/CnWidgetWrapper.vue.js';
374
385
  export { default as CnWizardDialog } from './components/CnWizardDialog/CnWizardDialog.vue.js';
375
386
  export { default as CnWorkingCalendarWidget } from './components/CnWorkingCalendarWidget/CnWorkingCalendarWidget.vue.js';
387
+ export { default as CnWorkQueue } from './components/CnWorkQueue/CnWorkQueue.vue.js';
376
388
  export { default as CnWorkspaceFilterWidget } from './components/CnWorkspaceFilterWidget/CnWorkspaceFilterWidget.vue.js';
377
389
  export { DEFAULT_DATE_RANGE_PRESETS, resolvePresetWindow } from './components/CnDateRangePicker/CnDateRangePicker.vue2.js';
378
390
  export { defaultPageTypes } from './components/CnPageRenderer/pageTypes.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1814,7 +1814,104 @@ var translations = {
1814
1814
  "{name} moved to place {place} of {total}": "{name} moved to place {place} of {total}",
1815
1815
  "The new order could not be saved.": "The new order could not be saved.",
1816
1816
  "{field} is already used; choose another value.": "{field} is already used; choose another value.",
1817
- "One per line": "One per line"
1817
+ "One per line": "One per line",
1818
+ "This may already exist": "This may already exist",
1819
+ "Why file it anyway": "Why file it anyway",
1820
+ "This cannot be filed twice. Open the one it matches, or ask a coordinator.": "This cannot be filed twice. Open the one it matches, or ask a coordinator.",
1821
+ "File it anyway": "File it anyway",
1822
+ "A record you may not open": "A record you may not open",
1823
+ "Matched on the score, not on a single field": "Matched on the score, not on a single field",
1824
+ "This list could not be read": "This list could not be read",
1825
+ "Try again": "Try again",
1826
+ "Nothing to decide right now.": "Nothing to decide right now.",
1827
+ "Your answer": "Your answer",
1828
+ "Why?": "Why?",
1829
+ "Record this decision": "Record this decision",
1830
+ "This decision was not recorded.": "This decision was not recorded.",
1831
+ "This search could not be read from character {position}.": "This search could not be read from character {position}.",
1832
+ "Correct that character, or search for plain words. AND, OR and NOT work in capitals, and quotes make a phrase.": "Correct that character, or search for plain words. AND, OR and NOT work in capitals, and quotes make a phrase.",
1833
+ "This list could not be read.": "This list could not be read.",
1834
+ "Nothing to show": "Nothing to show",
1835
+ "What happens to this record once it is closed": "What happens to this record once it is closed",
1836
+ "The archival facts are unavailable": "The archival facts are unavailable",
1837
+ "Archived on {at} by {by}. {reason}": "Archived on {at} by {by}. {reason}",
1838
+ "This record and OpenRegister do not agree on whether it is archived.": "This record and OpenRegister do not agree on whether it is archived.",
1839
+ "Nothing could decide what happens to this record.": "Nothing could decide what happens to this record.",
1840
+ "This record has not been closed yet. Its archival future is recorded when it closes.": "This record has not been closed yet. Its archival future is recorded when it closes.",
1841
+ "Handed over as {kind} on {at} by {by}.": "Handed over as {kind} on {at} by {by}.",
1842
+ "Transfer list": "Transfer list",
1843
+ "Recomputing needs the archivist role": "Recomputing needs the archivist role",
1844
+ "Why are you recomputing this?": "Why are you recomputing this?",
1845
+ "This is recorded against {user}.": "This is recorded against {user}.",
1846
+ "Recompute the nomination": "Recompute the nomination",
1847
+ "Selection list row": "Selection list row",
1848
+ "Decided by": "Decided by",
1849
+ "Written on": "Written on",
1850
+ "Decided when it closes": "Decided when it closes",
1851
+ "Not yet": "Not yet",
1852
+ "This widget has no record to read.": "This widget has no record to read.",
1853
+ "The plan is unavailable": "The plan is unavailable",
1854
+ "This record has no plan": "This record has no plan",
1855
+ "You are not allowed to see this plan.": "You are not allowed to see this plan.",
1856
+ "The plan could not be loaded. Try again.": "The plan could not be loaded. Try again.",
1857
+ Start: "Start",
1858
+ Stop: "Stop",
1859
+ "Can start": "Can start",
1860
+ Stopped: "Stopped",
1861
+ "Not needed": "Not needed",
1862
+ "Search an address": "Search an address",
1863
+ "Street, postcode or place": "Street, postcode or place",
1864
+ "Address search is not available right now.": "Address search is not available right now.",
1865
+ Address: "Address",
1866
+ Street: "Street",
1867
+ Place: "Place",
1868
+ Postcode: "Postcode",
1869
+ "{source} could not be read, so this list is incomplete.": "{source} could not be read, so this list is incomplete.",
1870
+ "This queue could not be read": "This queue could not be read",
1871
+ "Nothing is waiting on you.": "Nothing is waiting on you.",
1872
+ "Hide this group until tomorrow": "Hide this group until tomorrow",
1873
+ "Hide until tomorrow": "Hide until tomorrow",
1874
+ "Covering for {person}": "Covering for {person}",
1875
+ "Hidden until tomorrow": "Hidden until tomorrow",
1876
+ "Show {group} again": "Show {group} again",
1877
+ "the applicant": "the applicant",
1878
+ "a third party": "a third party",
1879
+ us: "us",
1880
+ "Waiting on {party} for {days} days": "Waiting on {party} for {days} days",
1881
+ "Waiting on {party} for {days} days, chased once": "Waiting on {party} for {days} days, chased once",
1882
+ "Waiting on {party} for {days} days, chased {chases} times": "Waiting on {party} for {days} days, chased {chases} times",
1883
+ "Previous document": "Previous document",
1884
+ "Next document": "Next document",
1885
+ "Record redaction": "Record redaction",
1886
+ "No document here needs redacting.": "No document here needs redacting.",
1887
+ "Document {index} of {count}": "Document {index} of {count}",
1888
+ "Redacted copy recorded": "Redacted copy recorded",
1889
+ "Upload redacted version": "Upload redacted version",
1890
+ "Document without a title": "Document without a title",
1891
+ "Finding the passages to redact…": "Finding the passages to redact…",
1892
+ "No text was extracted from this document.": "No text was extracted from this document.",
1893
+ Proposal: "Proposal",
1894
+ "Always redacted by rule": "Always redacted by rule",
1895
+ "Verdict for {passage}": "Verdict for {passage}",
1896
+ "Passage type": "Passage type",
1897
+ "Passage text": "Passage text",
1898
+ "Add passage": "Add passage",
1899
+ "Redact: {title}": "Redact: {title}",
1900
+ "Redact documents": "Redact documents",
1901
+ Agreed: "Agreed",
1902
+ Adjust: "Adjust",
1903
+ "Do not redact": "Do not redact",
1904
+ "The documents could not be read.": "The documents could not be read.",
1905
+ "The passages of this document could not be found. Upload a redacted version instead.": "The passages of this document could not be found. Upload a redacted version instead.",
1906
+ "The redacted copy could not be made. Upload a redacted version instead.": "The redacted copy could not be made. Upload a redacted version instead.",
1907
+ "The redacted version could not be stored. Try again.": "The redacted version could not be stored. Try again.",
1908
+ "The redacted copy is recorded. Only this copy will be published.": "The redacted copy is recorded. Only this copy will be published.",
1909
+ Assign: "Assign",
1910
+ "New handler": "New handler",
1911
+ "New team": "New team",
1912
+ "Why it is moving": "Why it is moving",
1913
+ "Use \"{name}\"": "Use \"{name}\"",
1914
+ "It was not handed over.": "It was not handed over."
1818
1915
  };
1819
1916
  var plurals = {
1820
1917
  "{count} member": [
@@ -1936,6 +2033,14 @@ var plurals = {
1936
2033
  "{count} open": [
1937
2034
  "{count} open",
1938
2035
  "{count} open"
2036
+ ],
2037
+ "%n existing record looks like this one.": [
2038
+ "%n existing record looks like this one.",
2039
+ "%n existing records look like this one."
2040
+ ],
2041
+ "%n passage found. Review each one.": [
2042
+ "%n passage found. Review each one.",
2043
+ "%n passages found. Review each one."
1939
2044
  ]
1940
2045
  };
1941
2046
  var en = {
@@ -1 +1 @@
1
- {"version":3,"file":"en.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"en.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -2027,7 +2027,103 @@ var translations = {
2027
2027
  "{name} moved to place {place} of {total}": "{name} staat nu op plaats {place} van {total}",
2028
2028
  "The new order could not be saved.": "De nieuwe volgorde kon niet worden opgeslagen.",
2029
2029
  "{field} is already used; choose another value.": "{field} is al in gebruik; kies een andere waarde.",
2030
- "One per line": "Eén per regel"
2030
+ "One per line": "Eén per regel",
2031
+ "This may already exist": "Dit bestaat mogelijk al",
2032
+ "Why file it anyway": "Waarom toch vastleggen",
2033
+ "This cannot be filed twice. Open the one it matches, or ask a coordinator.": "Dit kan niet twee keer worden vastgelegd. Open het item waarmee het overeenkomt, of vraag een coördinator.",
2034
+ "File it anyway": "Toch vastleggen",
2035
+ "A record you may not open": "Een item dat je niet mag openen",
2036
+ "Matched on the score, not on a single field": "Gevonden op de score, niet op één veld",
2037
+ "This list could not be read": "Deze lijst kon niet worden gelezen",
2038
+ "Nothing to decide right now.": "Er is nu niets te beslissen.",
2039
+ "Your answer": "Je antwoord",
2040
+ "Why?": "Waarom?",
2041
+ "Record this decision": "Dit besluit vastleggen",
2042
+ "This decision was not recorded.": "Dit besluit is niet vastgelegd.",
2043
+ "This search could not be read from character {position}.": "Deze zoekopdracht kon niet worden gelezen vanaf teken {position}.",
2044
+ "Correct that character, or search for plain words. AND, OR and NOT work in capitals, and quotes make a phrase.": "Verbeter dat teken, of zoek op gewone woorden. AND, OR en NOT werken in hoofdletters, en aanhalingstekens maken een zinsdeel.",
2045
+ "This list could not be read.": "Deze lijst kon niet worden gelezen.",
2046
+ "Nothing to show": "Niets om te tonen",
2047
+ "What happens to this record once it is closed": "Wat er met dit item gebeurt als het is afgesloten",
2048
+ "The archival facts are unavailable": "De archiefgegevens zijn niet beschikbaar",
2049
+ "Archived on {at} by {by}. {reason}": "Gearchiveerd op {at} door {by}. {reason}",
2050
+ "This record and OpenRegister do not agree on whether it is archived.": "Dit item en OpenRegister zijn het niet eens over of het gearchiveerd is.",
2051
+ "Nothing could decide what happens to this record.": "Niets kon bepalen wat er met dit item gebeurt.",
2052
+ "This record has not been closed yet. Its archival future is recorded when it closes.": "Dit item is nog niet afgesloten. Wat ermee gebeurt wordt vastgelegd als het sluit.",
2053
+ "Handed over as {kind} on {at} by {by}.": "Overgedragen als {kind} op {at} door {by}.",
2054
+ "Transfer list": "Overbrengingslijst",
2055
+ "Recomputing needs the archivist role": "Opnieuw berekenen vraagt de rol archivaris",
2056
+ "Why are you recomputing this?": "Waarom bereken je dit opnieuw?",
2057
+ "This is recorded against {user}.": "Dit wordt vastgelegd op naam van {user}.",
2058
+ "Recompute the nomination": "Bereken de nominatie opnieuw",
2059
+ "Selection list row": "Selectielijstregel",
2060
+ "Decided by": "Bepaald door",
2061
+ "Written on": "Vastgelegd op",
2062
+ "Decided when it closes": "Bepaald bij afsluiten",
2063
+ "Not yet": "Nog niet",
2064
+ "This widget has no record to read.": "Deze widget heeft geen item om te lezen.",
2065
+ "The plan is unavailable": "Het plan is niet beschikbaar",
2066
+ "This record has no plan": "Dit item heeft geen plan",
2067
+ "You are not allowed to see this plan.": "Je mag dit plan niet zien.",
2068
+ "The plan could not be loaded. Try again.": "Het plan kon niet worden geladen. Probeer het opnieuw.",
2069
+ Start: "Starten",
2070
+ Stop: "Stoppen",
2071
+ "Can start": "Kan starten",
2072
+ Stopped: "Gestopt",
2073
+ "Not needed": "Niet nodig",
2074
+ "Search an address": "Zoek een adres",
2075
+ "Street, postcode or place": "Straat, postcode of plaats",
2076
+ "Address search is not available right now.": "Adres zoeken is nu niet beschikbaar.",
2077
+ Address: "Adres",
2078
+ Street: "Straat",
2079
+ Place: "Plaats",
2080
+ Postcode: "Postcode",
2081
+ "{source} could not be read, so this list is incomplete.": "{source} kon niet worden gelezen, dus deze lijst is niet compleet.",
2082
+ "This queue could not be read": "Deze wachtrij kon niet worden gelezen",
2083
+ "Nothing is waiting on you.": "Er wacht niets op je.",
2084
+ "Hide this group until tomorrow": "Verberg deze groep tot morgen",
2085
+ "Hide until tomorrow": "Verberg tot morgen",
2086
+ "Covering for {person}": "Waarneming voor {person}",
2087
+ "Hidden until tomorrow": "Verborgen tot morgen",
2088
+ "Show {group} again": "{group} weer tonen",
2089
+ "the applicant": "de aanvrager",
2090
+ "a third party": "een derde",
2091
+ us: "ons",
2092
+ "Waiting on {party} for {days} days": "Wacht {days} dagen op {party}",
2093
+ "Waiting on {party} for {days} days, chased once": "Wacht {days} dagen op {party}, één keer gerappelleerd",
2094
+ "Waiting on {party} for {days} days, chased {chases} times": "Wacht {days} dagen op {party}, {chases} keer gerappelleerd",
2095
+ "Previous document": "Vorig document",
2096
+ "Next document": "Volgend document",
2097
+ "Record redaction": "Lakken vastleggen",
2098
+ "No document here needs redacting.": "Hier hoeft geen document gelakt te worden.",
2099
+ "Document {index} of {count}": "Document {index} van {count}",
2100
+ "Redacted copy recorded": "Gelakte kopie vastgelegd",
2101
+ "Upload redacted version": "Gelakte versie uploaden",
2102
+ "Document without a title": "Document zonder titel",
2103
+ "Finding the passages to redact…": "De te lakken passages worden gezocht…",
2104
+ "No text was extracted from this document.": "Uit dit document is geen tekst gehaald.",
2105
+ Proposal: "Voorstel",
2106
+ "Always redacted by rule": "Altijd gelakt volgens regel",
2107
+ "Verdict for {passage}": "Oordeel over {passage}",
2108
+ "Passage type": "Soort passage",
2109
+ "Passage text": "Tekst van de passage",
2110
+ "Add passage": "Passage toevoegen",
2111
+ "Redact: {title}": "Lakken: {title}",
2112
+ "Redact documents": "Documenten lakken",
2113
+ Agreed: "Akkoord",
2114
+ Adjust: "Aanpassen",
2115
+ "Do not redact": "Niet lakken",
2116
+ "The documents could not be read.": "De documenten konden niet worden gelezen.",
2117
+ "The passages of this document could not be found. Upload a redacted version instead.": "De passages van dit document konden niet worden gevonden. Upload in plaats daarvan een gelakte versie.",
2118
+ "The redacted copy could not be made. Upload a redacted version instead.": "De gelakte kopie kon niet worden gemaakt. Upload in plaats daarvan een gelakte versie.",
2119
+ "The redacted version could not be stored. Try again.": "De gelakte versie kon niet worden opgeslagen. Probeer het opnieuw.",
2120
+ "The redacted copy is recorded. Only this copy will be published.": "De gelakte kopie is vastgelegd. Alleen deze kopie wordt gepubliceerd.",
2121
+ Assign: "Toewijzen",
2122
+ "New handler": "Nieuwe behandelaar",
2123
+ "New team": "Nieuw team",
2124
+ "Why it is moving": "Waarom het overgaat",
2125
+ "Use \"{name}\"": "\"{name}\" gebruiken",
2126
+ "It was not handed over.": "Het is niet overgedragen."
2031
2127
  };
2032
2128
  var plurals = {
2033
2129
  "{count} member": [
@@ -2149,6 +2245,14 @@ var plurals = {
2149
2245
  "{count} open": [
2150
2246
  "{count} open",
2151
2247
  "{count} open"
2248
+ ],
2249
+ "%n existing record looks like this one.": [
2250
+ "%n bestaand item lijkt hierop.",
2251
+ "%n bestaande items lijken hierop."
2252
+ ],
2253
+ "%n passage found. Review each one.": [
2254
+ "%n passage gevonden. Beoordeel elke passage.",
2255
+ "%n passages gevonden. Beoordeel elke passage."
2152
2256
  ]
2153
2257
  };
2154
2258
  var nl = {
@@ -1 +1 @@
1
- {"version":3,"file":"nl.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"nl.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}