@wssto2/vue-core 0.16.0 → 0.18.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/CHANGELOG.md +32 -0
- package/README.md +5 -3
- package/bin/architecture/engine.mjs +3 -0
- package/bin/architecture/permissions.mjs +56 -0
- package/bin/architecture/rules.mjs +17 -0
- package/bin/commands/check-architecture.mjs +19 -0
- package/bin/config.mjs +2 -0
- package/dist/{AccessGate.vue_vue_type_script_setup_true_lang-BH3f0hda.js → AccessGate.vue_vue_type_script_setup_true_lang-Bg8JFAOT.js} +1 -1
- package/dist/{ActionRow.vue_vue_type_script_setup_true_lang-DybAIOHS.js → ActionRow.vue_vue_type_script_setup_true_lang-B5IMNnTf.js} +4 -4
- package/dist/{Activity-DOUuIkZR.js → Activity-CiYn5E6A.js} +7 -7
- package/dist/{AdaptivePageShell.vue_vue_type_script_setup_true_lang-d_dPurWG.js → AdaptivePageShell.vue_vue_type_script_setup_true_lang-oXWQTfBs.js} +1 -1
- package/dist/{Changes-BfcbVgmu.js → Changes-Cy8STpLX.js} +3 -3
- package/dist/{CollectionPage.vue_vue_type_script_setup_true_lang-B5hSkJ2N.js → CollectionPage.vue_vue_type_script_setup_true_lang-Dr6nFNBB.js} +6 -6
- package/dist/{DataTable.vue_vue_type_script_setup_true_lang-DbRS37n3.js → DataTable.vue_vue_type_script_setup_true_lang-D372wlxR.js} +1 -1
- package/dist/{DateField.vue_vue_type_script_setup_true_lang-DzCvYHAf.js → DateField.vue_vue_type_script_setup_true_lang-D0KcfW8R.js} +17 -16
- package/dist/{DeadLetters-CuMvfXH8.js → DeadLetters-DhJkMpd_.js} +4 -4
- package/dist/{FormGroup.vue_vue_type_script_setup_true_lang-dsO1m9Mm.js → FormGroup.vue_vue_type_script_setup_true_lang-lvAuBG-0.js} +2 -2
- package/dist/FormRow.vue_vue_type_script_setup_true_lang-CpgNVQF4.js +160 -0
- package/dist/{FormView.vue_vue_type_script_setup_true_lang-Bq_Qa4py.js → FormView.vue_vue_type_script_setup_true_lang-D01Jr4UU.js} +5 -5
- package/dist/{General-B5vcSEhP.js → General-CwTPC5UP.js} +10 -10
- package/dist/{IncidentRecord-wmStcEag.js → IncidentRecord-hXEGuLGg.js} +13 -13
- package/dist/{IncidentsList-CFx5tsxP.js → IncidentsList-C41VyDwK.js} +6 -6
- package/dist/{NewRolePage-CZxAp7LR.js → NewRolePage-BYYZJkK7.js} +3 -3
- package/dist/{NumberField.vue_vue_type_script_setup_true_lang-U-_kcnGr.js → NumberField.vue_vue_type_script_setup_true_lang-BhNZgEW6.js} +7 -6
- package/dist/{PersonAccess.vue_vue_type_script_setup_true_lang-BPDh9s2m.js → PersonAccess.vue_vue_type_script_setup_true_lang-mYFuG-Y3.js} +56 -56
- package/dist/{ProfilePage-B-T8kBcc.js → ProfilePage-DGEsIycR.js} +13 -13
- package/dist/{RecordHeader.vue_vue_type_script_setup_true_lang-Bt5mT19g.js → RecordHeader.vue_vue_type_script_setup_true_lang-B3BnYg1x.js} +1 -1
- package/dist/{ResourcePage.vue_vue_type_script_setup_true_lang-DOiFuJnH.js → ResourcePage.vue_vue_type_script_setup_true_lang-1iZtj3rh.js} +1 -1
- package/dist/{RoleEditor.vue_vue_type_script_setup_true_lang-CqSsNPCw.js → RoleEditor.vue_vue_type_script_setup_true_lang-BslSDDiM.js} +9 -9
- package/dist/{RolePage-zcUWpuDE.js → RolePage-C08ZUqw1.js} +9 -9
- package/dist/{RolesPage-C7_zWw-c.js → RolesPage-FOuY1VKg.js} +10 -10
- package/dist/{SectionNavigator.vue_vue_type_script_setup_true_lang-BlCx9dVL.js → SectionNavigator.vue_vue_type_script_setup_true_lang-DCTFxfPB.js} +2 -2
- package/dist/{SegmentedField.vue_vue_type_script_setup_true_lang-zv_AxpBn.js → SegmentedField.vue_vue_type_script_setup_true_lang-CLR6EvzO.js} +13 -12
- package/dist/{SelectField.vue_vue_type_script_setup_true_lang-CLkoPbGm.js → SelectField.vue_vue_type_script_setup_true_lang-D5xYofdb.js} +10 -9
- package/dist/{ServiceAccountDialog.vue_vue_type_script_setup_true_lang-C2D_D5Hi.js → ServiceAccountDialog.vue_vue_type_script_setup_true_lang-CDr4WNIb.js} +9 -9
- package/dist/{ServiceAccountRecord-BYxpHzTR.js → ServiceAccountRecord-kWwIQGZb.js} +12 -12
- package/dist/{ServiceAccountsList-BUuK-RUj.js → ServiceAccountsList-CKy9_YHP.js} +8 -8
- package/dist/{Sessions-Cm-Kilwl.js → Sessions-BDc8gdYH.js} +4 -4
- package/dist/{SettingsPage-Bavl0K-F.js → SettingsPage-t-8kmFVT.js} +13 -13
- package/dist/{SignIn-SfEhFiyM.js → SignIn-CqtkvtCZ.js} +7 -7
- package/dist/{SignInPage-BU0n2ehq.js → SignInPage-DcdNKZIb.js} +4 -4
- package/dist/{SignIns-Ahbn5cO6.js → SignIns-D4-nGu0B.js} +3 -3
- package/dist/{SwitchField.vue_vue_type_script_setup_true_lang-Ds4q0bbl.js → SwitchField.vue_vue_type_script_setup_true_lang-CLtcuofe.js} +15 -14
- package/dist/{TextField.vue_vue_type_script_setup_true_lang-CWIeeZRE.js → TextField.vue_vue_type_script_setup_true_lang-CVGh-p3J.js} +7 -6
- package/dist/{TextareaField.vue_vue_type_script_setup_true_lang-D2j4s96s.js → TextareaField.vue_vue_type_script_setup_true_lang-YxUlNHSk.js} +6 -5
- package/dist/{TimeField.vue_vue_type_script_setup_true_lang-C1mLvOkc.js → TimeField.vue_vue_type_script_setup_true_lang-DHNC_MLt.js} +30 -29
- package/dist/{Timestamp.vue_vue_type_script_setup_true_lang-jCXYFLtq.js → Timestamp.vue_vue_type_script_setup_true_lang-d_KuxWjH.js} +1 -1
- package/dist/{UserRecord-3pCKMHkq.js → UserRecord-CwZCr9Im.js} +10 -10
- package/dist/{UsersList-vw3aDpvo.js → UsersList-Cn19sFgv.js} +4 -4
- package/dist/access/index.js +4 -4
- package/dist/app/application.d.ts +2 -0
- package/dist/app/index.js +2 -2
- package/dist/app/validate.d.ts +3 -1
- package/dist/{application-CHPpOssP.js → application-CDSweJb9.js} +144 -142
- package/dist/collection/DynamicCollection.vue.d.ts +69 -0
- package/dist/collection/authors.d.ts +27 -0
- package/dist/collection/definition.d.ts +4 -4
- package/dist/collection/dynamicColumns.d.ts +13 -0
- package/dist/collection/index.d.ts +3 -0
- package/dist/collection/index.js +196 -142
- package/dist/config/index.d.ts +42 -0
- package/dist/config/index.js +12 -3
- package/dist/content/Panel.vue.d.ts +1 -1
- package/dist/content/index.js +2 -2
- package/dist/{contributions-9CPT-Z5v.js → contributions-B0x5x5xD.js} +1 -1
- package/dist/form/CommandDialog.vue.d.ts +1 -1
- package/dist/form/DateField.vue.d.ts +1 -1
- package/dist/form/DateTimeField.vue.d.ts +1 -1
- package/dist/form/FileField.vue.d.ts +1 -1
- package/dist/form/FormRow.vue.d.ts +2 -2
- package/dist/form/I18nField.vue.d.ts +2 -2
- package/dist/form/TextField.vue.d.ts +1 -1
- package/dist/form/TextareaField.vue.d.ts +2 -2
- package/dist/form/date/value.d.ts +21 -0
- package/dist/form/dynamic/DynamicForm.vue.d.ts +46 -0
- package/dist/form/dynamic/RepeatField.vue.d.ts +47 -0
- package/dist/form/dynamic/ResourceField.vue.d.ts +38 -0
- package/dist/form/dynamic/ResourcePickerList.vue.d.ts +12 -0
- package/dist/form/dynamic/RichTextField.vue.d.ts +40 -0
- package/dist/form/dynamic/localeMode.d.ts +5 -0
- package/dist/form/dynamic/resources.d.ts +34 -0
- package/dist/form/dynamic/schema.d.ts +73 -0
- package/dist/form/dynamic/validator.d.ts +30 -0
- package/dist/form/dynamic/visibility.d.ts +12 -0
- package/dist/form/index.d.ts +12 -0
- package/dist/form/index.js +2100 -1260
- package/dist/format/format.d.ts +8 -2
- package/dist/format/index.js +1 -1
- package/dist/format-C_HXlOYQ.js +136 -0
- package/dist/{guards-6fJxfUtk.js → guards-CNJ0ATVC.js} +1 -1
- package/dist/i18n/index.d.ts +14 -2
- package/dist/i18n/index.js +86 -75
- package/dist/i18n/messages.d.ts +10 -1
- package/dist/i18n/runtime.d.ts +3 -1
- package/dist/identity/index.js +3 -3
- package/dist/identity/profile/EmailChangeDialog.vue.d.ts +2 -2
- package/dist/identity/users/list.d.ts +1 -1
- package/dist/incidents/index.js +1 -1
- package/dist/{index-D9_xqF5g.js → index-1HS7O2-e.js} +9 -9
- package/dist/{index-nByFc1eL.js → index-BA2w8uwD.js} +86 -86
- package/dist/{index-Ct7W_gYE.js → index-SLJWm40T.js} +4 -4
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/modal/DiscardChangesModal.vue.d.ts +2 -2
- package/dist/modal/Modal.vue.d.ts +2 -2
- package/dist/modal/Sheet.vue.d.ts +2 -2
- package/dist/modules/identity/routes.d.ts +1 -1
- package/dist/modules/identity/schemas.d.ts +2 -2
- package/dist/{navigation-DMJ6akat.js → navigation-d-JAPBGA.js} +1 -1
- package/dist/{neighbors-BpypL3Wb.js → neighbors-Dg_LU9ry.js} +1 -1
- package/dist/notifications/index.js +1 -1
- package/dist/onboarding/index.js +1 -1
- package/dist/options-mOOX6JSS.js +214 -0
- package/dist/overlay/AlertDialog.vue.d.ts +3 -3
- package/dist/overlay/Menu.vue.d.ts +2 -2
- package/dist/overlay/PhotoViewer.vue.d.ts +2 -2
- package/dist/overlay/Popover.vue.d.ts +2 -2
- package/dist/page/SectionNavigator.vue.d.ts +1 -1
- package/dist/page/SectionPanel.vue.d.ts +1 -1
- package/dist/page/index.js +3 -3
- package/dist/phone/index.js +57 -56
- package/dist/platform/index.d.ts +10 -1
- package/dist/platform/index.js +16 -15
- package/dist/platform/platform.d.ts +4 -2
- package/dist/{platform-ORzRR3Tw.js → platform-DU9QFts8.js} +7 -6
- package/dist/playwright/config.d.ts +33 -0
- package/dist/playwright/index.d.ts +2 -0
- package/dist/playwright/index.js +192 -171
- package/dist/resource/index.js +1 -1
- package/dist/resources-BZLlAtoS.js +62 -0
- package/dist/router/index.js +3 -3
- package/dist/{rowLayout-QKfNHsML.js → rowLayout-PIuD7MGo.js} +2 -2
- package/dist/{sections-CSpJN0Z7.js → sections-BpiRLntE.js} +1 -1
- package/dist/{serverMessages-Ce8-MK4e.js → serverMessages-C_KkDvpT.js} +1 -1
- package/dist/shell/index.js +4 -4
- package/dist/state/NextStepPanel.vue.d.ts +63 -0
- package/dist/state/PhaseTiles.vue.d.ts +20 -0
- package/dist/state/PhaseTrack.vue.d.ts +48 -0
- package/dist/state/RequirementList.vue.d.ts +10 -0
- package/dist/state/TodoRow.vue.d.ts +52 -0
- package/dist/state/index.d.ts +9 -0
- package/dist/state/index.js +731 -126
- package/dist/state/phaseStep.d.ts +7 -0
- package/dist/state/phaseTile.d.ts +10 -0
- package/dist/state/requirementItem.d.ts +16 -0
- package/dist/state/todoRow.d.ts +8 -0
- package/dist/{state-QDaxntgR.js → state-z1iPF1DT.js} +1 -1
- package/dist/styles.css +1 -1
- package/dist/{suggestions-q_v3M7G6.js → suggestions-DeMgs_ki.js} +1 -1
- package/dist/testing/format.d.ts +1 -1
- package/dist/testing/index.js +31 -31
- package/dist/{useCommand-DAMgQ5NE.js → useCommand-DQKvro1n.js} +2 -2
- package/dist/{useGroupSheet-B-Hs4gNO.js → useGroupSheet-CRw3MUmX.js} +3 -3
- package/dist/{usePreferences-BfMXVbSO.js → usePreferences-DB29UTFD.js} +1 -1
- package/dist/{useRecordDialog-QPKFH1Ww.js → useRecordDialog-0azHxxvm.js} +1 -1
- package/dist/{useResourceForm-Oa6bk3NI.js → useResourceForm-zVuWerSn.js} +1 -1
- package/dist/{useTypedEntry-CITij2C_.js → useTypedEntry-BsMV66Yc.js} +46 -45
- package/package.json +6 -1
- package/dist/format-Cp1h0vsC.js +0 -125
- package/dist/options-B48UiYsG.js +0 -368
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { FormSchema, SchemaField } from "../form/dynamic/schema";
|
|
2
|
+
import type { FilterDescriptor } from "./filters";
|
|
3
|
+
/** The fields shown as columns: `only` (in its order), else every listable field of the schema. */
|
|
4
|
+
export declare function listedFields(schema: FormSchema, only?: readonly string[]): SchemaField[];
|
|
5
|
+
export declare const isSortable: (field: SchemaField) => boolean;
|
|
6
|
+
export declare const isFilterable: (field: SchemaField) => boolean;
|
|
7
|
+
/** The text of a cell value: a translated text (`{ hr, en }`) in `locale`, else the first language written; anything else as it is. */
|
|
8
|
+
export declare function textOf(value: unknown, locale: string): string;
|
|
9
|
+
/** What a select-like filter offers for a field; a boolean offers yes and no as "true" and "false". */
|
|
10
|
+
export declare function optionsOf(field: SchemaField, labels: {
|
|
11
|
+
yes: string;
|
|
12
|
+
no: string;
|
|
13
|
+
}): FilterDescriptor["options"];
|
|
@@ -3,6 +3,8 @@ export type { CollectionDefaults, CollectionDefinition, CollectionDefinitionInpu
|
|
|
3
3
|
export { useCollection } from "./useCollection";
|
|
4
4
|
export type { Collection, CollectionDisplay, LinkedQuery, SavedViewsHandle, UseCollectionOptions } from "./useCollection";
|
|
5
5
|
export type { CollectionLoader, ListMeta, ListPage, CollectionQuery, CollectionStateSource, LoadContext, SortDirection } from "./types";
|
|
6
|
+
export { authorOf } from "./authors";
|
|
7
|
+
export type { ResourceAuthor, ResourceMeta } from "./authors";
|
|
6
8
|
export { httpList, listLoader, listParams, readListPage, routeListLoader } from "./http";
|
|
7
9
|
export { LIST_CONTEXT_PARAM } from "./location";
|
|
8
10
|
export type { CollectionColumns, Column, ColumnKey, ColumnKind, ColumnValue, MobileRole, RowAction, SlotKey, TableColumns } from "./columns";
|
|
@@ -26,3 +28,4 @@ export type { CellSlots, CollectionSlots, RowsSlots } from "./slots";
|
|
|
26
28
|
export { createPicker } from "./picker";
|
|
27
29
|
export type { Picker, PickerOptions } from "./picker";
|
|
28
30
|
export { default as PickerModal } from "./PickerModal.vue";
|
|
31
|
+
export { default as DynamicCollection } from "./DynamicCollection.vue";
|
package/dist/collection/index.js
CHANGED
|
@@ -1,187 +1,241 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { a as
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import { _ as
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import { _ as
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
1
|
+
import { d as H } from "../http-D6qOS6xs.js";
|
|
2
|
+
import { D as Fe, h as $e, l as Ie, a as je, r as Ne, b as ze } from "../http-D6qOS6xs.js";
|
|
3
|
+
import { u as J, _ as K } from "../CollectionPage.vue_vue_type_script_setup_true_lang-Dr6nFNBB.js";
|
|
4
|
+
import { a as Ve } from "../CollectionPage.vue_vue_type_script_setup_true_lang-Dr6nFNBB.js";
|
|
5
|
+
import { L as Be } from "../state-z1iPF1DT.js";
|
|
6
|
+
import { a as Ge, u as He } from "../neighbors-Dg_LU9ry.js";
|
|
7
|
+
import { r as x } from "../route-goWMxDUN.js";
|
|
8
|
+
import { b as Ke, a as Xe } from "../rowLayout-PIuD7MGo.js";
|
|
9
|
+
import { _ as Qe } from "../DataTable.vue_vue_type_script_setup_true_lang-D372wlxR.js";
|
|
10
|
+
import { defineComponent as z, openBlock as c, createElementBlock as m, Fragment as S, renderList as g, createBlock as M, unref as k, withCtx as C, normalizeClass as O, createVNode as P, createCommentVNode as X, computed as v, useSlots as Z, createSlots as Q, renderSlot as W, normalizeProps as Y, guardReactiveProps as ee, toDisplayString as _ } from "vue";
|
|
11
|
+
import { _ as R } from "../Icon.vue_vue_type_script_lang-BhhsFYwp.js";
|
|
12
|
+
import { _ as te } from "../Tooltip.vue_vue_type_script_setup_true_lang-C1C1qeBj.js";
|
|
13
|
+
import { u as ne } from "../datePresets-DB13HHHd.js";
|
|
14
|
+
import { D as Ye } from "../datePresets-DB13HHHd.js";
|
|
15
|
+
import { _ as tt, h as nt } from "../Highlight.vue_vue_type_script_setup_true_lang-DZGBmwcX.js";
|
|
16
|
+
import { t as oe } from "../resources-BZLlAtoS.js";
|
|
17
|
+
import { _ as st, c as at } from "../resources-BZLlAtoS.js";
|
|
18
|
+
import { useI18n as se } from "vue-i18n";
|
|
19
|
+
function Ae(o, t) {
|
|
20
|
+
const s = o?.authors;
|
|
21
|
+
return t == null || !Array.isArray(s) ? null : s.find((a) => a.id === t) ?? null;
|
|
22
|
+
}
|
|
23
|
+
const w = {
|
|
24
|
+
index: x("GET", "/v1/saved-views"),
|
|
25
|
+
store: x("POST", "/v1/saved-views"),
|
|
26
|
+
delete: x("DELETE", "/v1/saved-views/:id")
|
|
27
|
+
}, F = ({ id: o, name: t, state: s }) => ({ id: o, name: t, state: s });
|
|
28
|
+
function Te(o) {
|
|
21
29
|
return {
|
|
22
|
-
async list(
|
|
23
|
-
return (await
|
|
30
|
+
async list(t, { signal: s }) {
|
|
31
|
+
return (await o.request(w.index, { list: t }, { signal: s })).data.map(F);
|
|
24
32
|
},
|
|
25
|
-
async save(
|
|
26
|
-
const
|
|
27
|
-
return
|
|
33
|
+
async save(t, s, a) {
|
|
34
|
+
const r = JSON.stringify({ ...a, view: a.view || void 0 });
|
|
35
|
+
return F((await o.request(w.store, { list_key: t, name: s, state: r })).data);
|
|
28
36
|
},
|
|
29
|
-
async remove(
|
|
30
|
-
await
|
|
37
|
+
async remove(t, s) {
|
|
38
|
+
await o.request(w.delete, { id: Number(s) });
|
|
31
39
|
}
|
|
32
40
|
};
|
|
33
41
|
}
|
|
34
|
-
function
|
|
35
|
-
const
|
|
36
|
-
let
|
|
37
|
-
const
|
|
38
|
-
let
|
|
39
|
-
return
|
|
42
|
+
function Le(o = {}) {
|
|
43
|
+
const t = new Map(Object.entries(o).map(([r, n]) => [r, [...n]]));
|
|
44
|
+
let s = 1;
|
|
45
|
+
const a = (r) => {
|
|
46
|
+
let n = t.get(r);
|
|
47
|
+
return n || t.set(r, n = []), n;
|
|
40
48
|
};
|
|
41
49
|
return {
|
|
42
|
-
async list(
|
|
43
|
-
return [...
|
|
50
|
+
async list(r) {
|
|
51
|
+
return [...a(r)];
|
|
44
52
|
},
|
|
45
|
-
async save(
|
|
46
|
-
const
|
|
47
|
-
return
|
|
53
|
+
async save(r, n, f) {
|
|
54
|
+
const u = a(r), y = u.findIndex((h) => h.name === n), b = { id: y === -1 ? `view-${s++}` : u[y].id, name: n, state: f };
|
|
55
|
+
return y === -1 ? u.push(b) : u[y] = b, b;
|
|
48
56
|
},
|
|
49
|
-
async remove(
|
|
50
|
-
const
|
|
51
|
-
|
|
57
|
+
async remove(r, n) {
|
|
58
|
+
const f = a(r), u = f.findIndex((y) => y.id === n);
|
|
59
|
+
u !== -1 && f.splice(u, 1);
|
|
52
60
|
}
|
|
53
61
|
};
|
|
54
62
|
}
|
|
55
|
-
const
|
|
63
|
+
const ae = {
|
|
56
64
|
key: 0,
|
|
57
65
|
class: "flex items-center justify-center gap-1",
|
|
58
66
|
"data-test": "row-actions"
|
|
59
|
-
},
|
|
67
|
+
}, re = ["href", "target", "rel", "aria-label", "data-action"], ie = ["aria-label", "data-action", "disabled", "onClick"], $ = "focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-border-focus", De = /* @__PURE__ */ z({
|
|
60
68
|
__name: "RowActions",
|
|
61
69
|
props: {
|
|
62
70
|
actions: {},
|
|
63
71
|
disabled: { type: Boolean, default: !1 }
|
|
64
72
|
},
|
|
65
|
-
setup(
|
|
66
|
-
const
|
|
67
|
-
return (
|
|
68
|
-
(c(!0),
|
|
69
|
-
key:
|
|
70
|
-
text:
|
|
73
|
+
setup(o) {
|
|
74
|
+
const t = o, s = (a) => a.tone === "critical" ? "text-status-danger-content hover:bg-status-danger-surface" : "text-content-link hover:bg-tint-soft";
|
|
75
|
+
return (a, r) => t.actions.length > 0 ? (c(), m("div", ae, [
|
|
76
|
+
(c(!0), m(S, null, g(t.actions, (n) => (c(), M(k(te), {
|
|
77
|
+
key: n.key,
|
|
78
|
+
text: n.label,
|
|
71
79
|
side: "left"
|
|
72
80
|
}, {
|
|
73
|
-
default:
|
|
74
|
-
|
|
81
|
+
default: C(() => [
|
|
82
|
+
n.href && !t.disabled ? (c(), m("a", {
|
|
75
83
|
key: 0,
|
|
76
|
-
href:
|
|
77
|
-
target:
|
|
78
|
-
rel:
|
|
79
|
-
"aria-label":
|
|
80
|
-
"data-action":
|
|
81
|
-
class:
|
|
84
|
+
href: n.href,
|
|
85
|
+
target: n.external ? "_blank" : void 0,
|
|
86
|
+
rel: n.external ? "noopener" : void 0,
|
|
87
|
+
"aria-label": n.label,
|
|
88
|
+
"data-action": n.key,
|
|
89
|
+
class: O(["inline-flex rounded-md p-1.5 transition-colors", [s(n), $]])
|
|
82
90
|
}, [
|
|
83
|
-
|
|
84
|
-
name:
|
|
91
|
+
P(k(R), {
|
|
92
|
+
name: n.icon,
|
|
85
93
|
size: 18
|
|
86
94
|
}, null, 8, ["name"])
|
|
87
|
-
], 10,
|
|
95
|
+
], 10, re)) : (c(), m("button", {
|
|
88
96
|
key: 1,
|
|
89
97
|
type: "button",
|
|
90
|
-
"aria-label":
|
|
91
|
-
"data-action":
|
|
92
|
-
disabled:
|
|
93
|
-
class:
|
|
94
|
-
onClick: (
|
|
98
|
+
"aria-label": n.label,
|
|
99
|
+
"data-action": n.key,
|
|
100
|
+
disabled: t.disabled,
|
|
101
|
+
class: O(["inline-flex cursor-pointer rounded-md p-1.5 transition-colors disabled:pointer-events-none disabled:opacity-40", [s(n), $]]),
|
|
102
|
+
onClick: (f) => n.onSelect?.()
|
|
95
103
|
}, [
|
|
96
|
-
|
|
97
|
-
name:
|
|
104
|
+
P(k(R), {
|
|
105
|
+
name: n.icon,
|
|
98
106
|
size: 18
|
|
99
107
|
}, null, 8, ["name"])
|
|
100
|
-
], 10,
|
|
108
|
+
], 10, ie))
|
|
101
109
|
]),
|
|
102
110
|
_: 2
|
|
103
111
|
}, 1032, ["text"]))), 128))
|
|
104
|
-
])) :
|
|
112
|
+
])) : X("", !0);
|
|
105
113
|
}
|
|
106
|
-
});
|
|
107
|
-
function
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
114
|
+
}), le = ["text", "number", "boolean", "select", "multi_select", "date", "datetime", "image", "document", "gallery"], ce = ["text", "number", "boolean", "select", "date", "datetime"], de = ["select", "boolean", "date", "datetime"];
|
|
115
|
+
function ue(o, t) {
|
|
116
|
+
return t ? t.flatMap((s) => o.fields.filter((a) => a.key === s)) : o.fields.filter((s) => le.includes(s.kind));
|
|
117
|
+
}
|
|
118
|
+
const I = (o) => ce.includes(o.kind) && !o.translatable, j = (o) => de.includes(o.kind) && !o.translatable;
|
|
119
|
+
function N(o, t) {
|
|
120
|
+
if (o == null) return "";
|
|
121
|
+
if (typeof o == "object" && !Array.isArray(o)) {
|
|
122
|
+
const s = o, a = s[t];
|
|
123
|
+
return typeof a == "string" && a !== "" ? a : Object.values(s).find((r) => typeof r == "string" && r !== "") ?? "";
|
|
113
124
|
}
|
|
114
|
-
return
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
e = s, a.value = { open: !0, options: o ?? {} };
|
|
119
|
-
});
|
|
120
|
-
},
|
|
121
|
-
select: (o) => i(o),
|
|
122
|
-
cancel: () => i(null)
|
|
123
|
-
};
|
|
125
|
+
return String(o);
|
|
126
|
+
}
|
|
127
|
+
function me(o, t) {
|
|
128
|
+
return o.kind === "boolean" ? [{ value: "true", label: t.yes }, { value: "false", label: t.no }] : (o.options ?? []).map((s) => ({ value: s.value, label: s.label }));
|
|
124
129
|
}
|
|
125
|
-
const
|
|
126
|
-
__name: "
|
|
130
|
+
const ye = { key: 0 }, pe = ["src"], fe = { key: 2 }, ke = { key: 3 }, be = { key: 4 }, Oe = /* @__PURE__ */ z({
|
|
131
|
+
__name: "DynamicCollection",
|
|
127
132
|
props: {
|
|
128
|
-
|
|
129
|
-
|
|
133
|
+
schema: {},
|
|
134
|
+
id: {},
|
|
135
|
+
load: {},
|
|
136
|
+
title: {},
|
|
130
137
|
description: { default: void 0 },
|
|
131
|
-
|
|
138
|
+
icon: { default: void 0 },
|
|
139
|
+
actions: { default: () => [] },
|
|
140
|
+
recordRoute: { type: Function, default: void 0 },
|
|
141
|
+
rowActions: { type: Function, default: void 0 },
|
|
142
|
+
state: { default: () => ({ kind: "url", key: "q" }) },
|
|
143
|
+
titleField: { default: void 0 },
|
|
144
|
+
columns: { default: void 0 },
|
|
145
|
+
thumbnail: { default: void 0 },
|
|
146
|
+
locale: { default: void 0 }
|
|
132
147
|
},
|
|
133
|
-
setup(
|
|
134
|
-
const
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
148
|
+
setup(o) {
|
|
149
|
+
const t = o, { t: s, locale: a } = se(), r = v(() => t.locale ?? a.value), n = ue(t.schema, t.columns), f = t.titleField ?? n.find((e) => e.kind === "text")?.key, u = v(() => ({ yes: s("core.form.yes"), no: s("core.form.no") })), y = H({
|
|
150
|
+
id: t.id,
|
|
151
|
+
stateVersion: 1,
|
|
152
|
+
load: t.load,
|
|
153
|
+
key: (e) => e.id,
|
|
154
|
+
query: { sorts: n.filter(I).map((e) => e.key), filters: n.filter(j).map((e) => e.key) }
|
|
155
|
+
}), b = new Map(n.filter((e) => e.kind === "date" || e.kind === "datetime").map((e) => [e.key, ne(e.key, e.label)])), h = v(() => n.filter(j).map((e) => b.get(e.key)?.value ?? { key: e.key, label: e.label, type: "select", options: me(e, u.value) })), E = (e, i) => e.options?.find((l) => l.value === i)?.label ?? String(i ?? ""), A = v(() => n.map((e) => {
|
|
156
|
+
const i = { key: e.key, label: e.label, ...I(e) ? { sort: e.key } : {} };
|
|
157
|
+
if (e.key === f) return { ...i, kind: "identity", title: (l) => N(l[e.key], r.value) };
|
|
158
|
+
switch (e.kind) {
|
|
159
|
+
case "number":
|
|
160
|
+
return { ...i, kind: "number" };
|
|
161
|
+
case "date":
|
|
162
|
+
return { ...i, kind: "timestamp", precision: "date" };
|
|
163
|
+
case "datetime":
|
|
164
|
+
return { ...i, kind: "timestamp", precision: "dateTime" };
|
|
165
|
+
case "boolean":
|
|
166
|
+
return { ...i, kind: "badge", tone: (l) => l[e.key] === !0 ? "positive" : "neutral", text: (l) => l[e.key] === !0 ? u.value.yes : u.value.no };
|
|
167
|
+
case "select":
|
|
168
|
+
return { ...i, kind: "badge", tone: () => "neutral", text: (l) => E(e, l[e.key]) };
|
|
169
|
+
case "text":
|
|
170
|
+
return e.translatable ? { ...i, kind: "custom" } : { ...i, kind: "text" };
|
|
171
|
+
default:
|
|
172
|
+
return { ...i, kind: "custom" };
|
|
173
|
+
}
|
|
174
|
+
})), V = J(y, {
|
|
175
|
+
columns: A,
|
|
176
|
+
filters: h,
|
|
177
|
+
state: t.state,
|
|
178
|
+
...t.recordRoute ? { recordRoute: t.recordRoute } : {}
|
|
179
|
+
}), T = (e) => `cell-${e.replace(/\./g, "_")}`, L = Z(), q = v(() => A.value.filter((e) => e.kind === "custom" && !(T(e.key) in L))), B = () => Object.keys(L), U = (e) => n.find((i) => i.key === e), D = (e) => Array.isArray(e) ? e : [];
|
|
180
|
+
return (e, i) => (c(), M(K, {
|
|
181
|
+
collection: k(V),
|
|
182
|
+
title: t.title,
|
|
183
|
+
description: t.description,
|
|
184
|
+
icon: t.icon,
|
|
185
|
+
actions: t.actions,
|
|
186
|
+
"row-actions": t.rowActions
|
|
187
|
+
}, Q({ _: 2 }, [
|
|
188
|
+
g(B(), (l) => ({
|
|
189
|
+
name: l,
|
|
190
|
+
fn: C((p) => [
|
|
191
|
+
W(e.$slots, l, Y(ee(p ?? {})))
|
|
192
|
+
])
|
|
193
|
+
})),
|
|
194
|
+
g(q.value, (l) => ({
|
|
195
|
+
name: T(l.key),
|
|
196
|
+
fn: C(({ item: p }) => [
|
|
197
|
+
(c(!0), m(S, null, g([U(l.key)], (d) => (c(), m(S, {
|
|
198
|
+
key: d.key
|
|
199
|
+
}, [
|
|
200
|
+
d.kind === "text" ? (c(), m("span", ye, _(k(N)(p[d.key], r.value)), 1)) : d.kind === "image" && t.thumbnail && p[d.key] != null ? (c(), m("img", {
|
|
201
|
+
key: 1,
|
|
202
|
+
src: k(oe)({ thumbnail: t.thumbnail }, p[d.key]),
|
|
203
|
+
alt: "",
|
|
204
|
+
class: "size-10 rounded object-cover",
|
|
205
|
+
loading: "lazy"
|
|
206
|
+
}, null, 8, pe)) : d.kind === "gallery" ? (c(), m("span", fe, _(D(p[d.key]).length || ""), 1)) : d.kind === "multi_select" ? (c(), m("span", ke, _(D(p[d.key]).map((G) => E(d, G)).join(", ")), 1)) : (c(), m("span", be, _(p[d.key] ?? ""), 1))
|
|
207
|
+
], 64))), 128))
|
|
208
|
+
])
|
|
209
|
+
}))
|
|
210
|
+
]), 1032, ["collection", "title", "description", "icon", "actions", "row-actions"]));
|
|
159
211
|
}
|
|
160
212
|
});
|
|
161
213
|
export {
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
214
|
+
Ke as CollectionCell,
|
|
215
|
+
K as CollectionPage,
|
|
216
|
+
Ve as CollectionTable,
|
|
217
|
+
Ye as DATE_PRESETS,
|
|
218
|
+
Fe as DEFAULT_PAGE_SIZES,
|
|
219
|
+
Qe as DataTable,
|
|
220
|
+
Oe as DynamicCollection,
|
|
221
|
+
tt as Highlight,
|
|
222
|
+
Be as LIST_CONTEXT_PARAM,
|
|
223
|
+
st as PickerModal,
|
|
224
|
+
Xe as RecordIdentity,
|
|
225
|
+
De as RowActions,
|
|
226
|
+
Ae as authorOf,
|
|
227
|
+
Le as createMemorySavedViews,
|
|
228
|
+
at as createPicker,
|
|
229
|
+
H as defineCollection,
|
|
230
|
+
nt as highlightParts,
|
|
231
|
+
$e as httpList,
|
|
232
|
+
Ie as listLoader,
|
|
233
|
+
je as listParams,
|
|
234
|
+
Ne as readListPage,
|
|
235
|
+
ze as routeListLoader,
|
|
236
|
+
Te as serverSavedViews,
|
|
237
|
+
J as useCollection,
|
|
238
|
+
Ge as useCollectionBack,
|
|
239
|
+
He as useCollectionNeighbors,
|
|
240
|
+
ne as useDatePresetFilter
|
|
187
241
|
};
|
package/dist/config/index.d.ts
CHANGED
|
@@ -57,6 +57,28 @@ export interface RouteAccessConfig {
|
|
|
57
57
|
/** Files (by path from the config's folder) that are not scanned: scripts, docs, e2e. Tests are never scanned. */
|
|
58
58
|
exclude?: RegExp;
|
|
59
59
|
}
|
|
60
|
+
/** A rule of the application's own as data: `forbidden[]`. A file (comments cut out, tests never) with a line `pattern` matches breaks it. */
|
|
61
|
+
export interface ForbiddenRuleConfig {
|
|
62
|
+
/** The rule's name: in the message and the key of its allowlist (`allow[id]`, a ratchet). */
|
|
63
|
+
id: string;
|
|
64
|
+
/** Matched line by line. */
|
|
65
|
+
pattern: RegExp;
|
|
66
|
+
/** What to do instead; follows the quoted line. */
|
|
67
|
+
message: string;
|
|
68
|
+
/** Files (by path from the config's folder) that are not scanned. Default: `e2e`, `review`, `scripts`, `tests`, `docs`, `templates` and `static` folders; replaces that default. */
|
|
69
|
+
exclude?: RegExp;
|
|
70
|
+
}
|
|
71
|
+
/** The rule `permission-texts`: the generated permission ids and the texts of the locale files agree. */
|
|
72
|
+
export interface PermissionTextsConfig {
|
|
73
|
+
/** The generated permissions file (a TypeScript union of string literals), relative to the config's folder. */
|
|
74
|
+
generated: string;
|
|
75
|
+
/** The message keys every id needs, `"<namespace>.{id}"`: `policies.{id}` is the file `i18n/policies/<locale>.json`, nested by dots (`"crm": { "lead:view": "…" }` holds `crm.lead:view`). */
|
|
76
|
+
keys: string[];
|
|
77
|
+
/** The locale file names to check (`hr`, `en`, ...). */
|
|
78
|
+
locales: string[];
|
|
79
|
+
/** The folder of the namespaces, relative to the config's folder. Default `"i18n"`. */
|
|
80
|
+
dir?: string;
|
|
81
|
+
}
|
|
60
82
|
export interface ArchitectureConfig {
|
|
61
83
|
/** The folder of the features, relative to the config file (default "features"). */
|
|
62
84
|
featuresDir?: string;
|
|
@@ -88,6 +110,10 @@ export interface ArchitectureConfig {
|
|
|
88
110
|
copy?: CopyRuleConfig;
|
|
89
111
|
/** Switches on `no-route-policy`; its allowlist is `allow["no-route-policy"]`. */
|
|
90
112
|
routeAccess?: RouteAccessConfig;
|
|
113
|
+
/** Switches on `permission-texts`: every id of the generated permissions has each key in each locale, and no locale keeps a key for an id that is gone. */
|
|
114
|
+
permissions?: PermissionTextsConfig;
|
|
115
|
+
/** The application's own text rules as data; each is a rule with an allowlist. */
|
|
116
|
+
forbidden?: ForbiddenRuleConfig[];
|
|
91
117
|
/** The application's own rules, run on every source file. */
|
|
92
118
|
rules?: ArchitectureRule[];
|
|
93
119
|
/** A document to name after a rule's message, by rule: "shared-layer", "api-error" or a pack rule's id. */
|
|
@@ -115,3 +141,19 @@ export interface VueCoreConfig {
|
|
|
115
141
|
}
|
|
116
142
|
/** Types a `vue-core.config.mjs` (`export default defineConfig({ … })`); returns the config unchanged. */
|
|
117
143
|
export declare function defineConfig(config: VueCoreConfig): VueCoreConfig;
|
|
144
|
+
export interface VitestDefaultsOptions {
|
|
145
|
+
/** The zone the unit tests run in, so a test of local calendar dates does not depend on the shell's. Sets `TZ`; unset leaves it alone. */
|
|
146
|
+
timezone?: string;
|
|
147
|
+
/** Files run before every test file (the application's `tests/setup.ts`). Default none. */
|
|
148
|
+
setupFiles?: string[];
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* The `test` block of an application's vitest config: jest-style globals, a happy-dom document, the Playwright folders (`e2e/`, `review/`)
|
|
152
|
+
* left to Playwright, and `TZ` pinned. Spread more over it, or pass it whole: `test: vitestDefaults({ timezone: "Europe/Zagreb" })`.
|
|
153
|
+
*/
|
|
154
|
+
export declare function vitestDefaults(options?: VitestDefaultsOptions): {
|
|
155
|
+
globals: boolean;
|
|
156
|
+
environment: string;
|
|
157
|
+
exclude: string[];
|
|
158
|
+
setupFiles: string[];
|
|
159
|
+
};
|
package/dist/config/index.js
CHANGED
|
@@ -1,6 +1,15 @@
|
|
|
1
|
-
function e
|
|
2
|
-
return
|
|
1
|
+
function n(e) {
|
|
2
|
+
return e;
|
|
3
|
+
}
|
|
4
|
+
function t(e = {}) {
|
|
5
|
+
return e.timezone && (process.env.TZ = e.timezone), {
|
|
6
|
+
globals: !0,
|
|
7
|
+
environment: "happy-dom",
|
|
8
|
+
exclude: ["**/node_modules/**", "**/dist/**", "e2e/**", "review/**"],
|
|
9
|
+
setupFiles: e.setupFiles ?? []
|
|
10
|
+
};
|
|
3
11
|
}
|
|
4
12
|
export {
|
|
5
|
-
|
|
13
|
+
n as defineConfig,
|
|
14
|
+
t as vitestDefaults
|
|
6
15
|
};
|
|
@@ -41,8 +41,8 @@ declare const __VLS_component: import("vue").DefineComponent<__VLS_PublicProps,
|
|
|
41
41
|
icon: import("../icon").IconName;
|
|
42
42
|
presentation: "card" | "section";
|
|
43
43
|
subtitle: string;
|
|
44
|
-
flush: boolean;
|
|
45
44
|
collapsible: boolean;
|
|
45
|
+
flush: boolean;
|
|
46
46
|
headingLevel: 2 | 3 | 4;
|
|
47
47
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
48
48
|
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
|
package/dist/content/index.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { defineComponent as w, computed as h, openBlock as t, createElementBlock as o, Fragment as S, renderList as M, toDisplayString as b, createCommentVNode as v, createElementVNode as u, normalizeClass as y, createVNode as U, unref as g, renderSlot as k, createTextVNode as V, createBlock as $, useModel as K, useId as N, useTemplateRef as R, watch as I, nextTick as Z, withModifiers as G, withDirectives as H, vModelText as O, mergeModels as D, ref as A, withCtx as z, createSlots as P, resolveDynamicComponent as q, normalizeStyle as E } from "vue";
|
|
2
|
-
import { u as L, t as J } from "../format-
|
|
2
|
+
import { u as L, t as J } from "../format-C_HXlOYQ.js";
|
|
3
3
|
import { _ as C } from "../Icon.vue_vue_type_script_lang-BhhsFYwp.js";
|
|
4
4
|
import { _ as Q } from "../Avatar.vue_vue_type_script_setup_true_lang-BPj_fkJR.js";
|
|
5
5
|
import { i as Ne } from "../Avatar.vue_vue_type_script_setup_true_lang-BPj_fkJR.js";
|
|
6
6
|
import { useI18n as j } from "vue-i18n";
|
|
7
7
|
import { _ as W } from "../KeyValue.vue_vue_type_script_setup_true_lang-wcZcvnow.js";
|
|
8
8
|
import { _ as Ie } from "../Panel.vue_vue_type_script_setup_true_lang-D_Wg42hu.js";
|
|
9
|
-
import { _ as Ge } from "../Timestamp.vue_vue_type_script_setup_true_lang-
|
|
9
|
+
import { _ as Ge } from "../Timestamp.vue_vue_type_script_setup_true_lang-d_KuxWjH.js";
|
|
10
10
|
const X = ["aria-label"], Y = {
|
|
11
11
|
key: 0,
|
|
12
12
|
class: "py-1.5 text-center text-caption font-semibold text-content-muted",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { defineComponent as i, h as l } from "vue";
|
|
2
2
|
import { d as u } from "./context-Ch1r4fdN.js";
|
|
3
|
-
import { h as a } from "./platform-
|
|
3
|
+
import { h as a } from "./platform-DU9QFts8.js";
|
|
4
4
|
function h(o, n) {
|
|
5
5
|
const t = o.map(({ contribution: e }) => e).sort((e, r) => (e.order ?? 0) - (r.order ?? 0));
|
|
6
6
|
return {
|
|
@@ -59,9 +59,9 @@ declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}
|
|
|
59
59
|
message: string;
|
|
60
60
|
size: "sm" | "md" | "lg";
|
|
61
61
|
subtitle: string;
|
|
62
|
+
doneLabel: string;
|
|
62
63
|
editable: boolean;
|
|
63
64
|
fieldLabel: (field: string) => string;
|
|
64
|
-
doneLabel: string;
|
|
65
65
|
confirmDisabled: boolean;
|
|
66
66
|
busyLabel: string;
|
|
67
67
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
@@ -43,9 +43,9 @@ declare const __VLS_component: import("vue").DefineComponent<__VLS_PublicProps,
|
|
|
43
43
|
error: string;
|
|
44
44
|
required: boolean;
|
|
45
45
|
presentation: "control" | "value";
|
|
46
|
+
labelHidden: boolean;
|
|
46
47
|
min: Day;
|
|
47
48
|
max: Day;
|
|
48
|
-
labelHidden: boolean;
|
|
49
49
|
hint: string;
|
|
50
50
|
editable: boolean;
|
|
51
51
|
lockedReason: string;
|
|
@@ -43,9 +43,9 @@ declare const __VLS_component: import("vue").DefineComponent<__VLS_PublicProps,
|
|
|
43
43
|
error: string;
|
|
44
44
|
required: boolean;
|
|
45
45
|
presentation: "control" | "value";
|
|
46
|
+
labelHidden: boolean;
|
|
46
47
|
min: string;
|
|
47
48
|
max: string;
|
|
48
|
-
labelHidden: boolean;
|
|
49
49
|
hint: string;
|
|
50
50
|
editable: boolean;
|
|
51
51
|
lockedReason: string;
|
|
@@ -35,8 +35,8 @@ declare const __VLS_component: import("vue").DefineComponent<__VLS_PublicProps,
|
|
|
35
35
|
required: boolean;
|
|
36
36
|
presentation: "control" | "value";
|
|
37
37
|
accept: readonly string[];
|
|
38
|
-
variant: "button" | "dropzone";
|
|
39
38
|
labelHidden: boolean;
|
|
39
|
+
variant: "button" | "dropzone";
|
|
40
40
|
hint: string;
|
|
41
41
|
editable: boolean;
|
|
42
42
|
lockedReason: string;
|
|
@@ -53,10 +53,10 @@ declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}
|
|
|
53
53
|
error: string;
|
|
54
54
|
required: boolean;
|
|
55
55
|
value: string | number | null;
|
|
56
|
-
|
|
56
|
+
layout: FormRowLayout;
|
|
57
57
|
labelHidden: boolean;
|
|
58
|
+
for: string;
|
|
58
59
|
subId: string;
|
|
59
|
-
layout: FormRowLayout;
|
|
60
60
|
errorId: string;
|
|
61
61
|
indent: number;
|
|
62
62
|
labelLines: 1 | 2 | 3;
|
|
@@ -39,8 +39,9 @@ declare const __VLS_component: import("vue").DefineComponent<__VLS_PublicProps,
|
|
|
39
39
|
error: string;
|
|
40
40
|
required: boolean;
|
|
41
41
|
presentation: "control" | "value";
|
|
42
|
-
|
|
42
|
+
maxLength: number;
|
|
43
43
|
labelHidden: boolean;
|
|
44
|
+
rows: number;
|
|
44
45
|
hint: string;
|
|
45
46
|
editable: boolean;
|
|
46
47
|
lockedReason: string;
|
|
@@ -48,7 +49,6 @@ declare const __VLS_component: import("vue").DefineComponent<__VLS_PublicProps,
|
|
|
48
49
|
defaultLocale: string;
|
|
49
50
|
requiredLocales: readonly string[];
|
|
50
51
|
multiline: boolean;
|
|
51
|
-
maxLength: number;
|
|
52
52
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
53
53
|
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
|
|
54
54
|
export default _default;
|
|
@@ -77,6 +77,7 @@ declare const __VLS_component: import("vue").DefineComponent<__VLS_PublicProps,
|
|
|
77
77
|
width: Exclude<ControlWidth, "content">;
|
|
78
78
|
prefix: string;
|
|
79
79
|
presentation: "control" | "value";
|
|
80
|
+
maxLength: number;
|
|
80
81
|
labelHidden: boolean;
|
|
81
82
|
hint: string;
|
|
82
83
|
editable: boolean;
|
|
@@ -87,7 +88,6 @@ declare const __VLS_component: import("vue").DefineComponent<__VLS_PublicProps,
|
|
|
87
88
|
suggestions: readonly TextSuggestion[] | ((query: string, context: {
|
|
88
89
|
signal: AbortSignal;
|
|
89
90
|
}) => Promise<readonly TextSuggestion[]>);
|
|
90
|
-
maxLength: number;
|
|
91
91
|
autocomplete: string;
|
|
92
92
|
suggestionsMinLength: number;
|
|
93
93
|
suggestionsDebounce: number;
|