@prismicio/vue 5.3.0-canary.5d9ea4c → 5.3.0-canary.87748cc
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/PrismicImage.vue.d.cts +30 -58
- package/dist/PrismicImage.vue.d.cts.map +1 -1
- package/dist/PrismicLink.vue.d.cts +65 -137
- package/dist/PrismicLink.vue.d.cts.map +1 -1
- package/dist/PrismicRichText/PrismicRichText.vue.d.cts +25 -53
- package/dist/PrismicRichText/PrismicRichText.vue.d.cts.map +1 -1
- package/dist/PrismicRichText/types.d.cts +18 -5
- package/dist/PrismicRichText/types.d.cts.map +1 -1
- package/dist/PrismicTable/PrismicTable.vue.d.cts +10 -10
- package/dist/PrismicTable/PrismicTable.vue.d.cts.map +1 -1
- package/dist/PrismicTable/types.d.cts +8 -8
- package/dist/PrismicTable/types.d.cts.map +1 -1
- package/dist/PrismicText.vue.d.cts +3 -13
- package/dist/PrismicText.vue.d.cts.map +1 -1
- package/dist/SliceZone/SliceZone.vue.d.cts +5 -24
- package/dist/SliceZone/SliceZone.vue.d.cts.map +1 -1
- package/dist/index.cjs +3 -10
- package/dist/index.d.cts +9 -13
- package/dist/index.d.ts +11 -15
- package/dist/index.js +3 -6
- package/dist/package.cjs +1 -1
- package/dist/package.cjs.map +1 -1
- package/dist/package.js +1 -1
- package/dist/package.js.map +1 -1
- package/dist/src/PrismicImage.cjs.map +1 -1
- package/dist/src/PrismicImage.js.map +1 -1
- package/dist/src/PrismicImage.vue.d.ts +26 -54
- package/dist/src/PrismicImage.vue.d.ts.map +1 -1
- package/dist/src/PrismicImage.vue_vue_type_script_setup_true_lang.cjs +2 -4
- package/dist/src/PrismicImage.vue_vue_type_script_setup_true_lang.cjs.map +1 -1
- package/dist/src/PrismicImage.vue_vue_type_script_setup_true_lang.js +2 -4
- package/dist/src/PrismicImage.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/src/PrismicLink.cjs.map +1 -1
- package/dist/src/PrismicLink.js.map +1 -1
- package/dist/src/PrismicLink.vue.d.ts +61 -133
- package/dist/src/PrismicLink.vue.d.ts.map +1 -1
- package/dist/src/PrismicLink.vue_vue_type_script_setup_true_lang.cjs +3 -6
- package/dist/src/PrismicLink.vue_vue_type_script_setup_true_lang.cjs.map +1 -1
- package/dist/src/PrismicLink.vue_vue_type_script_setup_true_lang.js +3 -6
- package/dist/src/PrismicLink.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/src/PrismicRichText/PrismicRichText.cjs.map +1 -1
- package/dist/src/PrismicRichText/PrismicRichText.js.map +1 -1
- package/dist/src/PrismicRichText/PrismicRichText.vue.d.ts +25 -53
- package/dist/src/PrismicRichText/PrismicRichText.vue.d.ts.map +1 -1
- package/dist/src/PrismicRichText/PrismicRichText.vue_vue_type_script_setup_true_lang.cjs +41 -57
- package/dist/src/PrismicRichText/PrismicRichText.vue_vue_type_script_setup_true_lang.cjs.map +1 -1
- package/dist/src/PrismicRichText/PrismicRichText.vue_vue_type_script_setup_true_lang.js +42 -58
- package/dist/src/PrismicRichText/PrismicRichText.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/src/PrismicRichText/PrismicRichTextDefaultComponent.cjs.map +1 -1
- package/dist/src/PrismicRichText/PrismicRichTextDefaultComponent.js.map +1 -1
- package/dist/src/PrismicRichText/PrismicRichTextDefaultComponent.vue_vue_type_script_setup_true_lang.cjs +53 -33
- package/dist/src/PrismicRichText/PrismicRichTextDefaultComponent.vue_vue_type_script_setup_true_lang.cjs.map +1 -1
- package/dist/src/PrismicRichText/PrismicRichTextDefaultComponent.vue_vue_type_script_setup_true_lang.js +54 -34
- package/dist/src/PrismicRichText/PrismicRichTextDefaultComponent.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/src/PrismicRichText/PrismicRichTextSerialize.cjs.map +1 -1
- package/dist/src/PrismicRichText/PrismicRichTextSerialize.js.map +1 -1
- package/dist/src/PrismicRichText/PrismicRichTextSerialize.vue_vue_type_script_setup_true_lang.cjs +9 -29
- package/dist/src/PrismicRichText/PrismicRichTextSerialize.vue_vue_type_script_setup_true_lang.cjs.map +1 -1
- package/dist/src/PrismicRichText/PrismicRichTextSerialize.vue_vue_type_script_setup_true_lang.js +10 -30
- package/dist/src/PrismicRichText/PrismicRichTextSerialize.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/src/PrismicRichText/types.d.ts +18 -5
- package/dist/src/PrismicRichText/types.d.ts.map +1 -1
- package/dist/src/PrismicTable/PrismicTable.cjs.map +1 -1
- package/dist/src/PrismicTable/PrismicTable.js.map +1 -1
- package/dist/src/PrismicTable/PrismicTable.vue.d.ts +13 -13
- package/dist/src/PrismicTable/PrismicTable.vue.d.ts.map +1 -1
- package/dist/src/PrismicTable/PrismicTable.vue_vue_type_script_setup_true_lang.cjs +47 -19
- package/dist/src/PrismicTable/PrismicTable.vue_vue_type_script_setup_true_lang.cjs.map +1 -1
- package/dist/src/PrismicTable/PrismicTable.vue_vue_type_script_setup_true_lang.js +48 -20
- package/dist/src/PrismicTable/PrismicTable.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/src/PrismicTable/PrismicTableDefaultComponents.cjs +36 -18
- package/dist/src/PrismicTable/PrismicTableDefaultComponents.cjs.map +1 -1
- package/dist/src/PrismicTable/PrismicTableDefaultComponents.js +36 -18
- package/dist/src/PrismicTable/PrismicTableDefaultComponents.js.map +1 -1
- package/dist/src/PrismicTable/PrismicTableRow.cjs.map +1 -1
- package/dist/src/PrismicTable/PrismicTableRow.js.map +1 -1
- package/dist/src/PrismicTable/PrismicTableRow.vue_vue_type_script_setup_true_lang.cjs +13 -10
- package/dist/src/PrismicTable/PrismicTableRow.vue_vue_type_script_setup_true_lang.cjs.map +1 -1
- package/dist/src/PrismicTable/PrismicTableRow.vue_vue_type_script_setup_true_lang.js +14 -11
- package/dist/src/PrismicTable/PrismicTableRow.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/src/PrismicTable/types.d.ts +8 -8
- package/dist/src/PrismicTable/types.d.ts.map +1 -1
- package/dist/src/PrismicText.cjs.map +1 -1
- package/dist/src/PrismicText.js.map +1 -1
- package/dist/src/PrismicText.vue.d.ts +1 -11
- package/dist/src/PrismicText.vue.d.ts.map +1 -1
- package/dist/src/PrismicText.vue_vue_type_script_setup_true_lang.cjs +1 -12
- package/dist/src/PrismicText.vue_vue_type_script_setup_true_lang.cjs.map +1 -1
- package/dist/src/PrismicText.vue_vue_type_script_setup_true_lang.js +3 -14
- package/dist/src/PrismicText.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/src/SliceZone/SliceZone.cjs.map +1 -1
- package/dist/src/SliceZone/SliceZone.js.map +1 -1
- package/dist/src/SliceZone/SliceZone.vue.d.ts +5 -24
- package/dist/src/SliceZone/SliceZone.vue.d.ts.map +1 -1
- package/dist/src/SliceZone/SliceZone.vue_vue_type_script_setup_true_lang.cjs +5 -17
- package/dist/src/SliceZone/SliceZone.vue_vue_type_script_setup_true_lang.cjs.map +1 -1
- package/dist/src/SliceZone/SliceZone.vue_vue_type_script_setup_true_lang.js +6 -18
- package/dist/src/SliceZone/SliceZone.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/src/types.cjs +9 -0
- package/dist/src/types.cjs.map +1 -0
- package/dist/src/types.d.ts +3 -352
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js +8 -0
- package/dist/src/types.js.map +1 -0
- package/dist/types.d.cts +3 -352
- package/dist/types.d.cts.map +1 -1
- package/package.json +6 -5
- package/src/PrismicImage.vue +10 -27
- package/src/PrismicLink.vue +18 -43
- package/src/PrismicRichText/PrismicRichText.vue +68 -118
- package/src/PrismicRichText/PrismicRichTextDefaultComponent.vue +61 -19
- package/src/PrismicRichText/PrismicRichTextSerialize.vue +5 -30
- package/src/PrismicRichText/types.ts +33 -14
- package/src/PrismicTable/PrismicTable.vue +50 -23
- package/src/PrismicTable/PrismicTableDefaultComponents.ts +45 -20
- package/src/PrismicTable/PrismicTableRow.vue +17 -24
- package/src/PrismicTable/types.ts +28 -15
- package/src/PrismicText.vue +3 -18
- package/src/SliceZone/SliceZone.vue +12 -41
- package/src/index.ts +13 -21
- package/src/types.ts +30 -438
- package/dist/PrismicEmbed.vue.d.cts +0 -25
- package/dist/PrismicEmbed.vue.d.cts.map +0 -1
- package/dist/createPrismic.d.cts +0 -29
- package/dist/createPrismic.d.cts.map +0 -1
- package/dist/src/PrismicEmbed.cjs +0 -8
- package/dist/src/PrismicEmbed.cjs.map +0 -1
- package/dist/src/PrismicEmbed.js +0 -8
- package/dist/src/PrismicEmbed.js.map +0 -1
- package/dist/src/PrismicEmbed.vue.d.ts +0 -25
- package/dist/src/PrismicEmbed.vue.d.ts.map +0 -1
- package/dist/src/PrismicEmbed.vue_vue_type_script_setup_true_lang.cjs +0 -42
- package/dist/src/PrismicEmbed.vue_vue_type_script_setup_true_lang.cjs.map +0 -1
- package/dist/src/PrismicEmbed.vue_vue_type_script_setup_true_lang.js +0 -42
- package/dist/src/PrismicEmbed.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/src/PrismicRichText/DeprecatedPrismicRichText.cjs +0 -8
- package/dist/src/PrismicRichText/DeprecatedPrismicRichText.cjs.map +0 -1
- package/dist/src/PrismicRichText/DeprecatedPrismicRichText.js +0 -8
- package/dist/src/PrismicRichText/DeprecatedPrismicRichText.js.map +0 -1
- package/dist/src/PrismicRichText/DeprecatedPrismicRichText.vue_vue_type_script_setup_true_lang.cjs +0 -92
- package/dist/src/PrismicRichText/DeprecatedPrismicRichText.vue_vue_type_script_setup_true_lang.cjs.map +0 -1
- package/dist/src/PrismicRichText/DeprecatedPrismicRichText.vue_vue_type_script_setup_true_lang.js +0 -92
- package/dist/src/PrismicRichText/DeprecatedPrismicRichText.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/src/createPrismic.cjs +0 -85
- package/dist/src/createPrismic.cjs.map +0 -1
- package/dist/src/createPrismic.d.ts +0 -29
- package/dist/src/createPrismic.d.ts.map +0 -1
- package/dist/src/createPrismic.js +0 -85
- package/dist/src/createPrismic.js.map +0 -1
- package/dist/src/lib/Wrapper.cjs +0 -8
- package/dist/src/lib/Wrapper.cjs.map +0 -1
- package/dist/src/lib/Wrapper.js +0 -8
- package/dist/src/lib/Wrapper.js.map +0 -1
- package/dist/src/lib/Wrapper.vue_vue_type_script_setup_true_lang.cjs +0 -22
- package/dist/src/lib/Wrapper.vue_vue_type_script_setup_true_lang.cjs.map +0 -1
- package/dist/src/lib/Wrapper.vue_vue_type_script_setup_true_lang.js +0 -22
- package/dist/src/lib/Wrapper.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/src/usePrismic.cjs +0 -38
- package/dist/src/usePrismic.cjs.map +0 -1
- package/dist/src/usePrismic.d.ts +0 -36
- package/dist/src/usePrismic.d.ts.map +0 -1
- package/dist/src/usePrismic.js +0 -37
- package/dist/src/usePrismic.js.map +0 -1
- package/dist/usePrismic.d.cts +0 -36
- package/dist/usePrismic.d.cts.map +0 -1
- package/src/PrismicEmbed.vue +0 -42
- package/src/PrismicRichText/DeprecatedPrismicRichText.vue +0 -146
- package/src/createPrismic.ts +0 -154
- package/src/lib/Wrapper.vue +0 -22
- package/src/usePrismic.ts +0 -36
package/dist/src/usePrismic.d.ts
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { PrismicPlugin } from "./types.js";
|
|
2
|
-
import { InjectionKey } from "vue";
|
|
3
|
-
|
|
4
|
-
//#region src/usePrismic.d.ts
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* `@prismicio/vue` plugin interface interface location used for
|
|
8
|
-
* {@link usePrismic}.
|
|
9
|
-
*
|
|
10
|
-
* @internal
|
|
11
|
-
*/
|
|
12
|
-
declare const prismicKey: InjectionKey<PrismicPlugin>;
|
|
13
|
-
/**
|
|
14
|
-
* Accesses `@prismicio/vue` plugin interface.
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
*
|
|
18
|
-
* ```javascript
|
|
19
|
-
* // With the composition API
|
|
20
|
-
* import { usePrismic } from "@prismicio/vue"
|
|
21
|
-
*
|
|
22
|
-
* export default {
|
|
23
|
-
* setup() {
|
|
24
|
-
* const prismic = usePrismic()
|
|
25
|
-
*
|
|
26
|
-
* return {}
|
|
27
|
-
* },
|
|
28
|
-
* }
|
|
29
|
-
* ```
|
|
30
|
-
*
|
|
31
|
-
* @returns The interface {@link PrismicPlugin}
|
|
32
|
-
*/
|
|
33
|
-
declare const usePrismic: () => PrismicPlugin;
|
|
34
|
-
//#endregion
|
|
35
|
-
export { prismicKey, usePrismic };
|
|
36
|
-
//# sourceMappingURL=usePrismic.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"usePrismic.d.ts","names":[],"sources":["../../src/usePrismic.ts"],"sourcesContent":[],"mappings":";;;;;;;AAWA;AAsBA;;;cAtBa,YAAkC,aAAa;;;;;;;;;;;;;;;;;;;;;cAsB/C,kBAAiB"}
|
package/dist/src/usePrismic.js
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { inject } from "vue";
|
|
2
|
-
|
|
3
|
-
//#region src/usePrismic.ts
|
|
4
|
-
/**
|
|
5
|
-
* `@prismicio/vue` plugin interface interface location used for
|
|
6
|
-
* {@link usePrismic}.
|
|
7
|
-
*
|
|
8
|
-
* @internal
|
|
9
|
-
*/
|
|
10
|
-
const prismicKey = Symbol("prismic");
|
|
11
|
-
/**
|
|
12
|
-
* Accesses `@prismicio/vue` plugin interface.
|
|
13
|
-
*
|
|
14
|
-
* @example
|
|
15
|
-
*
|
|
16
|
-
* ```javascript
|
|
17
|
-
* // With the composition API
|
|
18
|
-
* import { usePrismic } from "@prismicio/vue"
|
|
19
|
-
*
|
|
20
|
-
* export default {
|
|
21
|
-
* setup() {
|
|
22
|
-
* const prismic = usePrismic()
|
|
23
|
-
*
|
|
24
|
-
* return {}
|
|
25
|
-
* },
|
|
26
|
-
* }
|
|
27
|
-
* ```
|
|
28
|
-
*
|
|
29
|
-
* @returns The interface {@link PrismicPlugin}
|
|
30
|
-
*/
|
|
31
|
-
const usePrismic = () => {
|
|
32
|
-
return inject(prismicKey, { options: { endpoint: "" } });
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
//#endregion
|
|
36
|
-
export { prismicKey, usePrismic };
|
|
37
|
-
//# sourceMappingURL=usePrismic.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"usePrismic.js","names":[],"sources":["../../src/usePrismic.ts"],"sourcesContent":["import type { InjectionKey } from \"vue\"\nimport { inject } from \"vue\"\n\nimport type { PrismicPlugin } from \"./types\"\n\n/**\n * `@prismicio/vue` plugin interface interface location used for\n * {@link usePrismic}.\n *\n * @internal\n */\nexport const prismicKey = Symbol(\"prismic\") as InjectionKey<PrismicPlugin>\n\n/**\n * Accesses `@prismicio/vue` plugin interface.\n *\n * @example\n *\n * ```javascript\n * // With the composition API\n * import { usePrismic } from \"@prismicio/vue\"\n *\n * export default {\n * \tsetup() {\n * \t\tconst prismic = usePrismic()\n *\n * \t\treturn {}\n * \t},\n * }\n * ```\n *\n * @returns The interface {@link PrismicPlugin}\n */\nexport const usePrismic = (): PrismicPlugin => {\n\treturn inject(prismicKey, { options: { endpoint: \"\" } } as PrismicPlugin)\n}\n"],"mappings":";;;;;;;;;AAWA,MAAa,aAAa,OAAO,UAAU;;;;;;;;;;;;;;;;;;;;;AAsB3C,MAAa,mBAAkC;AAC9C,QAAO,OAAO,YAAY,EAAE,SAAS,EAAE,UAAU,IAAI,EAAE,CAAkB"}
|
package/dist/usePrismic.d.cts
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { PrismicPlugin } from "./types.cjs";
|
|
2
|
-
import { InjectionKey } from "vue";
|
|
3
|
-
|
|
4
|
-
//#region src/usePrismic.d.ts
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* `@prismicio/vue` plugin interface interface location used for
|
|
8
|
-
* {@link usePrismic}.
|
|
9
|
-
*
|
|
10
|
-
* @internal
|
|
11
|
-
*/
|
|
12
|
-
declare const prismicKey: InjectionKey<PrismicPlugin>;
|
|
13
|
-
/**
|
|
14
|
-
* Accesses `@prismicio/vue` plugin interface.
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
*
|
|
18
|
-
* ```javascript
|
|
19
|
-
* // With the composition API
|
|
20
|
-
* import { usePrismic } from "@prismicio/vue"
|
|
21
|
-
*
|
|
22
|
-
* export default {
|
|
23
|
-
* setup() {
|
|
24
|
-
* const prismic = usePrismic()
|
|
25
|
-
*
|
|
26
|
-
* return {}
|
|
27
|
-
* },
|
|
28
|
-
* }
|
|
29
|
-
* ```
|
|
30
|
-
*
|
|
31
|
-
* @returns The interface {@link PrismicPlugin}
|
|
32
|
-
*/
|
|
33
|
-
declare const usePrismic: () => PrismicPlugin;
|
|
34
|
-
//#endregion
|
|
35
|
-
export { prismicKey, usePrismic };
|
|
36
|
-
//# sourceMappingURL=usePrismic.d.cts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"usePrismic.d.cts","names":[],"sources":["../src/usePrismic.ts"],"sourcesContent":[],"mappings":";;;;;;;AAWA;AAsBA;;;cAtBa,YAAkC,aAAa;;;;;;;;;;;;;;;;;;;;;cAsB/C,kBAAiB"}
|
package/src/PrismicEmbed.vue
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
<script lang="ts" setup>
|
|
2
|
-
import type { EmbedField } from "@prismicio/client"
|
|
3
|
-
import { isFilled } from "@prismicio/client"
|
|
4
|
-
|
|
5
|
-
import type { ComponentOrTagName } from "./types"
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* The default component rendered to wrap the embed.
|
|
9
|
-
*/
|
|
10
|
-
const defaultWrapper = "div"
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Props for `<PrismicEmbed />`.
|
|
14
|
-
*/
|
|
15
|
-
export type PrismicEmbedProps = {
|
|
16
|
-
/**
|
|
17
|
-
* The Prismic EMbed field to render.
|
|
18
|
-
*/
|
|
19
|
-
field: EmbedField
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* An HTML tag name or a component used to wrap the output.
|
|
23
|
-
*
|
|
24
|
-
* @defaultValue `"div"`
|
|
25
|
-
*/
|
|
26
|
-
wrapper?: ComponentOrTagName
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
defineProps<PrismicEmbedProps>()
|
|
30
|
-
defineOptions({ name: "PrismicEmbed" })
|
|
31
|
-
</script>
|
|
32
|
-
|
|
33
|
-
<template>
|
|
34
|
-
<component
|
|
35
|
-
v-if="isFilled.embed(field)"
|
|
36
|
-
:is="wrapper || defaultWrapper"
|
|
37
|
-
:data-oembed="field.embed_url"
|
|
38
|
-
:data-oembed-type="field.type"
|
|
39
|
-
:data-oembed-provider="field.provider_name"
|
|
40
|
-
v-html="field.html"
|
|
41
|
-
/>
|
|
42
|
-
</template>
|
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
<script lang="ts" setup>
|
|
2
|
-
// TODO: Remove in v6
|
|
3
|
-
import { asHTML, isFilled } from "@prismicio/client"
|
|
4
|
-
import { DEV } from "esm-env"
|
|
5
|
-
import type { Component, PropType } from "vue"
|
|
6
|
-
import {
|
|
7
|
-
computed,
|
|
8
|
-
inject,
|
|
9
|
-
nextTick,
|
|
10
|
-
onBeforeUnmount,
|
|
11
|
-
onMounted,
|
|
12
|
-
ref,
|
|
13
|
-
watch,
|
|
14
|
-
} from "vue"
|
|
15
|
-
import { routerKey } from "vue-router"
|
|
16
|
-
|
|
17
|
-
import { devMsg } from "../lib/devMsg"
|
|
18
|
-
import { isInternalURL } from "../lib/isInternalURL"
|
|
19
|
-
|
|
20
|
-
import { usePrismic } from "../usePrismic"
|
|
21
|
-
|
|
22
|
-
import type { PrismicRichTextProps } from "./PrismicRichText.vue"
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* The default component rendered to wrap the HTML output.
|
|
26
|
-
*/
|
|
27
|
-
const defaultWrapper = "div"
|
|
28
|
-
|
|
29
|
-
// We're forced to declare props using the JavaScript syntax because `@vue/compiler-sfc`
|
|
30
|
-
// has limitations for inferring types from complex objects.
|
|
31
|
-
const props = defineProps({
|
|
32
|
-
field: {
|
|
33
|
-
type: Array as unknown as PropType<PrismicRichTextProps["field"]>,
|
|
34
|
-
},
|
|
35
|
-
fallback: {
|
|
36
|
-
type: String as PropType<string>,
|
|
37
|
-
},
|
|
38
|
-
linkResolver: {
|
|
39
|
-
type: Function as PropType<PrismicRichTextProps["linkResolver"]>,
|
|
40
|
-
},
|
|
41
|
-
serializer: {
|
|
42
|
-
type: [Object, Function] as PropType<PrismicRichTextProps["serializer"]>,
|
|
43
|
-
},
|
|
44
|
-
wrapper: {
|
|
45
|
-
type: [String, Object, Function] as PropType<
|
|
46
|
-
PrismicRichTextProps["wrapper"]
|
|
47
|
-
>,
|
|
48
|
-
},
|
|
49
|
-
})
|
|
50
|
-
defineOptions({ name: "DeprecatedPrismicRichText" })
|
|
51
|
-
|
|
52
|
-
const { options } = usePrismic()
|
|
53
|
-
|
|
54
|
-
if (DEV) {
|
|
55
|
-
onMounted(() => {
|
|
56
|
-
console.warn(
|
|
57
|
-
`[PrismicRichText] You're using the deprecated version of \`<PrismicRichText>\` because either the \`serializer\` prop or the plugin \`richTextSerializer\` option were provided. This API will be removed in a future major. For more details, see ${devMsg(
|
|
58
|
-
"html-serialization-is-deprecated-with-prismic-rich-text",
|
|
59
|
-
)}`,
|
|
60
|
-
)
|
|
61
|
-
})
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
const html = computed(() => {
|
|
65
|
-
if (!isFilled.richText(props.field)) {
|
|
66
|
-
return props.fallback ?? ""
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
const linkResolver = props.linkResolver ?? options.linkResolver
|
|
70
|
-
const serializer = props.serializer ?? options.richTextSerializer
|
|
71
|
-
|
|
72
|
-
return asHTML(props.field, { linkResolver, serializer })
|
|
73
|
-
})
|
|
74
|
-
|
|
75
|
-
// Internal links handling
|
|
76
|
-
const root = ref<HTMLElement | Comment | Component | null>(null)
|
|
77
|
-
|
|
78
|
-
const maybeRouter = inject(routerKey, null)
|
|
79
|
-
|
|
80
|
-
type InternalLink = {
|
|
81
|
-
element: HTMLAnchorElement
|
|
82
|
-
listener: EventListener
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
let links: InternalLink[] = []
|
|
86
|
-
|
|
87
|
-
const navigate: EventListener = function (
|
|
88
|
-
this: { href: string },
|
|
89
|
-
event: Event,
|
|
90
|
-
) {
|
|
91
|
-
event.preventDefault()
|
|
92
|
-
maybeRouter?.push(this.href)
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
const addListeners = () => {
|
|
96
|
-
const node: HTMLElement | Comment | null =
|
|
97
|
-
root.value && "$el" in root.value ? root.value.$el : root.value
|
|
98
|
-
if (node && "querySelectorAll" in node) {
|
|
99
|
-
// Get all internal link tags and add listeners on them
|
|
100
|
-
links = Array.from(node.querySelectorAll("a"))
|
|
101
|
-
.map((element) => {
|
|
102
|
-
const href = element.getAttribute("href")
|
|
103
|
-
|
|
104
|
-
if (href && isInternalURL(href)) {
|
|
105
|
-
const listener = navigate.bind({ href })
|
|
106
|
-
element.addEventListener("click", listener)
|
|
107
|
-
|
|
108
|
-
return { element, listener }
|
|
109
|
-
} else {
|
|
110
|
-
return false
|
|
111
|
-
}
|
|
112
|
-
})
|
|
113
|
-
.filter((link): link is InternalLink => link as boolean)
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
const removeListeners = () => {
|
|
118
|
-
links.forEach(({ element, listener }) =>
|
|
119
|
-
element.removeEventListener("click", listener),
|
|
120
|
-
)
|
|
121
|
-
links = []
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
onMounted(() => {
|
|
125
|
-
removeListeners()
|
|
126
|
-
nextTick(addListeners)
|
|
127
|
-
})
|
|
128
|
-
|
|
129
|
-
watch(html, () => {
|
|
130
|
-
removeListeners()
|
|
131
|
-
nextTick(addListeners)
|
|
132
|
-
})
|
|
133
|
-
|
|
134
|
-
onBeforeUnmount(() => {
|
|
135
|
-
removeListeners()
|
|
136
|
-
})
|
|
137
|
-
</script>
|
|
138
|
-
|
|
139
|
-
<template>
|
|
140
|
-
<component
|
|
141
|
-
v-if="isFilled.richText(field) || fallback"
|
|
142
|
-
ref="root"
|
|
143
|
-
:is="wrapper || defaultWrapper"
|
|
144
|
-
v-html="html"
|
|
145
|
-
/>
|
|
146
|
-
</template>
|
package/src/createPrismic.ts
DELETED
|
@@ -1,154 +0,0 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
Client,
|
|
3
|
-
HTMLRichTextFunctionSerializer,
|
|
4
|
-
HTMLRichTextMapSerializer,
|
|
5
|
-
LinkResolverFunction,
|
|
6
|
-
} from "@prismicio/client"
|
|
7
|
-
import {
|
|
8
|
-
asDate,
|
|
9
|
-
asHTML,
|
|
10
|
-
asImagePixelDensitySrcSet,
|
|
11
|
-
asImageSrc,
|
|
12
|
-
asImageWidthSrcSet,
|
|
13
|
-
asLink,
|
|
14
|
-
asLinkAttrs,
|
|
15
|
-
asText,
|
|
16
|
-
cookie,
|
|
17
|
-
createClient,
|
|
18
|
-
documentToLinkField,
|
|
19
|
-
filter,
|
|
20
|
-
isFilled,
|
|
21
|
-
} from "@prismicio/client"
|
|
22
|
-
import type { App } from "vue"
|
|
23
|
-
|
|
24
|
-
import type {
|
|
25
|
-
PrismicPlugin,
|
|
26
|
-
PrismicPluginClient,
|
|
27
|
-
PrismicPluginHelpers,
|
|
28
|
-
PrismicPluginOptions,
|
|
29
|
-
} from "./types"
|
|
30
|
-
|
|
31
|
-
import PrismicRichText from "./PrismicRichText/PrismicRichText.vue"
|
|
32
|
-
import PrismicTable from "./PrismicTable/PrismicTable.vue"
|
|
33
|
-
import SliceZone from "./SliceZone/SliceZone.vue"
|
|
34
|
-
|
|
35
|
-
import PrismicEmbed from "./PrismicEmbed.vue"
|
|
36
|
-
import PrismicImage from "./PrismicImage.vue"
|
|
37
|
-
import PrismicLink from "./PrismicLink.vue"
|
|
38
|
-
import PrismicText from "./PrismicText.vue"
|
|
39
|
-
import { prismicKey } from "./usePrismic"
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Creates a `@prismicio/vue` plugin instance that can be used by a Vue app.
|
|
43
|
-
*
|
|
44
|
-
* @param options - {@link PrismicPluginOptions}
|
|
45
|
-
*
|
|
46
|
-
* @returns `@prismicio/vue` plugin instance {@link PrismicPlugin}
|
|
47
|
-
*
|
|
48
|
-
* @see Prismic Official Vue.js documentation: {@link https://prismic.io/docs/technologies/vuejs}
|
|
49
|
-
* @see Plugin repository: {@link https://github.com/prismicio/prismic-vue}
|
|
50
|
-
*/
|
|
51
|
-
export const createPrismic = (options: PrismicPluginOptions): PrismicPlugin => {
|
|
52
|
-
// Create plugin client
|
|
53
|
-
let client: Client
|
|
54
|
-
if (options.client) {
|
|
55
|
-
client = options.client
|
|
56
|
-
} else {
|
|
57
|
-
client = createClient(options.endpoint, options.clientConfig)
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
const prismicClient: PrismicPluginClient = {
|
|
61
|
-
client,
|
|
62
|
-
filter,
|
|
63
|
-
cookie,
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
// Create plugin helpers
|
|
67
|
-
const prismicHelpers: PrismicPluginHelpers = {
|
|
68
|
-
asText,
|
|
69
|
-
asHTML: (richTextField, ...config) => {
|
|
70
|
-
const [configOrLinkResolver, maybeHTMLSerializer] = config
|
|
71
|
-
|
|
72
|
-
return asHTML(
|
|
73
|
-
richTextField,
|
|
74
|
-
typeof configOrLinkResolver === "function" ||
|
|
75
|
-
configOrLinkResolver == null
|
|
76
|
-
? {
|
|
77
|
-
linkResolver: configOrLinkResolver || options.linkResolver,
|
|
78
|
-
serializer:
|
|
79
|
-
(maybeHTMLSerializer as
|
|
80
|
-
| HTMLRichTextFunctionSerializer
|
|
81
|
-
| HTMLRichTextMapSerializer) || options.richTextSerializer,
|
|
82
|
-
}
|
|
83
|
-
: {
|
|
84
|
-
linkResolver: options.linkResolver,
|
|
85
|
-
serializer: options.richTextSerializer,
|
|
86
|
-
...configOrLinkResolver,
|
|
87
|
-
},
|
|
88
|
-
)
|
|
89
|
-
},
|
|
90
|
-
asLink: (linkField, config) => {
|
|
91
|
-
return asLink(
|
|
92
|
-
linkField,
|
|
93
|
-
typeof config === "function"
|
|
94
|
-
? { linkResolver: config }
|
|
95
|
-
: {
|
|
96
|
-
linkResolver: options.linkResolver,
|
|
97
|
-
// TODO: For some reasons, TypeScript narrows the type to "unknown" where it's supposed to be a union
|
|
98
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
99
|
-
...(config as any),
|
|
100
|
-
},
|
|
101
|
-
)
|
|
102
|
-
},
|
|
103
|
-
asLinkAttrs: (linkField, config) => {
|
|
104
|
-
return asLinkAttrs(linkField, {
|
|
105
|
-
// TODO: We can't really retrieve the generic type here, this might cause some unexpected type error in some edge-case scenario
|
|
106
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
107
|
-
linkResolver: options.linkResolver as LinkResolverFunction<any>,
|
|
108
|
-
...config,
|
|
109
|
-
})
|
|
110
|
-
},
|
|
111
|
-
asDate,
|
|
112
|
-
asImageSrc,
|
|
113
|
-
asImageWidthSrcSet,
|
|
114
|
-
asImagePixelDensitySrcSet,
|
|
115
|
-
isFilled,
|
|
116
|
-
documentToLinkField,
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
// Create plugin interface
|
|
120
|
-
const prismic: PrismicPlugin = {
|
|
121
|
-
options,
|
|
122
|
-
|
|
123
|
-
...prismicClient,
|
|
124
|
-
...prismicHelpers,
|
|
125
|
-
|
|
126
|
-
install(app: App): void {
|
|
127
|
-
app.provide(prismicKey, this)
|
|
128
|
-
app.config.globalProperties.$prismic = this
|
|
129
|
-
|
|
130
|
-
if (options.injectComponents !== false) {
|
|
131
|
-
app.component(PrismicLink.name!, PrismicLink)
|
|
132
|
-
app.component(PrismicEmbed.name!, PrismicEmbed)
|
|
133
|
-
app.component(PrismicImage.name!, PrismicImage)
|
|
134
|
-
app.component(PrismicTable.name!, PrismicTable)
|
|
135
|
-
app.component(PrismicText.name!, PrismicText)
|
|
136
|
-
app.component(PrismicRichText.name!, PrismicRichText)
|
|
137
|
-
app.component(SliceZone.name!, SliceZone)
|
|
138
|
-
}
|
|
139
|
-
},
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
return prismic
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
declare module "vue" {
|
|
146
|
-
export interface ComponentCustomProperties {
|
|
147
|
-
/**
|
|
148
|
-
* `@prismicio/vue` plugin interface exposed on `this`.
|
|
149
|
-
*
|
|
150
|
-
* @see `@prismicio/vue` plugin interface {@link PrismicPlugin}
|
|
151
|
-
*/
|
|
152
|
-
$prismic: PrismicPlugin
|
|
153
|
-
}
|
|
154
|
-
}
|
package/src/lib/Wrapper.vue
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
<script lang="ts" setup>
|
|
2
|
-
import type { ComponentOrTagName } from "../types"
|
|
3
|
-
|
|
4
|
-
defineProps<{
|
|
5
|
-
/**
|
|
6
|
-
* An HTML tag name or a component used to wrap the output. Output is not
|
|
7
|
-
* wrapped by default.
|
|
8
|
-
*
|
|
9
|
-
* @defaultValue `"template"` (no wrapper)
|
|
10
|
-
*/
|
|
11
|
-
wrapper?: ComponentOrTagName
|
|
12
|
-
}>()
|
|
13
|
-
</script>
|
|
14
|
-
|
|
15
|
-
<template>
|
|
16
|
-
<component v-if="wrapper" :is="wrapper" v-bind="$attrs">
|
|
17
|
-
<slot />
|
|
18
|
-
</component>
|
|
19
|
-
<template v-else>
|
|
20
|
-
<slot />
|
|
21
|
-
</template>
|
|
22
|
-
</template>
|
package/src/usePrismic.ts
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import type { InjectionKey } from "vue"
|
|
2
|
-
import { inject } from "vue"
|
|
3
|
-
|
|
4
|
-
import type { PrismicPlugin } from "./types"
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* `@prismicio/vue` plugin interface interface location used for
|
|
8
|
-
* {@link usePrismic}.
|
|
9
|
-
*
|
|
10
|
-
* @internal
|
|
11
|
-
*/
|
|
12
|
-
export const prismicKey = Symbol("prismic") as InjectionKey<PrismicPlugin>
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Accesses `@prismicio/vue` plugin interface.
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
*
|
|
19
|
-
* ```javascript
|
|
20
|
-
* // With the composition API
|
|
21
|
-
* import { usePrismic } from "@prismicio/vue"
|
|
22
|
-
*
|
|
23
|
-
* export default {
|
|
24
|
-
* setup() {
|
|
25
|
-
* const prismic = usePrismic()
|
|
26
|
-
*
|
|
27
|
-
* return {}
|
|
28
|
-
* },
|
|
29
|
-
* }
|
|
30
|
-
* ```
|
|
31
|
-
*
|
|
32
|
-
* @returns The interface {@link PrismicPlugin}
|
|
33
|
-
*/
|
|
34
|
-
export const usePrismic = (): PrismicPlugin => {
|
|
35
|
-
return inject(prismicKey, { options: { endpoint: "" } } as PrismicPlugin)
|
|
36
|
-
}
|