@xwiki/cristal-dsvuetify 0.24.0 → 0.25.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/components/vuetifyDesignSystemLoader.d.ts +1 -1
- package/dist/index-D7wZ4Kvq.js +25979 -0
- package/dist/index-D7wZ4Kvq.js.map +1 -0
- package/dist/index.es-BOA77_Kh.js +10 -0
- package/dist/index.es-BOA77_Kh.js.map +1 -0
- package/dist/index.es.js +8 -12
- package/dist/index.umd.js +13 -19
- package/dist/index.umd.js.map +1 -1
- package/dist/vue/form/x-checkbox.vue.d.ts +1 -1
- package/dist/vue/form/x-file-input.vue.d.ts +1 -1
- package/dist/vue/form/x-navigation-tree-select.vue.d.ts +2 -2
- package/dist/vue/form/x-select.vue.d.ts +1 -1
- package/dist/vue/form/x-text-field.vue.d.ts +1 -1
- package/dist/vue/x-alert.vue.d.ts +1 -1
- package/dist/vue/x-avatar.vue.d.ts +1 -1
- package/dist/vue/x-breadcrumb.vue.d.ts +1 -1
- package/dist/vue/x-btn.vue.d.ts +1 -1
- package/dist/vue/x-menu-item.vue.d.ts +1 -1
- package/dist/vue/x-navigation-tree.vue.d.ts +1 -1
- package/dist/vue/x-tab-panel.vue.d.ts +1 -1
- package/dist/vue/x-tab.vue.d.ts +1 -1
- package/dist/vue/x-tree.vue.d.ts +3 -3
- package/dist/{x-alert-YX1txXZY.js → x-alert-C1NRkhdt.js} +6 -6
- package/dist/x-alert-C1NRkhdt.js.map +1 -0
- package/dist/x-avatar-B5IoAQPQ.js.map +1 -1
- package/dist/{x-breadcrumb-DiDfmxr5.js → x-breadcrumb-DaJw0U-E.js} +5 -5
- package/dist/{x-breadcrumb-DiDfmxr5.js.map → x-breadcrumb-DaJw0U-E.js.map} +1 -1
- package/dist/x-btn-DzH2bk-f.js.map +1 -1
- package/dist/{x-checkbox-DoxVAidm.js → x-checkbox-CN6QxF3B.js} +2 -2
- package/dist/{x-checkbox-DoxVAidm.js.map → x-checkbox-CN6QxF3B.js.map} +1 -1
- package/dist/{x-file-input-B50TiQaF.js → x-file-input-CkjbGsMG.js} +2 -2
- package/dist/x-file-input-CkjbGsMG.js.map +1 -0
- package/dist/{x-form-CMwcPIyL.js → x-form-dk8EltHS.js} +2 -2
- package/dist/{x-form-CMwcPIyL.js.map → x-form-dk8EltHS.js.map} +1 -1
- package/dist/x-menu-item-Ph5-wwcR.js.map +1 -1
- package/dist/{x-navigation-tree-CSpekTTC.js → x-navigation-tree-BkJKd5J2.js} +48 -49
- package/dist/x-navigation-tree-BkJKd5J2.js.map +1 -0
- package/dist/{x-navigation-tree-select-DgyGTYDy.js → x-navigation-tree-select-VRsQSFA3.js} +26 -27
- package/dist/x-navigation-tree-select-VRsQSFA3.js.map +1 -0
- package/dist/{x-select-D2T4qd71.js → x-select-CpWujZTj.js} +2 -2
- package/dist/x-select-CpWujZTj.js.map +1 -0
- package/dist/x-tab-B8YFmNK2.js.map +1 -1
- package/dist/x-tab-panel-B7a_xbQd.js.map +1 -1
- package/dist/{x-text-field-DoGMe9Qc.js → x-text-field-wiH4MWRR.js} +2 -2
- package/dist/x-text-field-wiH4MWRR.js.map +1 -0
- package/dist/{x-tree-DFzX3ffS.js → x-tree-CkUElkU9.js} +3 -3
- package/dist/x-tree-CkUElkU9.js.map +1 -0
- package/package.json +16 -16
- package/src/components/componentsInit.ts +1 -1
- package/src/components/vuetifyDesignSystemLoader.ts +2 -2
- package/src/vue/form/x-checkbox.vue +1 -1
- package/src/vue/form/x-file-input.vue +2 -2
- package/src/vue/form/x-navigation-tree-select.vue +7 -7
- package/src/vue/form/x-select.vue +1 -1
- package/src/vue/form/x-text-field.vue +1 -1
- package/src/vue/x-alert.vue +1 -1
- package/src/vue/x-avatar.vue +1 -1
- package/src/vue/x-breadcrumb.vue +1 -1
- package/src/vue/x-btn.vue +1 -1
- package/src/vue/x-menu-item.vue +1 -1
- package/src/vue/x-navigation-tree.vue +7 -7
- package/src/vue/x-tab-panel.vue +1 -1
- package/src/vue/x-tab.vue +1 -1
- package/src/vue/x-tree.vue +1 -1
- package/CHANGELOG.md +0 -266
- package/dist/index-CuRY2kJg.js +0 -22937
- package/dist/index-CuRY2kJg.js.map +0 -1
- package/dist/x-alert-YX1txXZY.js.map +0 -1
- package/dist/x-file-input-B50TiQaF.js.map +0 -1
- package/dist/x-navigation-tree-CSpekTTC.js.map +0 -1
- package/dist/x-navigation-tree-select-DgyGTYDy.js.map +0 -1
- package/dist/x-select-D2T4qd71.js.map +0 -1
- package/dist/x-text-field-DoGMe9Qc.js.map +0 -1
- package/dist/x-tree-DFzX3ffS.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { SpaceReference, DocumentReference } from '@xwiki/
|
|
2
|
-
import { NavigationTreeSelectProps } from '@xwiki/
|
|
1
|
+
import { SpaceReference, DocumentReference } from '@xwiki/platform-model-api';
|
|
2
|
+
import { NavigationTreeSelectProps } from '@xwiki/platform-dsapi';
|
|
3
3
|
type __VLS_Props = NavigationTreeSelectProps;
|
|
4
4
|
type __VLS_PublicProps = {
|
|
5
5
|
modelValue?: SpaceReference | DocumentReference;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { AvatarProps } from '@xwiki/
|
|
1
|
+
import { AvatarProps } from '@xwiki/platform-dsapi';
|
|
2
2
|
declare const _default: import('vue').DefineComponent<AvatarProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<AvatarProps> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
3
3
|
export default _default;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { BreadcrumbProps } from '@xwiki/
|
|
1
|
+
import { BreadcrumbProps } from '@xwiki/platform-dsapi';
|
|
2
2
|
declare const _default: import('vue').DefineComponent<BreadcrumbProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<BreadcrumbProps> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
3
3
|
export default _default;
|
package/dist/vue/x-btn.vue.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { NavigationTreeProps } from '@xwiki/
|
|
1
|
+
import { NavigationTreeProps } from '@xwiki/platform-dsapi';
|
|
2
2
|
declare const _default: import('vue').DefineComponent<NavigationTreeProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<NavigationTreeProps> & Readonly<{}>, {
|
|
3
3
|
includeTerminals: boolean;
|
|
4
4
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
package/dist/vue/x-tab.vue.d.ts
CHANGED
package/dist/vue/x-tree.vue.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TreeProps } from '@xwiki/
|
|
1
|
+
import { TreeProps } from '@xwiki/platform-dsapi';
|
|
2
2
|
type __VLS_Props = TreeProps;
|
|
3
3
|
declare const opened: import('vue').ModelRef<string[], string, string[], string[]>;
|
|
4
4
|
type __VLS_PublicProps = {
|
|
@@ -6,10 +6,10 @@ type __VLS_PublicProps = {
|
|
|
6
6
|
"activated"?: string | undefined;
|
|
7
7
|
} & __VLS_Props;
|
|
8
8
|
declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
9
|
-
"update:opened": (value: string[]) => any;
|
|
10
9
|
"update:activated": (value: string | undefined) => any;
|
|
10
|
+
"update:opened": (value: string[]) => any;
|
|
11
11
|
}, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
12
|
-
"onUpdate:opened"?: ((value: string[]) => any) | undefined;
|
|
13
12
|
"onUpdate:activated"?: ((value: string | undefined) => any) | undefined;
|
|
13
|
+
"onUpdate:opened"?: ((value: string[]) => any) | undefined;
|
|
14
14
|
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
15
15
|
export default _default;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { defineComponent as f, resolveComponent as o, createBlock as n, openBlock as t, normalizeClass as u, withCtx as s, createElementBlock as a, createCommentVNode as r, renderSlot as x, Fragment as y, renderList as
|
|
2
|
-
import { _ as
|
|
1
|
+
import { defineComponent as f, resolveComponent as o, createBlock as n, openBlock as t, normalizeClass as u, withCtx as s, createElementBlock as a, createCommentVNode as r, renderSlot as x, Fragment as y, renderList as b, createTextVNode as k, toDisplayString as c } from "vue";
|
|
2
|
+
import { _ as C } from "./_plugin-vue_export-helper-CHgC5LLL.js";
|
|
3
3
|
const p = { key: 0 }, v = { key: 1 }, _ = /* @__PURE__ */ f({
|
|
4
4
|
__name: "x-alert",
|
|
5
5
|
props: {
|
|
@@ -22,14 +22,14 @@ const p = { key: 0 }, v = { key: 1 }, _ = /* @__PURE__ */ f({
|
|
|
22
22
|
class: u({ "flat-corners": e.flatCorners })
|
|
23
23
|
}, {
|
|
24
24
|
default: s(() => [
|
|
25
|
-
(t(!0), a(y, null,
|
|
25
|
+
(t(!0), a(y, null, b(e.actions, (l) => (t(), n(d, {
|
|
26
26
|
key: l.name,
|
|
27
27
|
size: "small",
|
|
28
28
|
variant: "text",
|
|
29
29
|
onClick: l.callback
|
|
30
30
|
}, {
|
|
31
31
|
default: s(() => [
|
|
32
|
-
|
|
32
|
+
k(c(l.name), 1)
|
|
33
33
|
]),
|
|
34
34
|
_: 2
|
|
35
35
|
}, 1032, ["onClick"]))), 128)),
|
|
@@ -41,8 +41,8 @@ const p = { key: 0 }, v = { key: 1 }, _ = /* @__PURE__ */ f({
|
|
|
41
41
|
}, 8, ["closable", "title", "type", "text", "class"]);
|
|
42
42
|
};
|
|
43
43
|
}
|
|
44
|
-
}), z = /* @__PURE__ */
|
|
44
|
+
}), z = /* @__PURE__ */ C(_, [["__scopeId", "data-v-9b732fa3"]]);
|
|
45
45
|
export {
|
|
46
46
|
z as default
|
|
47
47
|
};
|
|
48
|
-
//# sourceMappingURL=x-alert-
|
|
48
|
+
//# sourceMappingURL=x-alert-C1NRkhdt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"x-alert-C1NRkhdt.js","sources":["../src/vue/x-alert.vue"],"sourcesContent":["<!--\n See the LICENSE file distributed with this work for additional\n information regarding copyright ownership.\n\n This is free software; you can redistribute it and/or modify it\n under the terms of the GNU Lesser General Public License as\n published by the Free Software Foundation; either version 2.1 of\n the License, or (at your option) any later version.\n\n This software is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public\n License along with this software; if not, write to the Free\n Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n<script setup lang=\"ts\">\nimport type { AlertProps } from \"@xwiki/platform-dsapi\";\n\ndefineProps<AlertProps>();\n</script>\n<template>\n <v-alert\n :closable=\"closable\"\n :title=\"title\"\n :type=\"type\"\n :text=\"description\"\n :class=\"{ 'flat-corners': flatCorners }\"\n >\n <x-btn\n v-for=\"action of actions\"\n :key=\"action.name\"\n size=\"small\"\n variant=\"text\"\n @click=\"action.callback\"\n >{{ action.name }}</x-btn\n >\n <br v-if=\"details\" />\n <small v-if=\"details\">{{ details }}</small>\n <slot />\n </v-alert>\n</template>\n\n<style scoped>\n:deep(.v-alert__content a),\n:deep(.v-alert__content a:visited) {\n color: inherit;\n text-decoration-color: inherit;\n}\n.flat-corners {\n border-radius: initial;\n}\n</style>\n"],"names":["_createBlock","_component_v_alert","__props","_createElementBlock","_Fragment","_renderList","action","_component_x_btn","_createTextVNode","_toDisplayString","_hoisted_1","_openBlock","_renderSlot","_ctx"],"mappings":";;;;;;;;;;;;;;;;kBAyBEA,EAkBUC,GAAA;AAAA,QAjBP,UAAUC,EAAA;AAAA,QACV,OAAOA,EAAA;AAAA,QACP,MAAMA,EAAA;AAAA,QACN,MAAMA,EAAA;AAAA,QACN,2BAAyBA,EAAA,aAAW;AAAA,MAAA;mBAGnC,MAAyB;AAAA,kBAD3BC,EAOCC,GAAA,MAAAC,EANkBH,EAAA,SAAO,CAAjBI,YADTN,EAOCO,GAAA;AAAA,YALE,KAAKD,EAAO;AAAA,YACb,MAAK;AAAA,YACL,SAAQ;AAAA,YACP,SAAOA,EAAO;AAAA,UAAA;uBACd,MAAiB;AAAA,cAAdE,EAAAC,EAAAH,EAAO,IAAI,GAAA,CAAA;AAAA,YAAA;;;UAEPJ,EAAA,gBAAVC,EAAqB,MAAAO,CAAA;UACRR,EAAA,WAAbS,EAAA,GAAAR,EAA2C,cAAlBD,EAAA,OAAO,GAAA,CAAA;UAChCU,EAAQC,EAAA,QAAA,WAAA,CAAA,GAAA,QAAA,EAAA;AAAA,QAAA;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"x-avatar-B5IoAQPQ.js","sources":["../src/vue/x-avatar.vue"],"sourcesContent":["<!--\n See the LICENSE file distributed with this work for additional\n information regarding copyright ownership.\n\n This is free software; you can redistribute it and/or modify it\n under the terms of the GNU Lesser General Public License as\n published by the Free Software Foundation; either version 2.1 of\n the License, or (at your option) any later version.\n\n This software is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public\n License along with this software; if not, write to the Free\n Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n<script lang=\"ts\" setup>\nimport type { AvatarProps } from \"@xwiki/
|
|
1
|
+
{"version":3,"file":"x-avatar-B5IoAQPQ.js","sources":["../src/vue/x-avatar.vue"],"sourcesContent":["<!--\n See the LICENSE file distributed with this work for additional\n information regarding copyright ownership.\n\n This is free software; you can redistribute it and/or modify it\n under the terms of the GNU Lesser General Public License as\n published by the Free Software Foundation; either version 2.1 of\n the License, or (at your option) any later version.\n\n This software is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public\n License along with this software; if not, write to the Free\n Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n<script lang=\"ts\" setup>\nimport type { AvatarProps } from \"@xwiki/platform-dsapi\";\n\ndefineProps<AvatarProps>();\n</script>\n<template>\n <v-avatar :size=\"size\">\n <v-img v-if=\"image\" :alt=\"name\" :src=\"image\"></v-img>\n <span v-else>{{ name }}</span>\n </v-avatar>\n</template>\n"],"names":["_createBlock","_component_v_avatar","__props","_component_v_img","_openBlock","_createElementBlock"],"mappings":";;;;;;;;;;;kBAyBEA,EAGWC,GAAA,EAHA,MAAMC,EAAA,QAAI;AAAA,mBACnB,MAAqD;AAAA,UAAxCA,EAAA,cAAbF,EAAqDG,GAAA;AAAA;YAAhC,KAAKD,EAAA;AAAA,YAAO,KAAKA,EAAA;AAAA,UAAA,gCACtCE,EAAA,GAAAC,EAA8B,aAAdH,EAAA,IAAI,GAAA,CAAA;AAAA,QAAA;;;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent as m, computed as n, resolveComponent as
|
|
1
|
+
import { defineComponent as m, computed as n, resolveComponent as p, createBlock as a, openBlock as _ } from "vue";
|
|
2
2
|
import { _ as u } from "./_plugin-vue_export-helper-CHgC5LLL.js";
|
|
3
3
|
const i = /* @__PURE__ */ m({
|
|
4
4
|
__name: "x-breadcrumb",
|
|
@@ -11,12 +11,12 @@ const i = /* @__PURE__ */ m({
|
|
|
11
11
|
href: t
|
|
12
12
|
})));
|
|
13
13
|
return (e, t) => {
|
|
14
|
-
const s =
|
|
15
|
-
return _(),
|
|
14
|
+
const s = p("v-breadcrumbs");
|
|
15
|
+
return _(), a(s, { items: c.value }, null, 8, ["items"]);
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
|
-
}), l = /* @__PURE__ */ u(i, [["__scopeId", "data-v-
|
|
18
|
+
}), l = /* @__PURE__ */ u(i, [["__scopeId", "data-v-e1be0c1e"]]);
|
|
19
19
|
export {
|
|
20
20
|
l as default
|
|
21
21
|
};
|
|
22
|
-
//# sourceMappingURL=x-breadcrumb-
|
|
22
|
+
//# sourceMappingURL=x-breadcrumb-DaJw0U-E.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"x-breadcrumb-
|
|
1
|
+
{"version":3,"file":"x-breadcrumb-DaJw0U-E.js","sources":["../src/vue/x-breadcrumb.vue"],"sourcesContent":["<!--\n See the LICENSE file distributed with this work for additional\n information regarding copyright ownership.\n\n This is free software; you can redistribute it and/or modify it\n under the terms of the GNU Lesser General Public License as\n published by the Free Software Foundation; either version 2.1 of\n the License, or (at your option) any later version.\n\n This software is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public\n License along with this software; if not, write to the Free\n Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport type { BreadcrumbProps } from \"@xwiki/platform-dsapi\";\n\nconst props = defineProps<BreadcrumbProps>();\n// Converts props items to the format expected by v-breadcrumbs\nconst items = computed(() => {\n return props.items.map(({ label, url }) => {\n return {\n title: label,\n href: url,\n };\n });\n});\n</script>\n\n<template>\n <v-breadcrumbs :items=\"items\"></v-breadcrumbs>\n</template>\n\n<style scoped>\n.v-breadcrumbs {\n padding: 0;\n}\n</style>\n"],"names":["props","__props","items","computed","label","url","_createBlock","_component_v_breadcrumbs"],"mappings":";;;;;;;;AAuBA,UAAMA,IAAQC,GAERC,IAAQC,EAAS,MACdH,EAAM,MAAM,IAAI,CAAC,EAAE,OAAAI,GAAO,KAAAC,SACxB;AAAA,MACL,OAAOD;AAAA,MACP,MAAMC;AAAA,IAAA,EAET,CACF;;;kBAICC,EAA8CC,GAAA,EAA9B,OAAOL,EAAA,MAAA,GAAK,MAAA,GAAA,CAAA,OAAA,CAAA;AAAA;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"x-btn-DzH2bk-f.js","sources":["../src/vue/x-btn.vue"],"sourcesContent":["<!--\n See the LICENSE file distributed with this work for additional\n information regarding copyright ownership.\n\n This is free software; you can redistribute it and/or modify it\n under the terms of the GNU Lesser General Public License as\n published by the Free Software Foundation; either version 2.1 of\n the License, or (at your option) any later version.\n\n This software is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public\n License along with this software; if not, write to the Free\n Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n<script lang=\"ts\" setup>\nimport { computed } from \"vue\";\nimport type { BtnProps } from \"@xwiki/
|
|
1
|
+
{"version":3,"file":"x-btn-DzH2bk-f.js","sources":["../src/vue/x-btn.vue"],"sourcesContent":["<!--\n See the LICENSE file distributed with this work for additional\n information regarding copyright ownership.\n\n This is free software; you can redistribute it and/or modify it\n under the terms of the GNU Lesser General Public License as\n published by the Free Software Foundation; either version 2.1 of\n the License, or (at your option) any later version.\n\n This software is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public\n License along with this software; if not, write to the Free\n Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n<script lang=\"ts\" setup>\nimport { computed } from \"vue\";\nimport type { BtnProps } from \"@xwiki/platform-dsapi\";\n\nconst { variant } = defineProps<BtnProps>();\n\n// Map the variants to corresponding vuetify colors.\nconst color = computed(() => {\n let color = undefined;\n switch (variant) {\n case \"default\":\n break;\n case \"primary\":\n color = \"primary\";\n break;\n case \"success\":\n color = \"success\";\n break;\n case \"neutral\":\n color = \"secondary\";\n break;\n case \"warning\":\n color = \"warning\";\n break;\n case \"danger\":\n color = \"error\";\n break;\n }\n return color;\n});\n\nconst vVariant = computed(() => (variant == \"text\" ? \"text\" : \"tonal\"));\n</script>\n<template>\n <v-btn :color=\"color\" :variant=\"vVariant\">\n <slot />\n </v-btn>\n</template>\n"],"names":["color","computed","__props","vVariant","_createBlock","_component_v_btn","_renderSlot","_ctx"],"mappings":";;;;;;;;;AA0BA,UAAMA,IAAQC,EAAS,MAAM;AAC3B,UAAID;AACJ,cAAQE,EAAA,SAAA;AAAA,QACN,KAAK;AACH;AAAA,QACF,KAAK;AACHF,UAAAA,IAAQ;AACR;AAAA,QACF,KAAK;AACHA,UAAAA,IAAQ;AACR;AAAA,QACF,KAAK;AACHA,UAAAA,IAAQ;AACR;AAAA,QACF,KAAK;AACHA,UAAAA,IAAQ;AACR;AAAA,QACF,KAAK;AACHA,UAAAA,IAAQ;AACR;AAAA,MAAA;AAEJ,aAAOA;AAAAA,IACT,CAAC,GAEKG,IAAWF,EAAS,MAAOC,EAAA,WAAW,SAAS,SAAS,OAAQ;;;kBAGpEE,EAEQC,GAAA;AAAA,QAFA,OAAOL,EAAA;AAAA,QAAQ,SAASG,EAAA;AAAA,MAAA;mBAC9B,MAAQ;AAAA,UAARG,EAAQC,EAAA,QAAA,SAAA;AAAA,QAAA;;;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent as m, mergeModels as t, useModel as d, createBlock as u, openBlock as n, unref as s } from "vue";
|
|
2
|
-
import { d as c } from "./index-
|
|
2
|
+
import { d as c } from "./index-D7wZ4Kvq.js";
|
|
3
3
|
const V = /* @__PURE__ */ m({
|
|
4
4
|
__name: "x-checkbox",
|
|
5
5
|
props: /* @__PURE__ */ t({
|
|
@@ -25,4 +25,4 @@ const V = /* @__PURE__ */ m({
|
|
|
25
25
|
export {
|
|
26
26
|
V as default
|
|
27
27
|
};
|
|
28
|
-
//# sourceMappingURL=x-checkbox-
|
|
28
|
+
//# sourceMappingURL=x-checkbox-CN6QxF3B.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"x-checkbox-
|
|
1
|
+
{"version":3,"file":"x-checkbox-CN6QxF3B.js","sources":["../src/vue/form/x-checkbox.vue"],"sourcesContent":["<!--\n See the LICENSE file distributed with this work for additional\n information regarding copyright ownership.\n\n This is free software; you can redistribute it and/or modify it\n under the terms of the GNU Lesser General Public License as\n published by the Free Software Foundation; either version 2.1 of\n the License, or (at your option) any later version.\n\n This software is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public\n License along with this software; if not, write to the Free\n Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n<script lang=\"ts\" setup>\nimport { VCheckbox } from \"vuetify/components/VCheckbox\";\nimport type { CheckboxProps } from \"@xwiki/platform-dsapi\";\n\ndefineProps<CheckboxProps>();\n\nconst checked = defineModel<boolean | null>();\n</script>\n<template>\n <v-checkbox\n v-model=\"checked\"\n :label=\"label\"\n :messages=\"help\"\n density=\"compact\"\n ></v-checkbox>\n</template>\n"],"names":["checked","_useModel","_createBlock","_unref","VCheckbox","$event","__props"],"mappings":";;;;;;;;;;;;;;AAyBA,UAAMA,IAAUC,iBAA4B;2BAG1CC,EAKcC,EAAAC,CAAA,GAAA;AAAA,kBAJHJ,EAAA;AAAA,oDAAAA,EAAO,QAAAK;AAAA,MACf,OAAOC,EAAA;AAAA,MACP,UAAUA,EAAA;AAAA,MACX,SAAQ;AAAA,IAAA;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { defineComponent as m, mergeModels as s, useModel as d, computed as i, createBlock as p, openBlock as f, unref as c } from "vue";
|
|
2
2
|
import { t as V } from "./translations-BVK9UR9x.js";
|
|
3
3
|
import { useI18n as y } from "vue-i18n";
|
|
4
|
-
import { b } from "./index-
|
|
4
|
+
import { b } from "./index-D7wZ4Kvq.js";
|
|
5
5
|
const g = /* @__PURE__ */ m({
|
|
6
6
|
__name: "x-file-input",
|
|
7
7
|
props: /* @__PURE__ */ s({
|
|
@@ -37,4 +37,4 @@ const g = /* @__PURE__ */ m({
|
|
|
37
37
|
export {
|
|
38
38
|
g as default
|
|
39
39
|
};
|
|
40
|
-
//# sourceMappingURL=x-file-input-
|
|
40
|
+
//# sourceMappingURL=x-file-input-CkjbGsMG.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"x-file-input-CkjbGsMG.js","sources":["../src/vue/form/x-file-input.vue"],"sourcesContent":["<!--\n See the LICENSE file distributed with this work for additional\n information regarding copyright ownership.\n\n This is free software; you can redistribute it and/or modify it\n under the terms of the GNU Lesser General Public License as\n published by the Free Software Foundation; either version 2.1 of\n the License, or (at your option) any later version.\n\n This software is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public\n License along with this software; if not, write to the Free\n Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n<script setup lang=\"ts\">\nimport messages from \"../../translations\";\nimport { computed } from \"vue\";\nimport { useI18n } from \"vue-i18n\";\nimport { VFileInput } from \"vuetify/components/VFileInput\";\nimport type { FileInputModel, TextFieldProps } from \"@xwiki/platform-dsapi\";\n\nconst { t } = useI18n({\n messages,\n});\n\nconst model = defineModel<FileInputModel>();\nconst props = defineProps<TextFieldProps>();\n\nconst rules = computed(() => {\n const rulesList = [];\n if (props.required) {\n rulesList.push((value: unknown) => {\n if (value) {\n return true;\n } else {\n return t(\"vuetify.file.input.mandatory\");\n }\n });\n }\n return rulesList;\n});\n</script>\n\n<template>\n <v-file-input\n v-model=\"model\"\n :label=\"label\"\n :name=\"name\"\n :rules=\"rules\"\n ></v-file-input>\n</template>\n\n<style scoped></style>\n"],"names":["t","useI18n","messages","model","_useModel","props","__props","rules","computed","rulesList","value","_createBlock","_unref","VFileInput","$event"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA0BA,UAAM,EAAE,GAAAA,EAAA,IAAMC,EAAQ;AAAA,MAAA,UACpBC;AAAAA,IAAA,CACD,GAEKC,IAAQC,iBAA4B,GACpCC,IAAQC,GAERC,IAAQC,EAAS,MAAM;AAC3B,YAAMC,IAAY,CAAA;AAClB,aAAIJ,EAAM,YACRI,EAAU,KAAK,CAACC,MACVA,IACK,KAEAV,EAAE,8BAA8B,CAE1C,GAEIS;AAAA,IACT,CAAC;2BAICE,EAKgBC,EAAAC,CAAA,GAAA;AAAA,kBAJLV,EAAA;AAAA,oDAAAA,EAAK,QAAAW;AAAA,MACb,OAAOR,EAAA;AAAA,MACP,MAAMA,EAAA;AAAA,MACN,OAAOC,EAAA;AAAA,IAAA;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent as s, ref as m, createBlock as f, openBlock as c, unref as u, withModifiers as d, withCtx as _, renderSlot as l } from "vue";
|
|
2
|
-
import { V as p } from "./index-
|
|
2
|
+
import { V as p } from "./index-D7wZ4Kvq.js";
|
|
3
3
|
import { _ as v } from "./_plugin-vue_export-helper-CHgC5LLL.js";
|
|
4
4
|
const x = /* @__PURE__ */ s({
|
|
5
5
|
__name: "x-form",
|
|
@@ -30,4 +30,4 @@ const x = /* @__PURE__ */ s({
|
|
|
30
30
|
export {
|
|
31
31
|
y as default
|
|
32
32
|
};
|
|
33
|
-
//# sourceMappingURL=x-form-
|
|
33
|
+
//# sourceMappingURL=x-form-dk8EltHS.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"x-form-
|
|
1
|
+
{"version":3,"file":"x-form-dk8EltHS.js","sources":["../src/vue/form/x-form.vue"],"sourcesContent":["<!--\n See the LICENSE file distributed with this work for additional\n information regarding copyright ownership.\n\n This is free software; you can redistribute it and/or modify it\n under the terms of the GNU Lesser General Public License as\n published by the Free Software Foundation; either version 2.1 of\n the License, or (at your option) any later version.\n\n This software is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public\n License along with this software; if not, write to the Free\n Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport { VForm } from \"vuetify/components/VForm\";\nimport type { Ref } from \"vue\";\n\nconst form: Ref<VForm | undefined> = ref(undefined);\nconst emits = defineEmits([\"formSubmit\"]);\n\ndefineExpose({\n reset,\n});\n\nasync function reset() {\n form.value?.reset();\n}\n\nasync function submit() {\n const validation = await form.value?.validate();\n if (validation?.valid) {\n emits(\"formSubmit\");\n }\n}\n</script>\n\n<template>\n <v-form ref=\"form\" @submit.prevent=\"submit\">\n <slot></slot>\n </v-form>\n</template>\n\n<style scoped>\n.v-form {\n display: flex;\n flex-direction: column;\n gap: var(--cr-spacing-x-small);\n}\n</style>\n"],"names":["form","ref","emits","__emit","__expose","reset","submit","_createBlock","_unref","VForm","_renderSlot","_ctx"],"mappings":";;;;;;;AAwBA,UAAMA,IAA+BC,EAAI,MAAS,GAC5CC,IAAQC;AAEd,IAAAC,EAAa;AAAA,MACX,OAAAC;AAAA,IAAA,CACD;AAED,mBAAeA,IAAQ;AACrB,MAAAL,EAAK,OAAO,MAAA;AAAA,IACd;AAEA,mBAAeM,IAAS;AAEtB,OADmB,MAAMN,EAAK,OAAO,SAAA,IACrB,SACdE,EAAM,YAAY;AAAA,IAEtB;2BAIEK,EAESC,EAAAC,CAAA,GAAA;AAAA,eAFG;AAAA,MAAJ,KAAIT;AAAA,MAAQ,YAAgBM,GAAM,CAAA,SAAA,CAAA;AAAA,IAAA;iBACxC,MAAa;AAAA,QAAbI,EAAaC,EAAA,QAAA,WAAA,CAAA,GAAA,QAAA,EAAA;AAAA,MAAA;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"x-menu-item-Ph5-wwcR.js","sources":["../src/vue/x-menu-item.vue"],"sourcesContent":["<!--\n See the LICENSE file distributed with this work for additional\n information regarding copyright ownership.\n\n This is free software; you can redistribute it and/or modify it\n under the terms of the GNU Lesser General Public License as\n published by the Free Software Foundation; either version 2.1 of\n the License, or (at your option) any later version.\n\n This software is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public\n License along with this software; if not, write to the Free\n Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n<script lang=\"ts\" setup>\nimport type { MenuItemProps } from \"@xwiki/
|
|
1
|
+
{"version":3,"file":"x-menu-item-Ph5-wwcR.js","sources":["../src/vue/x-menu-item.vue"],"sourcesContent":["<!--\n See the LICENSE file distributed with this work for additional\n information regarding copyright ownership.\n\n This is free software; you can redistribute it and/or modify it\n under the terms of the GNU Lesser General Public License as\n published by the Free Software Foundation; either version 2.1 of\n the License, or (at your option) any later version.\n\n This software is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public\n License along with this software; if not, write to the Free\n Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n<script lang=\"ts\" setup>\nimport type { MenuItemProps } from \"@xwiki/platform-dsapi\";\n\ndefineProps<MenuItemProps>();\n</script>\n<template>\n <v-list-item :value=\"value\" :disabled=\"disabled\">\n <slot name=\"default\" />\n </v-list-item>\n</template>\n"],"names":["_createBlock","_component_v_list_item","__props","_renderSlot","_ctx"],"mappings":";;;;;;;;;;kBAyBEA,EAEcC,GAAA;AAAA,QAFA,OAAOC,EAAA;AAAA,QAAQ,UAAUA,EAAA;AAAA,MAAA;mBACrC,MAAuB;AAAA,UAAvBC,EAAuBC,EAAA,QAAA,SAAA;AAAA,QAAA;;;;;;"}
|
|
@@ -1,21 +1,20 @@
|
|
|
1
|
-
import { defineComponent as b, mergeDefaults as S, inject as A, ref as
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}, q = ["href", "onClick"], G = ["href"], H = /* @__PURE__ */ b({
|
|
1
|
+
import { defineComponent as b, mergeDefaults as S, inject as A, ref as m, onBeforeMount as B, watch as E, createBlock as F, openBlock as _, unref as L, withCtx as U, createElementBlock as P, withModifiers as M, toDisplayString as I } from "vue";
|
|
2
|
+
import { e as j } from "./index.es-BOA77_Kh.js";
|
|
3
|
+
import { SpaceReference as z } from "@xwiki/platform-model-api";
|
|
4
|
+
import { c as V } from "./index-D7wZ4Kvq.js";
|
|
5
|
+
import { _ as $ } from "./_plugin-vue_export-helper-CHgC5LLL.js";
|
|
6
|
+
const q = ["href", "onClick"], G = ["href"], H = /* @__PURE__ */ b({
|
|
8
7
|
__name: "x-navigation-tree",
|
|
9
8
|
props: /* @__PURE__ */ S({
|
|
10
9
|
clickAction: { type: Function },
|
|
11
10
|
currentPageReference: {},
|
|
12
11
|
includeTerminals: { type: Boolean },
|
|
13
12
|
showRootNode: { type: Boolean }
|
|
14
|
-
},
|
|
15
|
-
setup(
|
|
16
|
-
const w = A("cristal"), N = w.getContainer().get("DocumentService"),
|
|
13
|
+
}, j),
|
|
14
|
+
setup(g) {
|
|
15
|
+
const w = A("cristal"), N = w.getContainer().get("DocumentService"), d = w.getContainer().get("NavigationTreeSourceProvider").get(), l = m([]), c = m(new Array()), f = m([]);
|
|
17
16
|
var h = !1;
|
|
18
|
-
const i =
|
|
17
|
+
const i = g;
|
|
19
18
|
B(async () => {
|
|
20
19
|
const r = [];
|
|
21
20
|
for (const n of await u(""))
|
|
@@ -32,14 +31,14 @@ const $ = {
|
|
|
32
31
|
title: "Root",
|
|
33
32
|
href: ".",
|
|
34
33
|
children: r,
|
|
35
|
-
_location: new
|
|
34
|
+
_location: new z(),
|
|
36
35
|
_is_terminal: !1
|
|
37
|
-
}) : l.value.push(...r), await y(), N.registerDocumentChangeListener("delete",
|
|
36
|
+
}) : l.value.push(...r), await y(), N.registerDocumentChangeListener("delete", x), N.registerDocumentChangeListener("update", T);
|
|
38
37
|
}), E(() => i.currentPageReference, y);
|
|
39
38
|
async function y() {
|
|
40
39
|
if (i.currentPageReference && !h) {
|
|
41
40
|
h = !0;
|
|
42
|
-
const r =
|
|
41
|
+
const r = d.getParentNodesId(
|
|
43
42
|
i.currentPageReference,
|
|
44
43
|
i.includeTerminals,
|
|
45
44
|
i.showRootNode
|
|
@@ -51,7 +50,7 @@ const $ = {
|
|
|
51
50
|
e.id == r[n] && (e.children?.length == 0 && await k(e), f.value.includes(e.id) || f.value.push(e.id), t = e.children);
|
|
52
51
|
if (t)
|
|
53
52
|
for (const e of t)
|
|
54
|
-
e.id == r[n] && (
|
|
53
|
+
e.id == r[n] && (c.value = [e.id], i.clickAction && i.clickAction({
|
|
55
54
|
id: e.id,
|
|
56
55
|
label: e.title,
|
|
57
56
|
location: e._location,
|
|
@@ -76,62 +75,62 @@ const $ = {
|
|
|
76
75
|
t.length == 0 && (n.children = void 0);
|
|
77
76
|
}
|
|
78
77
|
function C() {
|
|
79
|
-
|
|
78
|
+
c.value.length > 1 && c.value.pop();
|
|
80
79
|
}
|
|
81
|
-
async function
|
|
82
|
-
const n =
|
|
80
|
+
async function x(r) {
|
|
81
|
+
const n = d.getParentNodesId(
|
|
83
82
|
r,
|
|
84
83
|
i.includeTerminals,
|
|
85
84
|
i.showRootNode
|
|
86
85
|
);
|
|
87
|
-
let t, e = l.value,
|
|
88
|
-
e: for (; e && !
|
|
89
|
-
for (const
|
|
90
|
-
if (e[
|
|
86
|
+
let t, e = l.value, s = !1;
|
|
87
|
+
e: for (; e && !s; ) {
|
|
88
|
+
for (const a of e.keys())
|
|
89
|
+
if (e[a].id == n[0])
|
|
91
90
|
if (n.length == 1) {
|
|
92
|
-
e.splice(
|
|
91
|
+
e.splice(a, 1), t && e.length == 0 && (t.children = void 0);
|
|
93
92
|
return;
|
|
94
93
|
} else {
|
|
95
|
-
t = e[
|
|
94
|
+
t = e[a], e = t.children, n.shift();
|
|
96
95
|
continue e;
|
|
97
96
|
}
|
|
98
|
-
|
|
97
|
+
s = !0;
|
|
99
98
|
}
|
|
100
99
|
}
|
|
101
|
-
async function
|
|
102
|
-
const n =
|
|
100
|
+
async function T(r) {
|
|
101
|
+
const n = d.getParentNodesId(
|
|
103
102
|
r,
|
|
104
103
|
i.includeTerminals,
|
|
105
104
|
i.showRootNode
|
|
106
105
|
);
|
|
107
|
-
let t, e = l.value,
|
|
108
|
-
e: for (; e && !
|
|
106
|
+
let t, e = l.value, s = !1, a = !0;
|
|
107
|
+
e: for (; e && !s; ) {
|
|
109
108
|
for (const o of e.keys())
|
|
110
109
|
if (e[o].id == n[0])
|
|
111
110
|
if (n.length == 1) {
|
|
112
|
-
const
|
|
111
|
+
const v = await u(
|
|
113
112
|
t || ""
|
|
114
113
|
);
|
|
115
|
-
for (const
|
|
116
|
-
if (
|
|
117
|
-
e[o].title =
|
|
114
|
+
for (const R of v)
|
|
115
|
+
if (R.id == e[o].id) {
|
|
116
|
+
e[o].title = R.label;
|
|
118
117
|
return;
|
|
119
118
|
}
|
|
120
119
|
} else {
|
|
121
|
-
t = e[o].id, e[o].children || (e[o].children = []), e = e[o].children, n.shift(),
|
|
120
|
+
t = e[o].id, e[o].children || (e[o].children = []), e = e[o].children, n.shift(), a = !1;
|
|
122
121
|
continue e;
|
|
123
122
|
}
|
|
124
|
-
|
|
123
|
+
s = !0;
|
|
125
124
|
}
|
|
126
|
-
if (e.length == 0 && !
|
|
125
|
+
if (e.length == 0 && !a)
|
|
127
126
|
return;
|
|
128
|
-
const D = await u(t || ""),
|
|
127
|
+
const D = await u(t || ""), p = i.currentPageReference ? d.getParentNodesId(
|
|
129
128
|
i.currentPageReference,
|
|
130
129
|
i.includeTerminals
|
|
131
130
|
) : [];
|
|
132
131
|
e: for (const o of D) {
|
|
133
|
-
for (const
|
|
134
|
-
if (o.id == e[
|
|
132
|
+
for (const v of e.keys())
|
|
133
|
+
if (o.id == e[v].id)
|
|
135
134
|
continue e;
|
|
136
135
|
e.push({
|
|
137
136
|
id: o.id,
|
|
@@ -140,19 +139,19 @@ const $ = {
|
|
|
140
139
|
children: o.has_children ? [] : void 0,
|
|
141
140
|
_location: o.location,
|
|
142
141
|
_is_terminal: o.is_terminal
|
|
143
|
-
}),
|
|
142
|
+
}), p.length > 0 && p[p.length - 1] === o.id && (c.value = [o.id]);
|
|
144
143
|
}
|
|
145
144
|
}
|
|
146
145
|
async function u(r) {
|
|
147
|
-
return (await
|
|
146
|
+
return (await d.getChildNodes(r)).filter(
|
|
148
147
|
(n) => i.includeTerminals || !n.is_terminal
|
|
149
148
|
);
|
|
150
149
|
}
|
|
151
|
-
return (r, n) => (
|
|
150
|
+
return (r, n) => (_(), F(L(V), {
|
|
152
151
|
opened: f.value,
|
|
153
152
|
"onUpdate:opened": n[0] || (n[0] = (t) => f.value = t),
|
|
154
153
|
density: "compact",
|
|
155
|
-
activated:
|
|
154
|
+
activated: c.value,
|
|
156
155
|
items: l.value,
|
|
157
156
|
"load-children": k,
|
|
158
157
|
activatable: "",
|
|
@@ -161,11 +160,11 @@ const $ = {
|
|
|
161
160
|
"onUpdate:activated": C
|
|
162
161
|
}, {
|
|
163
162
|
title: U(({ item: t }) => [
|
|
164
|
-
i.clickAction ? (
|
|
163
|
+
i.clickAction ? (_(), P("a", {
|
|
165
164
|
key: 0,
|
|
166
165
|
href: t.href,
|
|
167
166
|
onClick: M((e) => {
|
|
168
|
-
|
|
167
|
+
c.value = [t.id], g.clickAction({
|
|
169
168
|
id: t.id,
|
|
170
169
|
label: t.title,
|
|
171
170
|
location: t._location,
|
|
@@ -174,7 +173,7 @@ const $ = {
|
|
|
174
173
|
is_terminal: t._is_terminal
|
|
175
174
|
});
|
|
176
175
|
}, ["prevent"])
|
|
177
|
-
}, I(t.title), 9, q)) : (
|
|
176
|
+
}, I(t.title), 9, q)) : (_(), P("a", {
|
|
178
177
|
key: 1,
|
|
179
178
|
href: t.href
|
|
180
179
|
}, I(t.title), 9, G))
|
|
@@ -182,8 +181,8 @@ const $ = {
|
|
|
182
181
|
_: 1
|
|
183
182
|
}, 8, ["opened", "activated", "items"]));
|
|
184
183
|
}
|
|
185
|
-
}),
|
|
184
|
+
}), X = /* @__PURE__ */ $(H, [["__scopeId", "data-v-9e8c5576"]]);
|
|
186
185
|
export {
|
|
187
|
-
|
|
186
|
+
X as default
|
|
188
187
|
};
|
|
189
|
-
//# sourceMappingURL=x-navigation-tree-
|
|
188
|
+
//# sourceMappingURL=x-navigation-tree-BkJKd5J2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"x-navigation-tree-BkJKd5J2.js","sources":["../src/vue/x-navigation-tree.vue"],"sourcesContent":["<!--\n See the LICENSE file distributed with this work for additional\n information regarding copyright ownership.\n\n This is free software; you can redistribute it and/or modify it\n under the terms of the GNU Lesser General Public License as\n published by the Free Software Foundation; either version 2.1 of\n the License, or (at your option) any later version.\n\n This software is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public\n License along with this software; if not, write to the Free\n Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA\n 02110-1301 USA, or see the FSF site: http://www.fsf.org.\n-->\n<script setup lang=\"ts\">\n/**\n * Navigation Tree implemented using Vuetify's VTreeView component.\n * In order to use the initial component as a proper Navigation Tree for\n * Cristal, a few changes were made:\n * - The only node activated matches the current page, or the clicked link if\n * the component has a custom clickAction. We want to use actual links so\n * that the user can click them normally (to e.g., open them in a new tab).\n * So the default behavior of activating a node by clicking anywhere on the\n * item was disabled. Default hover effects, such as darkening or changing\n * the cursor on items, were also disabled.\n */\nimport { navigationTreePropsDefaults } from \"@xwiki/platform-dsapi\";\nimport { SpaceReference } from \"@xwiki/platform-model-api\";\nimport { inject, onBeforeMount, ref, watch } from \"vue\";\nimport { VTreeview } from \"vuetify/components/VTreeview\";\nimport type { CristalApp } from \"@xwiki/platform-api\";\nimport type { DocumentService } from \"@xwiki/platform-document-api\";\nimport type { NavigationTreeProps } from \"@xwiki/platform-dsapi\";\nimport type { DocumentReference } from \"@xwiki/platform-model-api\";\nimport type {\n NavigationTreeSource,\n NavigationTreeSourceProvider,\n} from \"@xwiki/platform-navigation-tree-api\";\nimport type { Ref } from \"vue\";\n\ntype TreeItem = {\n id: string;\n title: string;\n href: string;\n children?: Array<TreeItem>;\n _location: SpaceReference | DocumentReference;\n _is_terminal: boolean;\n};\n\nconst cristal: CristalApp = inject<CristalApp>(\"cristal\")!;\nconst documentService: DocumentService = cristal\n .getContainer()\n .get<DocumentService>(\"DocumentService\");\nconst treeSource: NavigationTreeSource = cristal\n .getContainer()\n .get<NavigationTreeSourceProvider>(\"NavigationTreeSourceProvider\")\n .get();\n\nconst rootNodes: Ref<Array<TreeItem>> = ref([]);\n\nconst activatedNodes: Ref<Array<string>> = ref(new Array<string>());\nconst expandedNodes: Ref<unknown> = ref([]);\nvar isExpanding: boolean = false;\n\nconst props = withDefaults(\n defineProps<NavigationTreeProps>(),\n navigationTreePropsDefaults,\n);\n\nonBeforeMount(async () => {\n const newRootNodes: Array<TreeItem> = [];\n for (const node of await getChildNodes(\"\")) {\n newRootNodes.push({\n id: node.id,\n title: node.label,\n href: node.url,\n children: node.has_children ? [] : undefined,\n _location: node.location,\n _is_terminal: node.is_terminal,\n });\n }\n if (props.showRootNode) {\n rootNodes.value.push({\n id: \"\",\n title: \"Root\",\n href: \".\",\n children: newRootNodes,\n _location: new SpaceReference(),\n _is_terminal: false,\n });\n } else {\n rootNodes.value.push(...newRootNodes);\n }\n await expandTree();\n\n documentService.registerDocumentChangeListener(\"delete\", onDocumentDelete);\n documentService.registerDocumentChangeListener(\"update\", onDocumentUpdate);\n});\n\nwatch(() => props.currentPageReference, expandTree);\n\n// TODO: reduce the number of statements in the following method and reactivate the disabled eslint rule.\n// eslint-disable-next-line max-statements\nasync function expandTree() {\n if (props.currentPageReference && !isExpanding) {\n isExpanding = true;\n const newExpandedNodes = treeSource.getParentNodesId(\n props.currentPageReference!,\n props.includeTerminals,\n props.showRootNode,\n );\n let i;\n let currentNodes = rootNodes.value;\n for (i = 0; i < newExpandedNodes.length - 1; i++) {\n if (currentNodes) {\n for (const node of currentNodes) {\n if (node.id == newExpandedNodes[i]) {\n if (node.children?.length == 0) {\n await lazyLoadChildren(node);\n }\n if (!(expandedNodes.value as unknown[]).includes(node.id)) {\n (expandedNodes.value as unknown[]).push(node.id);\n }\n currentNodes = node.children!;\n }\n }\n }\n }\n if (currentNodes) {\n for (const node of currentNodes) {\n if (node.id == newExpandedNodes[i]) {\n activatedNodes.value = [node.id];\n // If we have a custom click action, we want to use it on dynamic\n // selection.\n if (props.clickAction) {\n props.clickAction({\n id: node.id,\n label: node.title,\n location: node._location,\n url: node.href,\n has_children: node.children !== undefined,\n is_terminal: node._is_terminal,\n });\n }\n }\n }\n }\n isExpanding = false;\n }\n}\n\nasync function lazyLoadChildren(item: unknown) {\n const treeItem = item as TreeItem;\n const childNodes = await getChildNodes(treeItem.id);\n for (const child of childNodes) {\n treeItem.children?.push({\n id: child.id,\n title: child.label,\n href: child.url,\n children: child.has_children ? [] : undefined,\n _location: child.location,\n _is_terminal: child.is_terminal,\n });\n }\n // If the node doesn't have any children, we update it.\n if (childNodes.length == 0) {\n treeItem.children = undefined;\n }\n}\n\nfunction clearSelection() {\n // Clicking on a node would activate it and this can't be disabled easily.\n // With this listener, we ensure that only the first activated node stays\n // active.\n if (activatedNodes.value.length > 1) {\n activatedNodes.value.pop();\n }\n}\n\n// TODO: reduce the number of statements in the following method and reactivate the disabled eslint rule.\n// eslint-disable-next-line max-statements\nasync function onDocumentDelete(page: DocumentReference) {\n const parents = treeSource.getParentNodesId(\n page,\n props.includeTerminals,\n props.showRootNode,\n );\n let currentItem: TreeItem | undefined = undefined;\n let currentItemChildren: TreeItem[] | undefined = rootNodes.value;\n let notFound = false;\n\n currentItemsLoop: while (currentItemChildren && !notFound) {\n for (const i of currentItemChildren.keys()) {\n if (currentItemChildren[i].id == parents[0]) {\n if (parents.length == 1) {\n currentItemChildren.splice(i, 1);\n if (currentItem && currentItemChildren.length == 0) {\n currentItem!.children = undefined;\n }\n return;\n } else {\n currentItem = currentItemChildren[i];\n currentItemChildren = currentItem.children;\n parents.shift();\n continue currentItemsLoop;\n }\n }\n }\n notFound = true;\n }\n}\n\n// TODO: reduce the number of statements in the following method and reactivate the disabled eslint rule.\n// eslint-disable-next-line max-statements\nasync function onDocumentUpdate(page: DocumentReference) {\n const parents = treeSource.getParentNodesId(\n page,\n props.includeTerminals,\n props.showRootNode,\n );\n let currentParent: string | undefined = undefined;\n let currentItems: TreeItem[] | undefined = rootNodes.value;\n let notFound = false;\n let isRoot = true;\n\n currentItemsLoop: while (currentItems && !notFound) {\n for (const i of currentItems.keys()) {\n if (currentItems[i].id == parents[0]) {\n if (parents.length == 1) {\n // Page update\n const newItems = await getChildNodes(\n currentParent ? currentParent : \"\",\n );\n for (const newItem of newItems) {\n if (newItem.id == currentItems[i].id) {\n currentItems[i].title = newItem.label;\n return;\n }\n }\n } else {\n currentParent = currentItems[i].id;\n if (!currentItems[i].children) {\n // This node had no children, we reset this so new ones can be\n // loaded lazily.\n currentItems[i].children = [];\n }\n currentItems = currentItems[i].children;\n parents.shift();\n isRoot = false;\n continue currentItemsLoop;\n }\n }\n }\n notFound = true;\n }\n\n // New page\n if (currentItems.length == 0 && !isRoot) {\n // We don't do anything because this node will be loaded lazily anyway.\n return;\n }\n const newItems = await getChildNodes(currentParent ? currentParent : \"\");\n const currentPageParents = props.currentPageReference\n ? treeSource.getParentNodesId(\n props.currentPageReference!,\n props.includeTerminals,\n )\n : [];\n newItemsLoop: for (const newItem of newItems) {\n for (const i of currentItems!.keys()) {\n if (newItem.id == currentItems![i].id) {\n continue newItemsLoop;\n }\n }\n currentItems!.push({\n id: newItem.id,\n title: newItem.label,\n href: newItem.url,\n children: newItem.has_children ? [] : undefined,\n _location: newItem.location,\n _is_terminal: newItem.is_terminal,\n });\n if (\n currentPageParents.length > 0 &&\n currentPageParents[currentPageParents.length - 1] === newItem.id\n ) {\n // If we add a node, and it's the current page, it should be activated.\n activatedNodes.value = [newItem.id];\n }\n }\n}\n\nasync function getChildNodes(id: string) {\n return (await treeSource.getChildNodes(id)).filter(\n (c) => props.includeTerminals || !c.is_terminal,\n );\n}\n</script>\n\n<template>\n <v-treeview\n v-model:opened=\"expandedNodes\"\n density=\"compact\"\n :activated=\"activatedNodes\"\n :items=\"rootNodes\"\n :load-children=\"lazyLoadChildren\"\n activatable\n active-strategy=\"independent\"\n item-value=\"id\"\n @update:activated=\"clearSelection\"\n >\n <template #title=\"{ item }: { item: any }\">\n <a\n v-if=\"props.clickAction\"\n :href=\"item.href\"\n @click.prevent=\"\n activatedNodes = [item.id];\n clickAction!({\n id: item.id,\n label: item.title,\n location: item._location,\n url: item.href,\n has_children: item.children !== undefined,\n is_terminal: item._is_terminal,\n });\n \"\n >{{ item.title }}</a\n >\n <a v-else :href=\"item.href\">{{ item.title }}</a>\n </template>\n </v-treeview>\n</template>\n\n<style scoped>\n.v-list {\n background: none;\n}\n:deep(a) {\n text-decoration: none;\n color: var(--cr-base-text-color);\n}\n/* Disable hover on items. */\n:deep(.v-list-item__overlay) {\n --v-hover-opacity: 0;\n}\n/* Disable hand cursor on items, since we disable the default click action. */\n:deep(.v-list-item--link) {\n cursor: default;\n}\n</style>\n"],"names":["cristal","inject","documentService","treeSource","rootNodes","ref","activatedNodes","expandedNodes","isExpanding","props","__props","onBeforeMount","newRootNodes","node","getChildNodes","SpaceReference","expandTree","onDocumentDelete","onDocumentUpdate","watch","newExpandedNodes","i","currentNodes","lazyLoadChildren","item","treeItem","childNodes","child","clearSelection","page","parents","currentItem","currentItemChildren","notFound","currentItemsLoop","currentParent","currentItems","isRoot","newItems","newItem","currentPageParents","newItemsLoop","id","c","_createBlock","_unref","VTreeview","$event","_withCtx","_createElementBlock","_withModifiers","_toDisplayString","_hoisted_1","_hoisted_2"],"mappings":"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"}
|