@conduction/nextcloud-vue 2.132.0 → 2.134.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/CnActionButtons/CnActionButtons.vue.js +1 -1
- package/dist/esm/components/CnActionButtons/CnActionButtons.vue2.js +14 -0
- package/dist/esm/components/CnActionButtons/CnActionButtons.vue2.js.map +1 -1
- package/dist/esm/components/CnActionButtons/CnActionButtons.vue3.js +5 -4
- package/dist/esm/components/CnActionButtons/CnActionButtons.vue3.js.map +1 -1
- package/dist/esm/components/CnConditionListEditor/CnConditionListEditor.vue.js +9 -0
- package/dist/esm/components/CnConditionListEditor/CnConditionListEditor.vue.js.map +1 -0
- package/dist/esm/components/CnConditionListEditor/CnConditionListEditor.vue2.js +237 -0
- package/dist/esm/components/CnConditionListEditor/CnConditionListEditor.vue2.js.map +1 -0
- package/dist/esm/components/CnConditionListEditor/CnConditionListEditor.vue3.js +103 -0
- package/dist/esm/components/CnConditionListEditor/CnConditionListEditor.vue3.js.map +1 -0
- package/dist/esm/components/CnConditionListEditor/conditionOperators.js +121 -0
- package/dist/esm/components/CnConditionListEditor/conditionOperators.js.map +1 -0
- package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js +12 -0
- package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js.map +1 -1
- package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js +1 -1
- package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js.map +1 -1
- package/dist/esm/components/CnFieldListWidget/CnFieldListWidget.vue.js +1 -1
- package/dist/esm/components/CnFieldListWidget/CnFieldListWidget.vue2.js +85 -10
- package/dist/esm/components/CnFieldListWidget/CnFieldListWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnFieldListWidget/CnFieldListWidget.vue3.js +60 -36
- package/dist/esm/components/CnFieldListWidget/CnFieldListWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js +8 -1
- 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/CnIntegrationWidget/CnIntegrationWidget.vue.js +1 -1
- package/dist/esm/components/CnIntegrationWidget/CnIntegrationWidget.vue2.js +10 -0
- package/dist/esm/components/CnIntegrationWidget/CnIntegrationWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnIntegrationWidget/CnIntegrationWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnNcWidgetWidget/CnNcWidgetWidget.vue.js +1 -1
- package/dist/esm/components/CnNcWidgetWidget/CnNcWidgetWidget.vue2.js +46 -7
- package/dist/esm/components/CnNcWidgetWidget/CnNcWidgetWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnNcWidgetWidget/CnNcWidgetWidget.vue3.js +1 -1
- package/dist/esm/components/CnNcWidgetWidget/CnNcWidgetWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnObjectPartiesWidget/CnObjectPartiesWidget.vue.js +1 -1
- package/dist/esm/components/CnObjectPartiesWidget/CnObjectPartiesWidget.vue2.js +258 -6
- package/dist/esm/components/CnObjectPartiesWidget/CnObjectPartiesWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnObjectPartiesWidget/CnObjectPartiesWidget.vue3.js +283 -131
- package/dist/esm/components/CnObjectPartiesWidget/CnObjectPartiesWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue.js +1 -1
- package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue2.js +42 -2
- package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue.js +1 -1
- package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue2.js +1 -1
- package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue3.js.map +1 -1
- package/dist/esm/dialogs/CnPartyAddDialog.vue.js +9 -0
- package/dist/esm/dialogs/CnPartyAddDialog.vue.js.map +1 -0
- package/dist/esm/dialogs/CnPartyAddDialog.vue2.js +184 -0
- package/dist/esm/dialogs/CnPartyAddDialog.vue2.js.map +1 -0
- package/dist/esm/dialogs/CnPartyAddDialog.vue3.js +168 -0
- package/dist/esm/dialogs/CnPartyAddDialog.vue3.js.map +1 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/l10n/en.json.js +27 -1
- package/dist/esm/l10n/en.json.js.map +1 -1
- package/dist/esm/l10n/nl.json.js +27 -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 +353 -217
- package/dist/esm/store/plugins/liveUpdates.js +13 -4
- package/dist/esm/store/plugins/liveUpdates.js.map +1 -1
- package/dist/esm/store/useObjectStore.js +28 -5
- package/dist/esm/store/useObjectStore.js.map +1 -1
- package/dist/esm/utils/detailActionModel.js +6 -0
- package/dist/esm/utils/detailActionModel.js.map +1 -1
- package/dist/esm/utils/listLenses.js +20 -1
- package/dist/esm/utils/listLenses.js.map +1 -1
- package/dist/esm/utils/objectParties.js +79 -1
- package/dist/esm/utils/objectParties.js.map +1 -1
- package/dist/esm/utils/objectRows.js +59 -0
- package/dist/esm/utils/objectRows.js.map +1 -0
- package/dist/esm/utils/validateManifestV2.compiled.js +3 -3
- package/dist/esm/utils/validateManifestV2.compiled.js.map +1 -1
- package/dist/nextcloud-vue.cjs.js +7460 -5803
- package/dist/nextcloud-vue.cjs.js.map +2 -2
- package/dist/nextcloud-vue.css +353 -217
- package/l10n/en.json +27 -1
- package/l10n/nl.json +27 -1
- package/package.json +1 -1
- package/src/components/CnActionButtons/CnActionButtons.vue +15 -0
- package/src/components/CnConditionListEditor/CnConditionListEditor.vue +346 -0
- package/src/components/CnConditionListEditor/conditionOperators.js +126 -0
- package/src/components/CnConditionListEditor/index.js +17 -0
- package/src/components/CnDetailPage/CnDetailPage.md +1 -0
- package/src/components/CnDetailPage/CnDetailPage.vue +13 -1
- package/src/components/CnFieldListWidget/CnFieldListWidget.vue +105 -12
- package/src/components/CnIndexPage/CnIndexPage.vue +8 -1
- package/src/components/CnIntegrationWidget/CnIntegrationWidget.vue +10 -0
- package/src/components/CnNcWidgetWidget/CnNcWidgetWidget.vue +47 -8
- package/src/components/CnObjectPartiesWidget/CnObjectPartiesWidget.vue +401 -3
- package/src/components/CnRecordListWidget/CnRecordListWidget.vue +42 -2
- package/src/components/CnTabsWidget/CnTabsWidget.vue +1 -1
- package/src/components/index.js +1 -0
- package/src/css/look-board-index.css +6 -0
- package/src/css/look-board.css +35 -7
- package/src/dialogs/CnPartyAddDialog.vue +309 -0
- package/src/index.js +2 -0
- package/src/schemas/app-manifest-v2.schema.json +17 -1
- package/src/store/plugins/liveUpdates.js +13 -4
- package/src/store/useObjectStore.js +28 -5
- package/src/utils/detailActionModel.js +6 -0
- package/src/utils/listLenses.js +20 -1
- package/src/utils/objectParties.js +78 -0
- package/src/utils/objectRows.js +55 -0
- package/src/utils/validateManifestV2.compiled.js +3 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CnPartyAddDialog.vue2.js","sources":["../../../src/dialogs/CnPartyAddDialog.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2026 Conduction B.V.\n - SPDX-License-Identifier: EUPL-1.2\n-->\n\n<template>\n\t<CnDialog\n\t\t:look=\"look\"\n\t\t:width=\"width\"\n\t\tdefaultWidth=\"form\"\n\t\t:eyebrow=\"eyebrow\"\n\t\t:subtitle=\"subtitle\"\n\t\t:name=\"dialogTitle\"\n\t\tsize=\"normal\"\n\t\t:noClose=\"loading\"\n\t\t@closing=\"$emit('close')\">\n\t\t<div class=\"cn-party-add\" data-testid=\"cn-party-add-dialog\">\n\t\t\t<fieldset v-if=\"canCreate\" class=\"cn-party-add__mode\">\n\t\t\t\t<legend class=\"cn-party-add__legend\">\n\t\t\t\t\t{{ t('nextcloud-vue', 'Who') }}\n\t\t\t\t</legend>\n\t\t\t\t<NcCheckboxRadioSwitch\n\t\t\t\t\tv-model=\"mode\"\n\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t:name=\"`${idPrefix}-mode`\"\n\t\t\t\t\tvalue=\"existing\"\n\t\t\t\t\t:disabled=\"loading\"\n\t\t\t\t\tdata-testid=\"cn-party-add-mode-existing\">\n\t\t\t\t\t{{ t('nextcloud-vue', 'Someone already known') }}\n\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t<NcCheckboxRadioSwitch\n\t\t\t\t\tv-model=\"mode\"\n\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t:name=\"`${idPrefix}-mode`\"\n\t\t\t\t\tvalue=\"new\"\n\t\t\t\t\t:disabled=\"loading\"\n\t\t\t\t\tdata-testid=\"cn-party-add-mode-new\">\n\t\t\t\t\t{{ createLabel }}\n\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t</fieldset>\n\n\t\t\t<CnPartyPicker\n\t\t\t\tv-if=\"mode === 'existing'\"\n\t\t\t\tv-model=\"partyUuid\"\n\t\t\t\t:sources=\"sources\"\n\t\t\t\t:inputLabel=\"t('nextcloud-vue', 'Person')\"\n\t\t\t\tlabelOutside\n\t\t\t\t:disabled=\"loading\"\n\t\t\t\tdata-testid=\"cn-party-add-picker\" />\n\n\t\t\t<template v-else>\n\t\t\t\t<NcTextField\n\t\t\t\t\tv-for=\"field in createFields\"\n\t\t\t\t\t:key=\"field.key\"\n\t\t\t\t\t:modelValue=\"values[field.key] || ''\"\n\t\t\t\t\t:label=\"field.label\"\n\t\t\t\t\t:type=\"inputType(field)\"\n\t\t\t\t\t:required=\"field.required === true\"\n\t\t\t\t\t:disabled=\"loading\"\n\t\t\t\t\t:data-testid=\"`cn-party-add-field-${field.key}`\"\n\t\t\t\t\t@update:modelValue=\"setValue(field.key, $event)\" />\n\t\t\t</template>\n\n\t\t\t<NcSelect\n\t\t\t\t:modelValue=\"roleOption\"\n\t\t\t\t:options=\"roleOptions\"\n\t\t\t\tlabel=\"label\"\n\t\t\t\t:clearable=\"false\"\n\t\t\t\t:inputLabel=\"t('nextcloud-vue', 'Role')\"\n\t\t\t\t:disabled=\"loading\"\n\t\t\t\tdata-testid=\"cn-party-add-role\"\n\t\t\t\t@update:modelValue=\"role = $event ? $event.key : ''\" />\n\n\t\t\t<NcCheckboxRadioSwitch\n\t\t\t\tv-if=\"allowPrimary\"\n\t\t\t\tv-model=\"primary\"\n\t\t\t\ttype=\"checkbox\"\n\t\t\t\t:disabled=\"loading\"\n\t\t\t\tdata-testid=\"cn-party-add-primary\">\n\t\t\t\t{{ primaryLabel }}\n\t\t\t</NcCheckboxRadioSwitch>\n\n\t\t\t<NcNoteCard v-if=\"error\" type=\"error\" data-testid=\"cn-party-add-error\">\n\t\t\t\t{{ error }}\n\t\t\t</NcNoteCard>\n\t\t</div>\n\n\t\t<template #actions>\n\t\t\t<NcButton :disabled=\"loading\" data-testid=\"cn-party-add-cancel\" @click=\"$emit('close')\">\n\t\t\t\t{{ t('nextcloud-vue', 'Cancel') }}\n\t\t\t</NcButton>\n\t\t\t<NcButton\n\t\t\t\tvariant=\"primary\"\n\t\t\t\t:disabled=\"loading || !complete\"\n\t\t\t\tdata-testid=\"cn-party-add-confirm\"\n\t\t\t\t@click=\"confirm\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<NcLoadingIcon v-if=\"loading\" :size=\"20\" :name=\"t('nextcloud-vue', 'Loading …')\" />\n\t\t\t\t</template>\n\t\t\t\t{{ confirmLabel }}\n\t\t\t</NcButton>\n\t\t</template>\n\t</CnDialog>\n</template>\n\n<script>\nimport { translate as t } from '@nextcloud/l10n'\nimport { NcButton, NcCheckboxRadioSwitch, NcLoadingIcon, NcNoteCard, NcSelect, NcTextField } from '@nextcloud/vue'\nimport CnDialog from '../components/CnDialog/CnDialog.vue'\nimport CnPartyPicker from '../components/CnPartyPicker/CnPartyPicker.vue'\nimport { dialogBoardMixin } from '../mixins/dialogBoard.js'\n\nlet uid = 0\n\n/**\n * CnPartyAddDialog — give a party a role on a record: pick somebody already\n * known (CnPartyPicker over `sources`), or describe a new person with the\n * `create.fields` the host declares (no identifier needed: a name and an\n * address are enough). Then a role from `roles`, and optionally \"make this the\n * primary party\".\n *\n * The dialog writes nothing. `confirm` emits `{ mode, partyUuid, values, role,\n * primary }`; the host creates the person when `mode` is `new`, links the\n * party, then closes the dialog or calls `fail(message)` to show the refusal\n * (a 403 when the reader may not update the record) and let them try again.\n *\n * @spec openspec/changes/object-parties-manage/specs/record-widgets/spec.md#requirement-the-parties-widget-can-add-and-remove-parties\n */\nexport default {\n\tname: 'CnPartyAddDialog',\n\n\tcomponents: { CnDialog, CnPartyPicker, NcButton, NcCheckboxRadioSwitch, NcLoadingIcon, NcNoteCard, NcSelect, NcTextField },\n\n\tmixins: [dialogBoardMixin],\n\n\tprops: {\n\t\t/** The dialog's title (\"Add contact person\"). */\n\t\tdialogTitle: {\n\t\t\ttype: String,\n\t\t\tdefault: () => t('nextcloud-vue', 'Add a party'),\n\t\t},\n\n\t\t/** The roles to choose from, `[{ key, label }]`, already in the reader's words. */\n\t\troles: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t},\n\n\t\t/** CnPartyPicker sources for somebody already known. */\n\t\tsources: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t},\n\n\t\t/**\n\t\t * The fields of a new person, `[{ key, label, type? (text, email, integer), required? }]`,\n\t\t * labels already translated. None: only existing parties can be picked.\n\t\t */\n\t\tcreateFields: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t},\n\n\t\t/** The choice that opens the new-person fields. */\n\t\tcreateLabel: {\n\t\t\ttype: String,\n\t\t\tdefault: () => t('nextcloud-vue', 'Someone new'),\n\t\t},\n\n\t\t/** Offer \"make this the primary party\". */\n\t\tallowPrimary: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/** The primary choice's words (\"Main contact\"). */\n\t\tprimaryLabel: {\n\t\t\ttype: String,\n\t\t\tdefault: () => t('nextcloud-vue', 'Primary party'),\n\t\t},\n\n\t\t/** The confirm button's words. */\n\t\tconfirmLabel: {\n\t\t\ttype: String,\n\t\t\tdefault: () => t('nextcloud-vue', 'Add'),\n\t\t},\n\t},\n\n\temits: ['close', 'confirm'],\n\n\tdata() {\n\t\tuid += 1\n\t\treturn {\n\t\t\tidPrefix: `cn-party-add-${uid}`,\n\t\t\tmode: 'existing',\n\t\t\tpartyUuid: null,\n\t\t\tvalues: {},\n\t\t\trole: this.roles.length === 1 ? this.roles[0].key : '',\n\t\t\tprimary: false,\n\t\t\tloading: false,\n\t\t\terror: '',\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/** @return {boolean} Whether a new person can be described here. */\n\t\tcanCreate() {\n\t\t\treturn this.createFields.length > 0\n\t\t},\n\n\t\t/** @return {Array<{key: string, label: string}>} The role choices. */\n\t\troleOptions() {\n\t\t\treturn this.roles.filter((role) => role && role.key).map((role) => ({ key: role.key, label: role.label || role.key }))\n\t\t},\n\n\t\t/** @return {object|null} The chosen role's option. */\n\t\troleOption() {\n\t\t\treturn this.roleOptions.find((option) => option.key === this.role) || null\n\t\t},\n\n\t\t/** @return {boolean} Whether the choice is complete enough to send. */\n\t\tcomplete() {\n\t\t\tif (this.role === '') {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif (this.mode === 'existing') {\n\t\t\t\treturn Boolean(this.partyUuid)\n\t\t\t}\n\t\t\treturn this.createFields.every((field) => field.required !== true || String(this.values[field.key] || '').trim() !== '')\n\t\t},\n\t},\n\n\tmethods: {\n\t\tt,\n\n\t\t/**\n\t\t * The input type of a new-person field.\n\t\t *\n\t\t * @param {{type?: string}} field The field.\n\t\t * @return {string} `email`, `number` or `text`.\n\t\t */\n\t\tinputType(field) {\n\t\t\tif (field.type === 'email') {\n\t\t\t\treturn 'email'\n\t\t\t}\n\t\t\treturn field.type === 'integer' ? 'number' : 'text'\n\t\t},\n\n\t\t/**\n\t\t * Set one new-person field.\n\t\t *\n\t\t * @param {string} key The field key.\n\t\t * @param {string} value The value.\n\t\t * @return {void}\n\t\t */\n\t\tsetValue(key, value) {\n\t\t\tthis.values = { ...this.values, [key]: value }\n\t\t},\n\n\t\t/** @return {void} Hand the choice to the host. */\n\t\tconfirm() {\n\t\t\tif (!this.complete) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.loading = true\n\t\t\tthis.error = ''\n\t\t\tthis.$emit('confirm', {\n\t\t\t\tmode: this.mode,\n\t\t\t\tpartyUuid: this.mode === 'existing' ? String(this.partyUuid) : null,\n\t\t\t\tvalues: this.mode === 'new' ? { ...this.values } : {},\n\t\t\t\trole: this.role,\n\t\t\t\tprimary: this.allowPrimary && this.primary === true,\n\t\t\t})\n\t\t},\n\n\t\t/**\n\t\t * The host could not write: show why and let the reader try again.\n\t\t *\n\t\t * @param {string} message The refusal.\n\t\t * @return {void}\n\t\t */\n\t\tfail(message) {\n\t\t\tthis.loading = false\n\t\t\tthis.error = message || t('nextcloud-vue', 'The party could not be added.')\n\t\t},\n\t},\n}\n</script>\n\n<style scoped>\n.cn-party-add {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: calc(var(--default-grid-baseline, 4px) * 3);\n}\n\n.cn-party-add__mode {\n\tdisplay: flex;\n\tflex-direction: column;\n\tmargin: 0;\n\tpadding: 0;\n\tborder: 0;\n}\n\n.cn-party-add__legend {\n\tmargin-bottom: var(--default-grid-baseline, 4px);\n\tfont-weight: 600;\n}\n</style>\n"],"names":["CnDialog","CnPartyPicker","t"],"mappings":"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"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import { resolveComponent, openBlock, createBlock, withCtx, createVNode, createTextVNode, toDisplayString, createCommentVNode, createElementVNode, createElementBlock, Fragment, renderList } from 'vue';
|
|
2
|
+
|
|
3
|
+
const _hoisted_1 = {
|
|
4
|
+
class: "cn-party-add",
|
|
5
|
+
"data-testid": "cn-party-add-dialog"
|
|
6
|
+
};
|
|
7
|
+
const _hoisted_2 = {
|
|
8
|
+
key: 0,
|
|
9
|
+
class: "cn-party-add__mode"
|
|
10
|
+
};
|
|
11
|
+
const _hoisted_3 = { class: "cn-party-add__legend" };
|
|
12
|
+
|
|
13
|
+
function render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
14
|
+
const _component_NcCheckboxRadioSwitch = resolveComponent("NcCheckboxRadioSwitch");
|
|
15
|
+
const _component_CnPartyPicker = resolveComponent("CnPartyPicker");
|
|
16
|
+
const _component_NcTextField = resolveComponent("NcTextField");
|
|
17
|
+
const _component_NcSelect = resolveComponent("NcSelect");
|
|
18
|
+
const _component_NcNoteCard = resolveComponent("NcNoteCard");
|
|
19
|
+
const _component_NcButton = resolveComponent("NcButton");
|
|
20
|
+
const _component_NcLoadingIcon = resolveComponent("NcLoadingIcon");
|
|
21
|
+
const _component_CnDialog = resolveComponent("CnDialog");
|
|
22
|
+
|
|
23
|
+
return (openBlock(), createBlock(_component_CnDialog, {
|
|
24
|
+
look: _ctx.look,
|
|
25
|
+
width: _ctx.width,
|
|
26
|
+
defaultWidth: "form",
|
|
27
|
+
eyebrow: _ctx.eyebrow,
|
|
28
|
+
subtitle: _ctx.subtitle,
|
|
29
|
+
name: $props.dialogTitle,
|
|
30
|
+
size: "normal",
|
|
31
|
+
noClose: $data.loading,
|
|
32
|
+
onClosing: _cache[6] || (_cache[6] = $event => (_ctx.$emit('close')))
|
|
33
|
+
}, {
|
|
34
|
+
actions: withCtx(() => [
|
|
35
|
+
createVNode(_component_NcButton, {
|
|
36
|
+
disabled: $data.loading,
|
|
37
|
+
"data-testid": "cn-party-add-cancel",
|
|
38
|
+
onClick: _cache[5] || (_cache[5] = $event => (_ctx.$emit('close')))
|
|
39
|
+
}, {
|
|
40
|
+
default: withCtx(() => [
|
|
41
|
+
createTextVNode(toDisplayString($options.t('nextcloud-vue', 'Cancel')), 1 /* TEXT */)
|
|
42
|
+
]),
|
|
43
|
+
_: 1 /* STABLE */
|
|
44
|
+
}, 8 /* PROPS */, ["disabled"]),
|
|
45
|
+
createVNode(_component_NcButton, {
|
|
46
|
+
variant: "primary",
|
|
47
|
+
disabled: $data.loading || !$options.complete,
|
|
48
|
+
"data-testid": "cn-party-add-confirm",
|
|
49
|
+
onClick: $options.confirm
|
|
50
|
+
}, {
|
|
51
|
+
icon: withCtx(() => [
|
|
52
|
+
($data.loading)
|
|
53
|
+
? (openBlock(), createBlock(_component_NcLoadingIcon, {
|
|
54
|
+
key: 0,
|
|
55
|
+
size: 20,
|
|
56
|
+
name: $options.t('nextcloud-vue', 'Loading …')
|
|
57
|
+
}, null, 8 /* PROPS */, ["name"]))
|
|
58
|
+
: createCommentVNode("v-if", true)
|
|
59
|
+
]),
|
|
60
|
+
default: withCtx(() => [
|
|
61
|
+
createTextVNode(" " + toDisplayString($props.confirmLabel), 1 /* TEXT */)
|
|
62
|
+
]),
|
|
63
|
+
_: 1 /* STABLE */
|
|
64
|
+
}, 8 /* PROPS */, ["disabled", "onClick"])
|
|
65
|
+
]),
|
|
66
|
+
default: withCtx(() => [
|
|
67
|
+
createElementVNode("div", _hoisted_1, [
|
|
68
|
+
($options.canCreate)
|
|
69
|
+
? (openBlock(), createElementBlock("fieldset", _hoisted_2, [
|
|
70
|
+
createElementVNode("legend", _hoisted_3, toDisplayString($options.t('nextcloud-vue', 'Who')), 1 /* TEXT */),
|
|
71
|
+
createVNode(_component_NcCheckboxRadioSwitch, {
|
|
72
|
+
modelValue: $data.mode,
|
|
73
|
+
"onUpdate:modelValue": _cache[0] || (_cache[0] = $event => (($data.mode) = $event)),
|
|
74
|
+
type: "radio",
|
|
75
|
+
name: `${$data.idPrefix}-mode`,
|
|
76
|
+
value: "existing",
|
|
77
|
+
disabled: $data.loading,
|
|
78
|
+
"data-testid": "cn-party-add-mode-existing"
|
|
79
|
+
}, {
|
|
80
|
+
default: withCtx(() => [
|
|
81
|
+
createTextVNode(toDisplayString($options.t('nextcloud-vue', 'Someone already known')), 1 /* TEXT */)
|
|
82
|
+
]),
|
|
83
|
+
_: 1 /* STABLE */
|
|
84
|
+
}, 8 /* PROPS */, ["modelValue", "name", "disabled"]),
|
|
85
|
+
createVNode(_component_NcCheckboxRadioSwitch, {
|
|
86
|
+
modelValue: $data.mode,
|
|
87
|
+
"onUpdate:modelValue": _cache[1] || (_cache[1] = $event => (($data.mode) = $event)),
|
|
88
|
+
type: "radio",
|
|
89
|
+
name: `${$data.idPrefix}-mode`,
|
|
90
|
+
value: "new",
|
|
91
|
+
disabled: $data.loading,
|
|
92
|
+
"data-testid": "cn-party-add-mode-new"
|
|
93
|
+
}, {
|
|
94
|
+
default: withCtx(() => [
|
|
95
|
+
createTextVNode(toDisplayString($props.createLabel), 1 /* TEXT */)
|
|
96
|
+
]),
|
|
97
|
+
_: 1 /* STABLE */
|
|
98
|
+
}, 8 /* PROPS */, ["modelValue", "name", "disabled"])
|
|
99
|
+
]))
|
|
100
|
+
: createCommentVNode("v-if", true),
|
|
101
|
+
($data.mode === 'existing')
|
|
102
|
+
? (openBlock(), createBlock(_component_CnPartyPicker, {
|
|
103
|
+
key: 1,
|
|
104
|
+
modelValue: $data.partyUuid,
|
|
105
|
+
"onUpdate:modelValue": _cache[2] || (_cache[2] = $event => (($data.partyUuid) = $event)),
|
|
106
|
+
sources: $props.sources,
|
|
107
|
+
inputLabel: $options.t('nextcloud-vue', 'Person'),
|
|
108
|
+
labelOutside: "",
|
|
109
|
+
disabled: $data.loading,
|
|
110
|
+
"data-testid": "cn-party-add-picker"
|
|
111
|
+
}, null, 8 /* PROPS */, ["modelValue", "sources", "inputLabel", "disabled"]))
|
|
112
|
+
: (openBlock(true), createElementBlock(Fragment, { key: 2 }, renderList($props.createFields, (field) => {
|
|
113
|
+
return (openBlock(), createBlock(_component_NcTextField, {
|
|
114
|
+
key: field.key,
|
|
115
|
+
modelValue: $data.values[field.key] || '',
|
|
116
|
+
label: field.label,
|
|
117
|
+
type: $options.inputType(field),
|
|
118
|
+
required: field.required === true,
|
|
119
|
+
disabled: $data.loading,
|
|
120
|
+
"data-testid": `cn-party-add-field-${field.key}`,
|
|
121
|
+
"onUpdate:modelValue": $event => ($options.setValue(field.key, $event))
|
|
122
|
+
}, null, 8 /* PROPS */, ["modelValue", "label", "type", "required", "disabled", "data-testid", "onUpdate:modelValue"]))
|
|
123
|
+
}), 128 /* KEYED_FRAGMENT */)),
|
|
124
|
+
createVNode(_component_NcSelect, {
|
|
125
|
+
modelValue: $options.roleOption,
|
|
126
|
+
options: $options.roleOptions,
|
|
127
|
+
label: "label",
|
|
128
|
+
clearable: false,
|
|
129
|
+
inputLabel: $options.t('nextcloud-vue', 'Role'),
|
|
130
|
+
disabled: $data.loading,
|
|
131
|
+
"data-testid": "cn-party-add-role",
|
|
132
|
+
"onUpdate:modelValue": _cache[3] || (_cache[3] = $event => ($data.role = $event ? $event.key : ''))
|
|
133
|
+
}, null, 8 /* PROPS */, ["modelValue", "options", "inputLabel", "disabled"]),
|
|
134
|
+
($props.allowPrimary)
|
|
135
|
+
? (openBlock(), createBlock(_component_NcCheckboxRadioSwitch, {
|
|
136
|
+
key: 3,
|
|
137
|
+
modelValue: $data.primary,
|
|
138
|
+
"onUpdate:modelValue": _cache[4] || (_cache[4] = $event => (($data.primary) = $event)),
|
|
139
|
+
type: "checkbox",
|
|
140
|
+
disabled: $data.loading,
|
|
141
|
+
"data-testid": "cn-party-add-primary"
|
|
142
|
+
}, {
|
|
143
|
+
default: withCtx(() => [
|
|
144
|
+
createTextVNode(toDisplayString($props.primaryLabel), 1 /* TEXT */)
|
|
145
|
+
]),
|
|
146
|
+
_: 1 /* STABLE */
|
|
147
|
+
}, 8 /* PROPS */, ["modelValue", "disabled"]))
|
|
148
|
+
: createCommentVNode("v-if", true),
|
|
149
|
+
($data.error)
|
|
150
|
+
? (openBlock(), createBlock(_component_NcNoteCard, {
|
|
151
|
+
key: 4,
|
|
152
|
+
type: "error",
|
|
153
|
+
"data-testid": "cn-party-add-error"
|
|
154
|
+
}, {
|
|
155
|
+
default: withCtx(() => [
|
|
156
|
+
createTextVNode(toDisplayString($data.error), 1 /* TEXT */)
|
|
157
|
+
]),
|
|
158
|
+
_: 1 /* STABLE */
|
|
159
|
+
}))
|
|
160
|
+
: createCommentVNode("v-if", true)
|
|
161
|
+
])
|
|
162
|
+
]),
|
|
163
|
+
_: 1 /* STABLE */
|
|
164
|
+
}, 8 /* PROPS */, ["look", "width", "eyebrow", "subtitle", "name", "noClose"]))
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
export { render };
|
|
168
|
+
//# sourceMappingURL=CnPartyAddDialog.vue3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CnPartyAddDialog.vue3.js","sources":["../../../src/dialogs/CnPartyAddDialog.vue?vue&type=template&id=4157800c&lang.js"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2026 Conduction B.V.\n - SPDX-License-Identifier: EUPL-1.2\n-->\n\n<template>\n\t<CnDialog\n\t\t:look=\"look\"\n\t\t:width=\"width\"\n\t\tdefaultWidth=\"form\"\n\t\t:eyebrow=\"eyebrow\"\n\t\t:subtitle=\"subtitle\"\n\t\t:name=\"dialogTitle\"\n\t\tsize=\"normal\"\n\t\t:noClose=\"loading\"\n\t\t@closing=\"$emit('close')\">\n\t\t<div class=\"cn-party-add\" data-testid=\"cn-party-add-dialog\">\n\t\t\t<fieldset v-if=\"canCreate\" class=\"cn-party-add__mode\">\n\t\t\t\t<legend class=\"cn-party-add__legend\">\n\t\t\t\t\t{{ t('nextcloud-vue', 'Who') }}\n\t\t\t\t</legend>\n\t\t\t\t<NcCheckboxRadioSwitch\n\t\t\t\t\tv-model=\"mode\"\n\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t:name=\"`${idPrefix}-mode`\"\n\t\t\t\t\tvalue=\"existing\"\n\t\t\t\t\t:disabled=\"loading\"\n\t\t\t\t\tdata-testid=\"cn-party-add-mode-existing\">\n\t\t\t\t\t{{ t('nextcloud-vue', 'Someone already known') }}\n\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t<NcCheckboxRadioSwitch\n\t\t\t\t\tv-model=\"mode\"\n\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t:name=\"`${idPrefix}-mode`\"\n\t\t\t\t\tvalue=\"new\"\n\t\t\t\t\t:disabled=\"loading\"\n\t\t\t\t\tdata-testid=\"cn-party-add-mode-new\">\n\t\t\t\t\t{{ createLabel }}\n\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t</fieldset>\n\n\t\t\t<CnPartyPicker\n\t\t\t\tv-if=\"mode === 'existing'\"\n\t\t\t\tv-model=\"partyUuid\"\n\t\t\t\t:sources=\"sources\"\n\t\t\t\t:inputLabel=\"t('nextcloud-vue', 'Person')\"\n\t\t\t\tlabelOutside\n\t\t\t\t:disabled=\"loading\"\n\t\t\t\tdata-testid=\"cn-party-add-picker\" />\n\n\t\t\t<template v-else>\n\t\t\t\t<NcTextField\n\t\t\t\t\tv-for=\"field in createFields\"\n\t\t\t\t\t:key=\"field.key\"\n\t\t\t\t\t:modelValue=\"values[field.key] || ''\"\n\t\t\t\t\t:label=\"field.label\"\n\t\t\t\t\t:type=\"inputType(field)\"\n\t\t\t\t\t:required=\"field.required === true\"\n\t\t\t\t\t:disabled=\"loading\"\n\t\t\t\t\t:data-testid=\"`cn-party-add-field-${field.key}`\"\n\t\t\t\t\t@update:modelValue=\"setValue(field.key, $event)\" />\n\t\t\t</template>\n\n\t\t\t<NcSelect\n\t\t\t\t:modelValue=\"roleOption\"\n\t\t\t\t:options=\"roleOptions\"\n\t\t\t\tlabel=\"label\"\n\t\t\t\t:clearable=\"false\"\n\t\t\t\t:inputLabel=\"t('nextcloud-vue', 'Role')\"\n\t\t\t\t:disabled=\"loading\"\n\t\t\t\tdata-testid=\"cn-party-add-role\"\n\t\t\t\t@update:modelValue=\"role = $event ? $event.key : ''\" />\n\n\t\t\t<NcCheckboxRadioSwitch\n\t\t\t\tv-if=\"allowPrimary\"\n\t\t\t\tv-model=\"primary\"\n\t\t\t\ttype=\"checkbox\"\n\t\t\t\t:disabled=\"loading\"\n\t\t\t\tdata-testid=\"cn-party-add-primary\">\n\t\t\t\t{{ primaryLabel }}\n\t\t\t</NcCheckboxRadioSwitch>\n\n\t\t\t<NcNoteCard v-if=\"error\" type=\"error\" data-testid=\"cn-party-add-error\">\n\t\t\t\t{{ error }}\n\t\t\t</NcNoteCard>\n\t\t</div>\n\n\t\t<template #actions>\n\t\t\t<NcButton :disabled=\"loading\" data-testid=\"cn-party-add-cancel\" @click=\"$emit('close')\">\n\t\t\t\t{{ t('nextcloud-vue', 'Cancel') }}\n\t\t\t</NcButton>\n\t\t\t<NcButton\n\t\t\t\tvariant=\"primary\"\n\t\t\t\t:disabled=\"loading || !complete\"\n\t\t\t\tdata-testid=\"cn-party-add-confirm\"\n\t\t\t\t@click=\"confirm\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<NcLoadingIcon v-if=\"loading\" :size=\"20\" :name=\"t('nextcloud-vue', 'Loading …')\" />\n\t\t\t\t</template>\n\t\t\t\t{{ confirmLabel }}\n\t\t\t</NcButton>\n\t\t</template>\n\t</CnDialog>\n</template>\n\n<script>\nimport { translate as t } from '@nextcloud/l10n'\nimport { NcButton, NcCheckboxRadioSwitch, NcLoadingIcon, NcNoteCard, NcSelect, NcTextField } from '@nextcloud/vue'\nimport CnDialog from '../components/CnDialog/CnDialog.vue'\nimport CnPartyPicker from '../components/CnPartyPicker/CnPartyPicker.vue'\nimport { dialogBoardMixin } from '../mixins/dialogBoard.js'\n\nlet uid = 0\n\n/**\n * CnPartyAddDialog — give a party a role on a record: pick somebody already\n * known (CnPartyPicker over `sources`), or describe a new person with the\n * `create.fields` the host declares (no identifier needed: a name and an\n * address are enough). Then a role from `roles`, and optionally \"make this the\n * primary party\".\n *\n * The dialog writes nothing. `confirm` emits `{ mode, partyUuid, values, role,\n * primary }`; the host creates the person when `mode` is `new`, links the\n * party, then closes the dialog or calls `fail(message)` to show the refusal\n * (a 403 when the reader may not update the record) and let them try again.\n *\n * @spec openspec/changes/object-parties-manage/specs/record-widgets/spec.md#requirement-the-parties-widget-can-add-and-remove-parties\n */\nexport default {\n\tname: 'CnPartyAddDialog',\n\n\tcomponents: { CnDialog, CnPartyPicker, NcButton, NcCheckboxRadioSwitch, NcLoadingIcon, NcNoteCard, NcSelect, NcTextField },\n\n\tmixins: [dialogBoardMixin],\n\n\tprops: {\n\t\t/** The dialog's title (\"Add contact person\"). */\n\t\tdialogTitle: {\n\t\t\ttype: String,\n\t\t\tdefault: () => t('nextcloud-vue', 'Add a party'),\n\t\t},\n\n\t\t/** The roles to choose from, `[{ key, label }]`, already in the reader's words. */\n\t\troles: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t},\n\n\t\t/** CnPartyPicker sources for somebody already known. */\n\t\tsources: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t},\n\n\t\t/**\n\t\t * The fields of a new person, `[{ key, label, type? (text, email, integer), required? }]`,\n\t\t * labels already translated. None: only existing parties can be picked.\n\t\t */\n\t\tcreateFields: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t},\n\n\t\t/** The choice that opens the new-person fields. */\n\t\tcreateLabel: {\n\t\t\ttype: String,\n\t\t\tdefault: () => t('nextcloud-vue', 'Someone new'),\n\t\t},\n\n\t\t/** Offer \"make this the primary party\". */\n\t\tallowPrimary: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/** The primary choice's words (\"Main contact\"). */\n\t\tprimaryLabel: {\n\t\t\ttype: String,\n\t\t\tdefault: () => t('nextcloud-vue', 'Primary party'),\n\t\t},\n\n\t\t/** The confirm button's words. */\n\t\tconfirmLabel: {\n\t\t\ttype: String,\n\t\t\tdefault: () => t('nextcloud-vue', 'Add'),\n\t\t},\n\t},\n\n\temits: ['close', 'confirm'],\n\n\tdata() {\n\t\tuid += 1\n\t\treturn {\n\t\t\tidPrefix: `cn-party-add-${uid}`,\n\t\t\tmode: 'existing',\n\t\t\tpartyUuid: null,\n\t\t\tvalues: {},\n\t\t\trole: this.roles.length === 1 ? this.roles[0].key : '',\n\t\t\tprimary: false,\n\t\t\tloading: false,\n\t\t\terror: '',\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/** @return {boolean} Whether a new person can be described here. */\n\t\tcanCreate() {\n\t\t\treturn this.createFields.length > 0\n\t\t},\n\n\t\t/** @return {Array<{key: string, label: string}>} The role choices. */\n\t\troleOptions() {\n\t\t\treturn this.roles.filter((role) => role && role.key).map((role) => ({ key: role.key, label: role.label || role.key }))\n\t\t},\n\n\t\t/** @return {object|null} The chosen role's option. */\n\t\troleOption() {\n\t\t\treturn this.roleOptions.find((option) => option.key === this.role) || null\n\t\t},\n\n\t\t/** @return {boolean} Whether the choice is complete enough to send. */\n\t\tcomplete() {\n\t\t\tif (this.role === '') {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif (this.mode === 'existing') {\n\t\t\t\treturn Boolean(this.partyUuid)\n\t\t\t}\n\t\t\treturn this.createFields.every((field) => field.required !== true || String(this.values[field.key] || '').trim() !== '')\n\t\t},\n\t},\n\n\tmethods: {\n\t\tt,\n\n\t\t/**\n\t\t * The input type of a new-person field.\n\t\t *\n\t\t * @param {{type?: string}} field The field.\n\t\t * @return {string} `email`, `number` or `text`.\n\t\t */\n\t\tinputType(field) {\n\t\t\tif (field.type === 'email') {\n\t\t\t\treturn 'email'\n\t\t\t}\n\t\t\treturn field.type === 'integer' ? 'number' : 'text'\n\t\t},\n\n\t\t/**\n\t\t * Set one new-person field.\n\t\t *\n\t\t * @param {string} key The field key.\n\t\t * @param {string} value The value.\n\t\t * @return {void}\n\t\t */\n\t\tsetValue(key, value) {\n\t\t\tthis.values = { ...this.values, [key]: value }\n\t\t},\n\n\t\t/** @return {void} Hand the choice to the host. */\n\t\tconfirm() {\n\t\t\tif (!this.complete) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.loading = true\n\t\t\tthis.error = ''\n\t\t\tthis.$emit('confirm', {\n\t\t\t\tmode: this.mode,\n\t\t\t\tpartyUuid: this.mode === 'existing' ? String(this.partyUuid) : null,\n\t\t\t\tvalues: this.mode === 'new' ? { ...this.values } : {},\n\t\t\t\trole: this.role,\n\t\t\t\tprimary: this.allowPrimary && this.primary === true,\n\t\t\t})\n\t\t},\n\n\t\t/**\n\t\t * The host could not write: show why and let the reader try again.\n\t\t *\n\t\t * @param {string} message The refusal.\n\t\t * @return {void}\n\t\t */\n\t\tfail(message) {\n\t\t\tthis.loading = false\n\t\t\tthis.error = message || t('nextcloud-vue', 'The party could not be added.')\n\t\t},\n\t},\n}\n</script>\n\n<style scoped>\n.cn-party-add {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: calc(var(--default-grid-baseline, 4px) * 3);\n}\n\n.cn-party-add__mode {\n\tdisplay: flex;\n\tflex-direction: column;\n\tmargin: 0;\n\tpadding: 0;\n\tborder: 0;\n}\n\n.cn-party-add__legend {\n\tmargin-bottom: var(--default-grid-baseline, 4px);\n\tfont-weight: 600;\n}\n</style>\n"],"names":["_createBlock","_createVNode","_createElementVNode","_toDisplayString","_Fragment","_renderList"],"mappings":"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"}
|
package/dist/esm/index.js
CHANGED
|
@@ -24,6 +24,7 @@ export { currentTheme, useCurrentTheme } from './composables/useCurrentTheme.js'
|
|
|
24
24
|
export { ROADMAP_LABEL_BLOCKLIST } from './utils/roadmapLabelBlocklist.js';
|
|
25
25
|
export { humaniseRuleKey, notificationRuleLabel } from './utils/notificationRuleLabel.js';
|
|
26
26
|
export { readTransitionInputs } from './utils/transitionInputs.js';
|
|
27
|
+
export { conditionSentence, formatConditionValue, operatorLabel, operatorTakesValue, operatorsForType } from './components/CnConditionListEditor/conditionOperators.js';
|
|
27
28
|
export { humaniseKey } from './utils/humaniseKey.js';
|
|
28
29
|
export { BSN_ERROR_CHECKSUM, BSN_ERROR_LENGTH, maskBsn, validateBsn } from './utils/validators/bsn.js';
|
|
29
30
|
export { registerTranslations } from './l10n/index.js';
|
|
@@ -98,6 +99,7 @@ export { default as CnChoiceCards } from './components/CnChoiceCards/CnChoiceCar
|
|
|
98
99
|
export { default as CnChoicePickerWidget } from './components/CnChoicePickerWidget/CnChoicePickerWidget.vue.js';
|
|
99
100
|
export { default as CnColorPicker } from './components/CnColorPicker/CnColorPicker.vue.js';
|
|
100
101
|
export { default as CnCommandPalette } from './components/CnCommandPalette/CnCommandPalette.vue.js';
|
|
102
|
+
export { default as CnConditionListEditor } from './components/CnConditionListEditor/CnConditionListEditor.vue.js';
|
|
101
103
|
export { default as CnConfigurationCard } from './components/CnConfigurationCard/CnConfigurationCard.vue.js';
|
|
102
104
|
export { default as CnContactCreate } from './components/CnContactCreate/CnContactCreate.vue.js';
|
|
103
105
|
export { default as CnContactPicker } from './components/CnContactPicker/CnContactPicker.vue.js';
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/esm/l10n/en.json.js
CHANGED
|
@@ -2362,7 +2362,33 @@ var translations = {
|
|
|
2362
2362
|
Viewed: "Viewed",
|
|
2363
2363
|
"w{week}": "w{week}",
|
|
2364
2364
|
Icon: "Icon",
|
|
2365
|
-
"Shown when you point at the view in the menu.": "Shown when you point at the view in the menu."
|
|
2365
|
+
"Shown when you point at the view in the menu.": "Shown when you point at the view in the menu.",
|
|
2366
|
+
"No main contact yet": "No main contact yet",
|
|
2367
|
+
is: "is",
|
|
2368
|
+
"is not": "is not",
|
|
2369
|
+
"greater than": "greater than",
|
|
2370
|
+
"at least": "at least",
|
|
2371
|
+
"less than": "less than",
|
|
2372
|
+
"at most": "at most",
|
|
2373
|
+
"is filled in": "is filled in",
|
|
2374
|
+
"{field} is {value}": "{field} is {value}",
|
|
2375
|
+
"{field} is not {value}": "{field} is not {value}",
|
|
2376
|
+
"{field} is greater than {value}": "{field} is greater than {value}",
|
|
2377
|
+
"{field} is at least {value}": "{field} is at least {value}",
|
|
2378
|
+
"{field} is less than {value}": "{field} is less than {value}",
|
|
2379
|
+
"{field} is at most {value}": "{field} is at most {value}",
|
|
2380
|
+
"{field} is filled in": "{field} is filled in",
|
|
2381
|
+
"No conditions: the rule always applies.": "No conditions: the rule always applies.",
|
|
2382
|
+
"Add a party": "Add a party",
|
|
2383
|
+
"Remove party": "Remove party",
|
|
2384
|
+
"Remove {name} as {role}": "Remove {name} as {role}",
|
|
2385
|
+
"Remove {name} as {role}?": "Remove {name} as {role}?",
|
|
2386
|
+
"Someone already known": "Someone already known",
|
|
2387
|
+
"Someone new": "Someone new",
|
|
2388
|
+
"The change could not be saved. Nothing was changed.": "The change could not be saved. Nothing was changed.",
|
|
2389
|
+
"The new person was not saved.": "The new person was not saved.",
|
|
2390
|
+
"The party could not be added.": "The party could not be added.",
|
|
2391
|
+
"You may not change who is on this record.": "You may not change who is on this record."
|
|
2366
2392
|
};
|
|
2367
2393
|
var plurals = {
|
|
2368
2394
|
"{count} member": [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"en.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/esm/l10n/nl.json.js
CHANGED
|
@@ -2612,7 +2612,33 @@ var translations = {
|
|
|
2612
2612
|
Viewed: "Ingezien",
|
|
2613
2613
|
"w{week}": "w{week}",
|
|
2614
2614
|
Icon: "Pictogram",
|
|
2615
|
-
"Shown when you point at the view in the menu.": "Te zien als u in het menu op de weergave wijst."
|
|
2615
|
+
"Shown when you point at the view in the menu.": "Te zien als u in het menu op de weergave wijst.",
|
|
2616
|
+
"No main contact yet": "Nog geen hoofdcontact",
|
|
2617
|
+
is: "is",
|
|
2618
|
+
"is not": "is niet",
|
|
2619
|
+
"greater than": "groter dan",
|
|
2620
|
+
"at least": "minstens",
|
|
2621
|
+
"less than": "kleiner dan",
|
|
2622
|
+
"at most": "hoogstens",
|
|
2623
|
+
"is filled in": "is ingevuld",
|
|
2624
|
+
"{field} is {value}": "{field} {value} is",
|
|
2625
|
+
"{field} is not {value}": "{field} niet {value} is",
|
|
2626
|
+
"{field} is greater than {value}": "{field} groter is dan {value}",
|
|
2627
|
+
"{field} is at least {value}": "{field} minstens {value} is",
|
|
2628
|
+
"{field} is less than {value}": "{field} kleiner is dan {value}",
|
|
2629
|
+
"{field} is at most {value}": "{field} hoogstens {value} is",
|
|
2630
|
+
"{field} is filled in": "{field} is ingevuld",
|
|
2631
|
+
"No conditions: the rule always applies.": "Geen voorwaarden: de regel geldt altijd.",
|
|
2632
|
+
"Add a party": "Partij toevoegen",
|
|
2633
|
+
"Remove party": "Partij verwijderen",
|
|
2634
|
+
"Remove {name} as {role}": "{name} als {role} verwijderen",
|
|
2635
|
+
"Remove {name} as {role}?": "{name} als {role} verwijderen?",
|
|
2636
|
+
"Someone already known": "Iemand die al bekend is",
|
|
2637
|
+
"Someone new": "Iemand nieuw",
|
|
2638
|
+
"The change could not be saved. Nothing was changed.": "De wijziging kon niet worden opgeslagen. Er is niets veranderd.",
|
|
2639
|
+
"The new person was not saved.": "De nieuwe persoon is niet opgeslagen.",
|
|
2640
|
+
"The party could not be added.": "De partij kon niet worden toegevoegd.",
|
|
2641
|
+
"You may not change who is on this record.": "U mag niet wijzigen wie er bij dit record hoort."
|
|
2616
2642
|
};
|
|
2617
2643
|
var plurals = {
|
|
2618
2644
|
"{count} member": [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nl.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"nl.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|