@prismicio/vue 4.2.3 → 5.0.0-alpha.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/README.md +4 -4
- package/dist/PrismicEmbed.vue.cjs +25 -0
- package/dist/PrismicEmbed.vue.cjs.map +1 -0
- package/dist/PrismicEmbed.vue.d.ts +19 -0
- package/dist/PrismicEmbed.vue.js +26 -0
- package/dist/PrismicEmbed.vue.js.map +1 -0
- package/dist/PrismicEmbed.vue2.cjs +4 -0
- package/dist/PrismicEmbed.vue2.cjs.map +1 -0
- package/dist/PrismicEmbed.vue2.js +5 -0
- package/dist/PrismicEmbed.vue2.js.map +1 -0
- package/dist/PrismicImage.vue.cjs +84 -0
- package/dist/PrismicImage.vue.cjs.map +1 -0
- package/dist/PrismicImage.vue.d.ts +224 -0
- package/dist/PrismicImage.vue.js +85 -0
- package/dist/PrismicImage.vue.js.map +1 -0
- package/dist/PrismicImage.vue2.cjs +4 -0
- package/dist/PrismicImage.vue2.cjs.map +1 -0
- package/dist/PrismicImage.vue2.js +5 -0
- package/dist/PrismicImage.vue2.js.map +1 -0
- package/dist/PrismicLink.vue.cjs +100 -0
- package/dist/PrismicLink.vue.cjs.map +1 -0
- package/dist/PrismicLink.vue.d.ts +278 -0
- package/dist/PrismicLink.vue.js +101 -0
- package/dist/PrismicLink.vue.js.map +1 -0
- package/dist/PrismicLink.vue2.cjs +4 -0
- package/dist/PrismicLink.vue2.cjs.map +1 -0
- package/dist/PrismicLink.vue2.js +5 -0
- package/dist/PrismicLink.vue2.js.map +1 -0
- package/dist/PrismicRichText/DeprecatedPrismicRichText.vue.cjs +90 -0
- package/dist/PrismicRichText/DeprecatedPrismicRichText.vue.cjs.map +1 -0
- package/dist/PrismicRichText/DeprecatedPrismicRichText.vue.d.ts +7 -0
- package/dist/PrismicRichText/DeprecatedPrismicRichText.vue.js +91 -0
- package/dist/PrismicRichText/DeprecatedPrismicRichText.vue.js.map +1 -0
- package/dist/PrismicRichText/DeprecatedPrismicRichText.vue2.cjs +4 -0
- package/dist/PrismicRichText/DeprecatedPrismicRichText.vue2.cjs.map +1 -0
- package/dist/PrismicRichText/DeprecatedPrismicRichText.vue2.js +5 -0
- package/dist/PrismicRichText/DeprecatedPrismicRichText.vue2.js.map +1 -0
- package/dist/PrismicRichText/PrismicRichText.vue.cjs +85 -0
- package/dist/PrismicRichText/PrismicRichText.vue.cjs.map +1 -0
- package/dist/PrismicRichText/PrismicRichText.vue.d.ts +57 -0
- package/dist/PrismicRichText/PrismicRichText.vue.js +86 -0
- package/dist/PrismicRichText/PrismicRichText.vue.js.map +1 -0
- package/dist/PrismicRichText/PrismicRichText.vue2.cjs +4 -0
- package/dist/PrismicRichText/PrismicRichText.vue2.cjs.map +1 -0
- package/dist/PrismicRichText/PrismicRichText.vue2.js +5 -0
- package/dist/PrismicRichText/PrismicRichText.vue2.js.map +1 -0
- package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue.cjs +133 -0
- package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue.cjs.map +1 -0
- package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue.d.ts +37 -0
- package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue.js +134 -0
- package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue.js.map +1 -0
- package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue2.cjs +4 -0
- package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue2.cjs.map +1 -0
- package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue2.js +5 -0
- package/dist/PrismicRichText/PrismicRichTextDefaultComponent.vue2.js.map +1 -0
- package/dist/PrismicRichText/PrismicRichTextSerialize.vue.cjs +47 -0
- package/dist/PrismicRichText/PrismicRichTextSerialize.vue.cjs.map +1 -0
- package/dist/PrismicRichText/PrismicRichTextSerialize.vue.d.ts +10 -0
- package/dist/PrismicRichText/PrismicRichTextSerialize.vue.js +48 -0
- package/dist/PrismicRichText/PrismicRichTextSerialize.vue.js.map +1 -0
- package/dist/PrismicRichText/PrismicRichTextSerialize.vue2.cjs +4 -0
- package/dist/PrismicRichText/PrismicRichTextSerialize.vue2.cjs.map +1 -0
- package/dist/PrismicRichText/PrismicRichTextSerialize.vue2.js +5 -0
- package/dist/PrismicRichText/PrismicRichTextSerialize.vue2.js.map +1 -0
- package/dist/PrismicRichText/getRichTextComponentProps.cjs +10 -0
- package/dist/PrismicRichText/getRichTextComponentProps.cjs.map +1 -0
- package/dist/PrismicRichText/getRichTextComponentProps.d.ts +49 -0
- package/dist/PrismicRichText/getRichTextComponentProps.js +10 -0
- package/dist/PrismicRichText/getRichTextComponentProps.js.map +1 -0
- package/dist/PrismicRichText/index.d.ts +2 -0
- package/dist/PrismicRichText/types.d.ts +22 -0
- package/dist/PrismicText.vue.cjs +43 -0
- package/dist/PrismicText.vue.cjs.map +1 -0
- package/dist/PrismicText.vue.d.ts +31 -0
- package/dist/PrismicText.vue.js +44 -0
- package/dist/PrismicText.vue.js.map +1 -0
- package/dist/PrismicText.vue2.cjs +4 -0
- package/dist/PrismicText.vue2.cjs.map +1 -0
- package/dist/PrismicText.vue2.js +5 -0
- package/dist/PrismicText.vue2.js.map +1 -0
- package/dist/SliceZone/SliceZone.vue.cjs +63 -0
- package/dist/SliceZone/SliceZone.vue.cjs.map +1 -0
- package/dist/SliceZone/SliceZone.vue.d.ts +40 -0
- package/dist/SliceZone/SliceZone.vue.js +64 -0
- package/dist/SliceZone/SliceZone.vue.js.map +1 -0
- package/dist/SliceZone/SliceZone.vue2.cjs +4 -0
- package/dist/SliceZone/SliceZone.vue2.cjs.map +1 -0
- package/dist/SliceZone/SliceZone.vue2.js +5 -0
- package/dist/SliceZone/SliceZone.vue2.js.map +1 -0
- package/dist/SliceZone/TODOSliceComponent.cjs +29 -0
- package/dist/SliceZone/TODOSliceComponent.cjs.map +1 -0
- package/dist/SliceZone/TODOSliceComponent.d.ts +9 -0
- package/dist/SliceZone/TODOSliceComponent.js +29 -0
- package/dist/SliceZone/TODOSliceComponent.js.map +1 -0
- package/dist/SliceZone/defineSliceZoneComponents.cjs +14 -0
- package/dist/SliceZone/defineSliceZoneComponents.cjs.map +1 -0
- package/dist/SliceZone/defineSliceZoneComponents.d.ts +36 -0
- package/dist/SliceZone/defineSliceZoneComponents.js +14 -0
- package/dist/SliceZone/defineSliceZoneComponents.js.map +1 -0
- package/dist/SliceZone/getSliceComponentProps.cjs +22 -0
- package/dist/SliceZone/getSliceComponentProps.cjs.map +1 -0
- package/dist/SliceZone/getSliceComponentProps.d.ts +66 -0
- package/dist/SliceZone/getSliceComponentProps.js +22 -0
- package/dist/SliceZone/getSliceComponentProps.js.map +1 -0
- package/dist/SliceZone/index.d.ts +4 -0
- package/dist/SliceZone/types.d.ts +97 -0
- package/dist/createPrismic.cjs +17 -50
- package/dist/createPrismic.cjs.map +1 -1
- package/dist/createPrismic.d.ts +10 -0
- package/dist/createPrismic.js +16 -27
- package/dist/createPrismic.js.map +1 -1
- package/dist/index.cjs +21 -40
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +19 -9
- package/dist/index.js +19 -38
- package/dist/index.js.map +1 -1
- package/dist/lib/Wrapper.vue.cjs +20 -0
- package/dist/lib/Wrapper.vue.cjs.map +1 -0
- package/dist/lib/Wrapper.vue.d.ts +34 -0
- package/dist/lib/Wrapper.vue.js +21 -0
- package/dist/lib/Wrapper.vue.js.map +1 -0
- package/dist/lib/Wrapper.vue2.cjs +4 -0
- package/dist/lib/Wrapper.vue2.cjs.map +1 -0
- package/dist/lib/Wrapper.vue2.js +5 -0
- package/dist/lib/Wrapper.vue2.js.map +1 -0
- package/dist/lib/devMsg.cjs +8 -0
- package/dist/lib/devMsg.cjs.map +1 -0
- package/dist/lib/devMsg.d.ts +16 -0
- package/dist/lib/devMsg.js +8 -0
- package/dist/lib/devMsg.js.map +1 -0
- package/dist/lib/isInternalURL.cjs.map +1 -1
- package/dist/lib/isInternalURL.js.map +1 -1
- package/dist/package.json.cjs +5 -0
- package/dist/package.json.cjs.map +1 -0
- package/dist/package.json.js +5 -0
- package/dist/package.json.js.map +1 -0
- package/dist/types.d.ts +42 -58
- package/dist/usePrismic.cjs +3 -2
- package/dist/usePrismic.cjs.map +1 -1
- package/dist/usePrismic.d.ts +13 -5
- package/dist/usePrismic.js +2 -1
- package/dist/usePrismic.js.map +1 -1
- package/package.json +33 -36
- package/src/PrismicEmbed.vue +42 -0
- package/src/PrismicImage.vue +160 -0
- package/src/PrismicLink.vue +191 -0
- package/src/PrismicRichText/DeprecatedPrismicRichText.vue +130 -0
- package/src/PrismicRichText/PrismicRichText.vue +157 -0
- package/src/PrismicRichText/PrismicRichTextDefaultComponent.vue +63 -0
- package/src/PrismicRichText/PrismicRichTextSerialize.vue +52 -0
- package/src/PrismicRichText/getRichTextComponentProps.ts +63 -0
- package/src/PrismicRichText/index.ts +3 -0
- package/src/PrismicRichText/types.ts +37 -0
- package/src/PrismicText.vue +63 -0
- package/src/SliceZone/SliceZone.vue +113 -0
- package/src/SliceZone/TODOSliceComponent.ts +49 -0
- package/src/SliceZone/defineSliceZoneComponents.ts +67 -0
- package/src/SliceZone/getSliceComponentProps.ts +98 -0
- package/src/SliceZone/index.ts +13 -0
- package/src/SliceZone/types.ts +163 -0
- package/src/createPrismic.ts +54 -53
- package/src/index.ts +33 -58
- package/src/lib/Wrapper.vue +22 -0
- package/src/lib/devMsg.ts +20 -0
- package/src/lib/isInternalURL.ts +4 -4
- package/src/types.ts +91 -109
- package/src/usePrismic.ts +16 -9
- package/dist/components/PrismicEmbed.cjs +0 -36
- package/dist/components/PrismicEmbed.cjs.map +0 -1
- package/dist/components/PrismicEmbed.d.ts +0 -59
- package/dist/components/PrismicEmbed.js +0 -36
- package/dist/components/PrismicEmbed.js.map +0 -1
- package/dist/components/PrismicImage.cjs +0 -122
- package/dist/components/PrismicImage.cjs.map +0 -1
- package/dist/components/PrismicImage.d.ts +0 -163
- package/dist/components/PrismicImage.js +0 -122
- package/dist/components/PrismicImage.js.map +0 -1
- package/dist/components/PrismicLink.cjs +0 -115
- package/dist/components/PrismicLink.cjs.map +0 -1
- package/dist/components/PrismicLink.d.ts +0 -192
- package/dist/components/PrismicLink.js +0 -115
- package/dist/components/PrismicLink.js.map +0 -1
- package/dist/components/PrismicRichText.cjs +0 -108
- package/dist/components/PrismicRichText.cjs.map +0 -1
- package/dist/components/PrismicRichText.d.ts +0 -161
- package/dist/components/PrismicRichText.js +0 -108
- package/dist/components/PrismicRichText.js.map +0 -1
- package/dist/components/PrismicText.cjs +0 -57
- package/dist/components/PrismicText.cjs.map +0 -1
- package/dist/components/PrismicText.d.ts +0 -119
- package/dist/components/PrismicText.js +0 -57
- package/dist/components/PrismicText.js.map +0 -1
- package/dist/components/SliceZone.cjs +0 -156
- package/dist/components/SliceZone.cjs.map +0 -1
- package/dist/components/SliceZone.d.ts +0 -375
- package/dist/components/SliceZone.js +0 -156
- package/dist/components/SliceZone.js.map +0 -1
- package/dist/components/index.d.ts +0 -12
- package/dist/composables.cjs +0 -40
- package/dist/composables.cjs.map +0 -1
- package/dist/composables.d.ts +0 -384
- package/dist/composables.js +0 -40
- package/dist/composables.js.map +0 -1
- package/dist/globalExtensions.d.ts +0 -11
- package/dist/injectionSymbols.cjs +0 -5
- package/dist/injectionSymbols.cjs.map +0 -1
- package/dist/injectionSymbols.d.ts +0 -9
- package/dist/injectionSymbols.js +0 -5
- package/dist/injectionSymbols.js.map +0 -1
- package/dist/lib/__PRODUCTION__.cjs +0 -8
- package/dist/lib/__PRODUCTION__.cjs.map +0 -1
- package/dist/lib/__PRODUCTION__.d.ts +0 -7
- package/dist/lib/__PRODUCTION__.js +0 -8
- package/dist/lib/__PRODUCTION__.js.map +0 -1
- package/dist/lib/getSlots.cjs +0 -19
- package/dist/lib/getSlots.cjs.map +0 -1
- package/dist/lib/getSlots.d.ts +0 -14
- package/dist/lib/getSlots.js +0 -19
- package/dist/lib/getSlots.js.map +0 -1
- package/dist/lib/simplyResolveComponent.cjs +0 -8
- package/dist/lib/simplyResolveComponent.cjs.map +0 -1
- package/dist/lib/simplyResolveComponent.d.ts +0 -12
- package/dist/lib/simplyResolveComponent.js +0 -8
- package/dist/lib/simplyResolveComponent.js.map +0 -1
- package/dist/useStatefulPrismicClientMethod.cjs +0 -39
- package/dist/useStatefulPrismicClientMethod.cjs.map +0 -1
- package/dist/useStatefulPrismicClientMethod.d.ts +0 -64
- package/dist/useStatefulPrismicClientMethod.js +0 -39
- package/dist/useStatefulPrismicClientMethod.js.map +0 -1
- package/src/components/PrismicEmbed.ts +0 -91
- package/src/components/PrismicImage.ts +0 -309
- package/src/components/PrismicLink.ts +0 -313
- package/src/components/PrismicRichText.ts +0 -282
- package/src/components/PrismicText.ts +0 -167
- package/src/components/SliceZone.ts +0 -619
- package/src/components/index.ts +0 -46
- package/src/composables.ts +0 -474
- package/src/globalExtensions.ts +0 -12
- package/src/injectionSymbols.ts +0 -17
- package/src/lib/__PRODUCTION__.ts +0 -12
- package/src/lib/getSlots.ts +0 -34
- package/src/lib/simplyResolveComponent.ts +0 -23
- package/src/useStatefulPrismicClientMethod.ts +0 -156
- package/vetur/attributes.json +0 -113
- package/vetur/tags.json +0 -60
package/dist/lib/getSlots.js
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
const getSlots = (parent, slots, defaultPayload) => {
|
|
2
|
-
if (typeof parent === "string") {
|
|
3
|
-
return slots.default && slots.default(defaultPayload);
|
|
4
|
-
} else {
|
|
5
|
-
if (slots.default) {
|
|
6
|
-
const content = slots.default(defaultPayload);
|
|
7
|
-
return {
|
|
8
|
-
...slots,
|
|
9
|
-
default: () => content
|
|
10
|
-
};
|
|
11
|
-
} else {
|
|
12
|
-
return slots;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
};
|
|
16
|
-
export {
|
|
17
|
-
getSlots
|
|
18
|
-
};
|
|
19
|
-
//# sourceMappingURL=getSlots.js.map
|
package/dist/lib/getSlots.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getSlots.js","sources":["../../../src/lib/getSlots.ts"],"sourcesContent":["import { ConcreteComponent, Slots, VNode } from \"vue\";\n\n/**\n * Get the appropriate `slots` object/array according to the provided parent,\n * fixing `Non-function value encountered for default slot.` warnings.\n *\n * @param parent - The parent inheriting slots\n * @param slots - The `slots` to transform for parent\n * @param defaultParams - The parameters to provide to the default slot\n *\n * @returns The appropriate slots object/array\n *\n * @internal\n */\nexport const getSlots = (\n\tparent: string | ConcreteComponent,\n\tslots: Slots,\n\tdefaultPayload?: unknown,\n): VNode[] | undefined | Slots => {\n\tif (typeof parent === \"string\") {\n\t\treturn slots.default && slots.default(defaultPayload);\n\t} else {\n\t\tif (slots.default) {\n\t\t\tconst content = slots.default(defaultPayload);\n\n\t\t\treturn {\n\t\t\t\t...slots,\n\t\t\t\tdefault: () => content,\n\t\t\t};\n\t\t} else {\n\t\t\treturn slots;\n\t\t}\n\t}\n};\n"],"names":[],"mappings":"AAcO,MAAM,WAAW,CACvB,QACA,OACA,mBACgC;AAC5B,MAAA,OAAO,WAAW,UAAU;AAC/B,WAAO,MAAM,WAAW,MAAM,QAAQ,cAAc;AAAA,EAAA,OAC9C;AACN,QAAI,MAAM,SAAS;AACZ,YAAA,UAAU,MAAM,QAAQ,cAAc;AAErC,aAAA;AAAA,QACN,GAAG;AAAA,QACH,SAAS,MAAM;AAAA,MAAA;AAAA,WAEV;AACC,aAAA;AAAA,IACR;AAAA,EACD;AACD;"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const vue = require("vue");
|
|
4
|
-
const simplyResolveComponent = (component) => {
|
|
5
|
-
return vue.resolveDynamicComponent(component);
|
|
6
|
-
};
|
|
7
|
-
exports.simplyResolveComponent = simplyResolveComponent;
|
|
8
|
-
//# sourceMappingURL=simplyResolveComponent.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"simplyResolveComponent.cjs","sources":["../../../src/lib/simplyResolveComponent.ts"],"sourcesContent":["import {\n\tConcreteComponent,\n\tDefineComponent,\n\tRaw,\n\tVNode,\n\tresolveDynamicComponent,\n} from \"vue\";\n\n/**\n * A stricter version of {@link resolveDynamicComponent} that resolves only type\n * {@link VNode} for existing components or provided `string`.\n *\n * @param component - An HTML tag name, a component, or a functional component\n *\n * @returns Resolved component as a {@link VNode} or provided `string`.\n *\n * @internal\n */\nexport const simplyResolveComponent = (\n\tcomponent: string | ConcreteComponent | Raw<DefineComponent>,\n): string | VNode => {\n\treturn resolveDynamicComponent(component) as string | VNode;\n};\n"],"names":["resolveDynamicComponent"],"mappings":";;;AAkBa,MAAA,yBAAyB,CACrC,cACmB;AACnB,SAAOA,IAAAA,wBAAwB,SAAS;AACzC;;"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { ConcreteComponent, DefineComponent, Raw, VNode } from "vue";
|
|
2
|
-
/**
|
|
3
|
-
* A stricter version of {@link resolveDynamicComponent} that resolves only type
|
|
4
|
-
* {@link VNode} for existing components or provided `string`.
|
|
5
|
-
*
|
|
6
|
-
* @param component - An HTML tag name, a component, or a functional component
|
|
7
|
-
*
|
|
8
|
-
* @returns Resolved component as a {@link VNode} or provided `string`.
|
|
9
|
-
*
|
|
10
|
-
* @internal
|
|
11
|
-
*/
|
|
12
|
-
export declare const simplyResolveComponent: (component: string | ConcreteComponent | Raw<DefineComponent>) => string | VNode;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"simplyResolveComponent.js","sources":["../../../src/lib/simplyResolveComponent.ts"],"sourcesContent":["import {\n\tConcreteComponent,\n\tDefineComponent,\n\tRaw,\n\tVNode,\n\tresolveDynamicComponent,\n} from \"vue\";\n\n/**\n * A stricter version of {@link resolveDynamicComponent} that resolves only type\n * {@link VNode} for existing components or provided `string`.\n *\n * @param component - An HTML tag name, a component, or a functional component\n *\n * @returns Resolved component as a {@link VNode} or provided `string`.\n *\n * @internal\n */\nexport const simplyResolveComponent = (\n\tcomponent: string | ConcreteComponent | Raw<DefineComponent>,\n): string | VNode => {\n\treturn resolveDynamicComponent(component) as string | VNode;\n};\n"],"names":[],"mappings":";AAkBa,MAAA,yBAAyB,CACrC,cACmB;AACnB,SAAO,wBAAwB,SAAS;AACzC;"}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const vue = require("vue");
|
|
4
|
-
const usePrismic = require("./usePrismic.cjs");
|
|
5
|
-
const isParams = (value) => {
|
|
6
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
7
|
-
};
|
|
8
|
-
const useStatefulPrismicClientMethod = (methodName, args) => {
|
|
9
|
-
const { client } = usePrismic.usePrismic();
|
|
10
|
-
const state = vue.ref(
|
|
11
|
-
"idle"
|
|
12
|
-
/* PrismicClientComposableState.Idle */
|
|
13
|
-
);
|
|
14
|
-
const data = vue.shallowRef(null);
|
|
15
|
-
const error = vue.ref(null);
|
|
16
|
-
const refresh = async () => {
|
|
17
|
-
const lastArg = vue.unref(args[args.length - 1]);
|
|
18
|
-
const { client: explicitClient, ...params } = isParams(lastArg) ? lastArg : {};
|
|
19
|
-
const argsWithoutParams = isParams(lastArg) ? args.slice(0, -1) : args;
|
|
20
|
-
state.value = "pending";
|
|
21
|
-
data.value = null;
|
|
22
|
-
error.value = null;
|
|
23
|
-
try {
|
|
24
|
-
data.value = await (vue.unref(explicitClient) || client)[methodName](...argsWithoutParams.map((arg) => vue.unref(arg)), params);
|
|
25
|
-
state.value = "success";
|
|
26
|
-
} catch (err) {
|
|
27
|
-
state.value = "error";
|
|
28
|
-
error.value = err;
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
const refArgs = args.filter((arg) => vue.isRef(arg));
|
|
32
|
-
if (refArgs.length) {
|
|
33
|
-
vue.watch(refArgs, refresh, { deep: true });
|
|
34
|
-
}
|
|
35
|
-
refresh();
|
|
36
|
-
return { state, data, error, refresh };
|
|
37
|
-
};
|
|
38
|
-
exports.useStatefulPrismicClientMethod = useStatefulPrismicClientMethod;
|
|
39
|
-
//# sourceMappingURL=useStatefulPrismicClientMethod.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useStatefulPrismicClientMethod.cjs","sources":["../../src/useStatefulPrismicClientMethod.ts"],"sourcesContent":["import {\n\tClient,\n\tForbiddenError,\n\tParsingError,\n\tPrismicError,\n} from \"@prismicio/client\";\nimport { Ref, isRef, ref, shallowRef, unref, watch } from \"vue\";\n\nimport { PrismicClientComposableState, VueUseParameters } from \"./types\";\n\nimport { usePrismic } from \"./usePrismic\";\n\n// Helpers\ntype UnwrapPromise<T> = T extends Promise<infer U> ? U : T;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype ClientMethodLike = (...args: any[]) => Promise<any> | any;\ntype ClientMethods = typeof Client.prototype;\ntype ClientError = PrismicError<unknown> | ParsingError | ForbiddenError;\n\n// Interfaces\n\n/**\n * @internal\n */\nexport type ClientMethodParameters<TMethodName extends keyof ClientMethods> =\n\tClientMethods[TMethodName] extends ClientMethodLike\n\t\t? VueUseParameters<Parameters<ClientMethods[TMethodName]>>\n\t\t: never;\n\n/**\n * @internal\n */\nexport type ClientMethodReturnType<TMethodName extends keyof ClientMethods> =\n\tClientMethods[TMethodName] extends ClientMethodLike\n\t\t? ReturnType<ClientMethods[TMethodName]>\n\t\t: never;\n\n/**\n * @internal\n */\nexport type ComposableOnlyParameters = {\n\tclient?: Ref<Client> | Client;\n};\n\n/**\n * The return type of a `@prismicio/client` Vue composable.\n *\n * @typeParam TData - The expected format of the `data` property of the returned\n * object\n */\nexport type ClientComposableReturnType<TData = unknown> = {\n\t/**\n\t * The current state of the composable's client method call.\n\t */\n\tstate: Ref<PrismicClientComposableState>;\n\n\t/**\n\t * Data returned by the client.\n\t */\n\tdata: Ref<TData | null>;\n\n\t/**\n\t * Error returned by the composable's client method call if in an errror\n\t * state.\n\t */\n\terror: Ref<ClientError | Error | null>;\n\n\t/**\n\t * Perform the composable's client method call again.\n\t */\n\trefresh: () => Promise<void>;\n};\n\n/**\n * Determines if a value is a `@prismicio/client` params object.\n *\n * @param value - The value to check\n *\n * @returns `true` if `value` is a `@prismicio/client` params object, `false`\n * otherwise\n */\nconst isParams = (\n\tvalue: unknown,\n): value is ClientMethodParameters<\"get\">[0] & ComposableOnlyParameters => {\n\t// This is a *very* naive check.\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n};\n\n/**\n * A low level Vue composable that uses provided method name on plugin or\n * provided client with given arguments. The composable has its own internal\n * state manager to report async status, such as pending or error statuses.\n *\n * @typeParam TClientMethodName - A method name from `@prismicio/client`\n * @typeParam TClientMethodArguments - The method expected arguments\n * @typeParam TClientMethodReturnType - The method expected return type\n *\n * @param method - The `@prismicio/client` method name to use\n * @param args - The arguments to use with requested method\n *\n * @returns The composable payload {@link ClientComposableReturnType}\n *\n * @internal\n */\nexport const useStatefulPrismicClientMethod = <\n\tTClientMethodName extends keyof ClientMethods,\n\tTClientMethodArguments extends ClientMethodParameters<TClientMethodName>,\n\tTClientMethodReturnType extends UnwrapPromise<\n\t\tClientMethodReturnType<TClientMethodName>\n\t>,\n>(\n\tmethodName: TClientMethodName,\n\targs: TClientMethodArguments,\n): ClientComposableReturnType<TClientMethodReturnType> => {\n\tconst { client } = usePrismic();\n\n\tconst state = ref<PrismicClientComposableState>(\n\t\tPrismicClientComposableState.Idle,\n\t);\n\tconst data = shallowRef<TClientMethodReturnType | null>(null);\n\tconst error = ref<ClientError | Error | null>(null);\n\tconst refresh = async (): Promise<void> => {\n\t\tconst lastArg = unref(args[args.length - 1]);\n\t\tconst { client: explicitClient, ...params } = isParams(lastArg)\n\t\t\t? (lastArg as ClientMethodParameters<\"get\">[0] & ComposableOnlyParameters)\n\t\t\t: ({} as ComposableOnlyParameters);\n\t\tconst argsWithoutParams = isParams(lastArg) ? args.slice(0, -1) : args;\n\n\t\tstate.value = PrismicClientComposableState.Pending;\n\t\tdata.value = null;\n\t\terror.value = null;\n\t\ttry {\n\t\t\tdata.value = await (\n\t\t\t\t(unref(explicitClient) || client)[methodName] as ClientMethodLike\n\t\t\t)(\n\t\t\t\t...argsWithoutParams.map((arg: Ref<unknown> | unknown) => unref(arg)),\n\t\t\t\tparams,\n\t\t\t);\n\t\t\tstate.value = PrismicClientComposableState.Success;\n\t\t} catch (err) {\n\t\t\tstate.value = PrismicClientComposableState.Error;\n\t\t\terror.value = err as ClientError | Error;\n\t\t}\n\t};\n\n\t// Watch reactive args\n\tconst refArgs = args.filter((arg) => isRef(arg));\n\tif (refArgs.length) {\n\t\twatch(refArgs, refresh, { deep: true });\n\t}\n\n\t// Fetch once\n\trefresh();\n\n\treturn { state, data, error, refresh };\n};\n"],"names":["usePrismic","ref","shallowRef","unref","isRef","watch"],"mappings":";;;;AAiFA,MAAM,WAAW,CAChB,UACyE;AAElE,SAAA,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAC3E;AAkBa,MAAA,iCAAiC,CAO7C,YACA,SACwD;AAClD,QAAA,EAAE,WAAWA,WAAAA;AAEnB,QAAM,QAAQC,IAAA;AAAA,IAAG;AAAA;AAAA,EAAA;AAGX,QAAA,OAAOC,eAA2C,IAAI;AACtD,QAAA,QAAQD,QAAgC,IAAI;AAClD,QAAM,UAAU,YAA0B;AACzC,UAAM,UAAUE,IAAAA,MAAM,KAAK,KAAK,SAAS,CAAC,CAAC;AACrC,UAAA,EAAE,QAAQ,gBAAgB,GAAG,OAAA,IAAW,SAAS,OAAO,IAC1D,UACA;AACE,UAAA,oBAAoB,SAAS,OAAO,IAAI,KAAK,MAAM,GAAG,EAAE,IAAI;AAElE,UAAM,QAAK;AACX,SAAK,QAAQ;AACb,UAAM,QAAQ;AACV,QAAA;AACH,WAAK,QAAQ,OACXA,IAAAA,MAAM,cAAc,KAAK,QAAQ,UAAU,EAE5C,GAAG,kBAAkB,IAAI,CAAC,QAAgCA,IAAAA,MAAM,GAAG,CAAC,GACpE,MAAM;AAEP,YAAM,QAAK;AAAA,aACH,KAAK;AACb,YAAM,QAAK;AACX,YAAM,QAAQ;AAAA,IACf;AAAA,EAAA;AAID,QAAM,UAAU,KAAK,OAAO,CAAC,QAAQC,IAAA,MAAM,GAAG,CAAC;AAC/C,MAAI,QAAQ,QAAQ;AACnBC,QAAA,MAAM,SAAS,SAAS,EAAE,MAAM,KAAM,CAAA;AAAA,EACvC;;AAKA,SAAO,EAAE,OAAO,MAAM,OAAO,QAAO;AACrC;;"}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { Client, ForbiddenError, ParsingError, PrismicError } from "@prismicio/client";
|
|
2
|
-
import { Ref } from "vue";
|
|
3
|
-
import { PrismicClientComposableState, VueUseParameters } from "./types";
|
|
4
|
-
type UnwrapPromise<T> = T extends Promise<infer U> ? U : T;
|
|
5
|
-
type ClientMethodLike = (...args: any[]) => Promise<any> | any;
|
|
6
|
-
type ClientMethods = typeof Client.prototype;
|
|
7
|
-
type ClientError = PrismicError<unknown> | ParsingError | ForbiddenError;
|
|
8
|
-
/**
|
|
9
|
-
* @internal
|
|
10
|
-
*/
|
|
11
|
-
export type ClientMethodParameters<TMethodName extends keyof ClientMethods> = ClientMethods[TMethodName] extends ClientMethodLike ? VueUseParameters<Parameters<ClientMethods[TMethodName]>> : never;
|
|
12
|
-
/**
|
|
13
|
-
* @internal
|
|
14
|
-
*/
|
|
15
|
-
export type ClientMethodReturnType<TMethodName extends keyof ClientMethods> = ClientMethods[TMethodName] extends ClientMethodLike ? ReturnType<ClientMethods[TMethodName]> : never;
|
|
16
|
-
/**
|
|
17
|
-
* @internal
|
|
18
|
-
*/
|
|
19
|
-
export type ComposableOnlyParameters = {
|
|
20
|
-
client?: Ref<Client> | Client;
|
|
21
|
-
};
|
|
22
|
-
/**
|
|
23
|
-
* The return type of a `@prismicio/client` Vue composable.
|
|
24
|
-
*
|
|
25
|
-
* @typeParam TData - The expected format of the `data` property of the returned
|
|
26
|
-
* object
|
|
27
|
-
*/
|
|
28
|
-
export type ClientComposableReturnType<TData = unknown> = {
|
|
29
|
-
/**
|
|
30
|
-
* The current state of the composable's client method call.
|
|
31
|
-
*/
|
|
32
|
-
state: Ref<PrismicClientComposableState>;
|
|
33
|
-
/**
|
|
34
|
-
* Data returned by the client.
|
|
35
|
-
*/
|
|
36
|
-
data: Ref<TData | null>;
|
|
37
|
-
/**
|
|
38
|
-
* Error returned by the composable's client method call if in an errror
|
|
39
|
-
* state.
|
|
40
|
-
*/
|
|
41
|
-
error: Ref<ClientError | Error | null>;
|
|
42
|
-
/**
|
|
43
|
-
* Perform the composable's client method call again.
|
|
44
|
-
*/
|
|
45
|
-
refresh: () => Promise<void>;
|
|
46
|
-
};
|
|
47
|
-
/**
|
|
48
|
-
* A low level Vue composable that uses provided method name on plugin or
|
|
49
|
-
* provided client with given arguments. The composable has its own internal
|
|
50
|
-
* state manager to report async status, such as pending or error statuses.
|
|
51
|
-
*
|
|
52
|
-
* @typeParam TClientMethodName - A method name from `@prismicio/client`
|
|
53
|
-
* @typeParam TClientMethodArguments - The method expected arguments
|
|
54
|
-
* @typeParam TClientMethodReturnType - The method expected return type
|
|
55
|
-
*
|
|
56
|
-
* @param method - The `@prismicio/client` method name to use
|
|
57
|
-
* @param args - The arguments to use with requested method
|
|
58
|
-
*
|
|
59
|
-
* @returns The composable payload {@link ClientComposableReturnType}
|
|
60
|
-
*
|
|
61
|
-
* @internal
|
|
62
|
-
*/
|
|
63
|
-
export declare const useStatefulPrismicClientMethod: <TClientMethodName extends keyof ClientMethods, TClientMethodArguments extends ClientMethodParameters<TClientMethodName>, TClientMethodReturnType extends UnwrapPromise<ClientMethodReturnType<TClientMethodName>>>(methodName: TClientMethodName, args: TClientMethodArguments) => ClientComposableReturnType<TClientMethodReturnType>;
|
|
64
|
-
export {};
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { ref, shallowRef, isRef, watch, unref } from "vue";
|
|
2
|
-
import { usePrismic } from "./usePrismic.js";
|
|
3
|
-
const isParams = (value) => {
|
|
4
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
5
|
-
};
|
|
6
|
-
const useStatefulPrismicClientMethod = (methodName, args) => {
|
|
7
|
-
const { client } = usePrismic();
|
|
8
|
-
const state = ref(
|
|
9
|
-
"idle"
|
|
10
|
-
/* PrismicClientComposableState.Idle */
|
|
11
|
-
);
|
|
12
|
-
const data = shallowRef(null);
|
|
13
|
-
const error = ref(null);
|
|
14
|
-
const refresh = async () => {
|
|
15
|
-
const lastArg = unref(args[args.length - 1]);
|
|
16
|
-
const { client: explicitClient, ...params } = isParams(lastArg) ? lastArg : {};
|
|
17
|
-
const argsWithoutParams = isParams(lastArg) ? args.slice(0, -1) : args;
|
|
18
|
-
state.value = "pending";
|
|
19
|
-
data.value = null;
|
|
20
|
-
error.value = null;
|
|
21
|
-
try {
|
|
22
|
-
data.value = await (unref(explicitClient) || client)[methodName](...argsWithoutParams.map((arg) => unref(arg)), params);
|
|
23
|
-
state.value = "success";
|
|
24
|
-
} catch (err) {
|
|
25
|
-
state.value = "error";
|
|
26
|
-
error.value = err;
|
|
27
|
-
}
|
|
28
|
-
};
|
|
29
|
-
const refArgs = args.filter((arg) => isRef(arg));
|
|
30
|
-
if (refArgs.length) {
|
|
31
|
-
watch(refArgs, refresh, { deep: true });
|
|
32
|
-
}
|
|
33
|
-
refresh();
|
|
34
|
-
return { state, data, error, refresh };
|
|
35
|
-
};
|
|
36
|
-
export {
|
|
37
|
-
useStatefulPrismicClientMethod
|
|
38
|
-
};
|
|
39
|
-
//# sourceMappingURL=useStatefulPrismicClientMethod.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useStatefulPrismicClientMethod.js","sources":["../../src/useStatefulPrismicClientMethod.ts"],"sourcesContent":["import {\n\tClient,\n\tForbiddenError,\n\tParsingError,\n\tPrismicError,\n} from \"@prismicio/client\";\nimport { Ref, isRef, ref, shallowRef, unref, watch } from \"vue\";\n\nimport { PrismicClientComposableState, VueUseParameters } from \"./types\";\n\nimport { usePrismic } from \"./usePrismic\";\n\n// Helpers\ntype UnwrapPromise<T> = T extends Promise<infer U> ? U : T;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype ClientMethodLike = (...args: any[]) => Promise<any> | any;\ntype ClientMethods = typeof Client.prototype;\ntype ClientError = PrismicError<unknown> | ParsingError | ForbiddenError;\n\n// Interfaces\n\n/**\n * @internal\n */\nexport type ClientMethodParameters<TMethodName extends keyof ClientMethods> =\n\tClientMethods[TMethodName] extends ClientMethodLike\n\t\t? VueUseParameters<Parameters<ClientMethods[TMethodName]>>\n\t\t: never;\n\n/**\n * @internal\n */\nexport type ClientMethodReturnType<TMethodName extends keyof ClientMethods> =\n\tClientMethods[TMethodName] extends ClientMethodLike\n\t\t? ReturnType<ClientMethods[TMethodName]>\n\t\t: never;\n\n/**\n * @internal\n */\nexport type ComposableOnlyParameters = {\n\tclient?: Ref<Client> | Client;\n};\n\n/**\n * The return type of a `@prismicio/client` Vue composable.\n *\n * @typeParam TData - The expected format of the `data` property of the returned\n * object\n */\nexport type ClientComposableReturnType<TData = unknown> = {\n\t/**\n\t * The current state of the composable's client method call.\n\t */\n\tstate: Ref<PrismicClientComposableState>;\n\n\t/**\n\t * Data returned by the client.\n\t */\n\tdata: Ref<TData | null>;\n\n\t/**\n\t * Error returned by the composable's client method call if in an errror\n\t * state.\n\t */\n\terror: Ref<ClientError | Error | null>;\n\n\t/**\n\t * Perform the composable's client method call again.\n\t */\n\trefresh: () => Promise<void>;\n};\n\n/**\n * Determines if a value is a `@prismicio/client` params object.\n *\n * @param value - The value to check\n *\n * @returns `true` if `value` is a `@prismicio/client` params object, `false`\n * otherwise\n */\nconst isParams = (\n\tvalue: unknown,\n): value is ClientMethodParameters<\"get\">[0] & ComposableOnlyParameters => {\n\t// This is a *very* naive check.\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n};\n\n/**\n * A low level Vue composable that uses provided method name on plugin or\n * provided client with given arguments. The composable has its own internal\n * state manager to report async status, such as pending or error statuses.\n *\n * @typeParam TClientMethodName - A method name from `@prismicio/client`\n * @typeParam TClientMethodArguments - The method expected arguments\n * @typeParam TClientMethodReturnType - The method expected return type\n *\n * @param method - The `@prismicio/client` method name to use\n * @param args - The arguments to use with requested method\n *\n * @returns The composable payload {@link ClientComposableReturnType}\n *\n * @internal\n */\nexport const useStatefulPrismicClientMethod = <\n\tTClientMethodName extends keyof ClientMethods,\n\tTClientMethodArguments extends ClientMethodParameters<TClientMethodName>,\n\tTClientMethodReturnType extends UnwrapPromise<\n\t\tClientMethodReturnType<TClientMethodName>\n\t>,\n>(\n\tmethodName: TClientMethodName,\n\targs: TClientMethodArguments,\n): ClientComposableReturnType<TClientMethodReturnType> => {\n\tconst { client } = usePrismic();\n\n\tconst state = ref<PrismicClientComposableState>(\n\t\tPrismicClientComposableState.Idle,\n\t);\n\tconst data = shallowRef<TClientMethodReturnType | null>(null);\n\tconst error = ref<ClientError | Error | null>(null);\n\tconst refresh = async (): Promise<void> => {\n\t\tconst lastArg = unref(args[args.length - 1]);\n\t\tconst { client: explicitClient, ...params } = isParams(lastArg)\n\t\t\t? (lastArg as ClientMethodParameters<\"get\">[0] & ComposableOnlyParameters)\n\t\t\t: ({} as ComposableOnlyParameters);\n\t\tconst argsWithoutParams = isParams(lastArg) ? args.slice(0, -1) : args;\n\n\t\tstate.value = PrismicClientComposableState.Pending;\n\t\tdata.value = null;\n\t\terror.value = null;\n\t\ttry {\n\t\t\tdata.value = await (\n\t\t\t\t(unref(explicitClient) || client)[methodName] as ClientMethodLike\n\t\t\t)(\n\t\t\t\t...argsWithoutParams.map((arg: Ref<unknown> | unknown) => unref(arg)),\n\t\t\t\tparams,\n\t\t\t);\n\t\t\tstate.value = PrismicClientComposableState.Success;\n\t\t} catch (err) {\n\t\t\tstate.value = PrismicClientComposableState.Error;\n\t\t\terror.value = err as ClientError | Error;\n\t\t}\n\t};\n\n\t// Watch reactive args\n\tconst refArgs = args.filter((arg) => isRef(arg));\n\tif (refArgs.length) {\n\t\twatch(refArgs, refresh, { deep: true });\n\t}\n\n\t// Fetch once\n\trefresh();\n\n\treturn { state, data, error, refresh };\n};\n"],"names":[],"mappings":";;AAiFA,MAAM,WAAW,CAChB,UACyE;AAElE,SAAA,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAC3E;AAkBa,MAAA,iCAAiC,CAO7C,YACA,SACwD;AAClD,QAAA,EAAE,WAAW;AAEnB,QAAM,QAAQ;AAAA,IAAG;AAAA;AAAA,EAAA;AAGX,QAAA,OAAO,WAA2C,IAAI;AACtD,QAAA,QAAQ,IAAgC,IAAI;AAClD,QAAM,UAAU,YAA0B;AACzC,UAAM,UAAU,MAAM,KAAK,KAAK,SAAS,CAAC,CAAC;AACrC,UAAA,EAAE,QAAQ,gBAAgB,GAAG,OAAA,IAAW,SAAS,OAAO,IAC1D,UACA;AACE,UAAA,oBAAoB,SAAS,OAAO,IAAI,KAAK,MAAM,GAAG,EAAE,IAAI;AAElE,UAAM,QAAK;AACX,SAAK,QAAQ;AACb,UAAM,QAAQ;AACV,QAAA;AACH,WAAK,QAAQ,OACX,MAAM,cAAc,KAAK,QAAQ,UAAU,EAE5C,GAAG,kBAAkB,IAAI,CAAC,QAAgC,MAAM,GAAG,CAAC,GACpE,MAAM;AAEP,YAAM,QAAK;AAAA,aACH,KAAK;AACb,YAAM,QAAK;AACX,YAAM,QAAQ;AAAA,IACf;AAAA,EAAA;AAID,QAAM,UAAU,KAAK,OAAO,CAAC,QAAQ,MAAM,GAAG,CAAC;AAC/C,MAAI,QAAQ,QAAQ;AACnB,UAAM,SAAS,SAAS,EAAE,MAAM,KAAM,CAAA;AAAA,EACvC;;AAKA,SAAO,EAAE,OAAO,MAAM,OAAO,QAAO;AACrC;"}
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import { EmbedField } from "@prismicio/client";
|
|
2
|
-
import {
|
|
3
|
-
AllowedComponentProps,
|
|
4
|
-
ComponentCustomProps,
|
|
5
|
-
ConcreteComponent,
|
|
6
|
-
DefineComponent,
|
|
7
|
-
PropType,
|
|
8
|
-
Raw,
|
|
9
|
-
VNodeProps,
|
|
10
|
-
defineComponent,
|
|
11
|
-
h,
|
|
12
|
-
} from "vue";
|
|
13
|
-
|
|
14
|
-
import { simplyResolveComponent } from "../lib/simplyResolveComponent";
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* The default component rendered to wrap the embed.
|
|
18
|
-
*/
|
|
19
|
-
const defaultWrapper = "div";
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Props for `<PrismicEmbed />`.
|
|
23
|
-
*/
|
|
24
|
-
export type PrismicEmbedProps = {
|
|
25
|
-
/**
|
|
26
|
-
* The Prismic embed field to render.
|
|
27
|
-
*/
|
|
28
|
-
field: EmbedField;
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* An HTML tag name, a component, or a functional component used to wrap the
|
|
32
|
-
* output.
|
|
33
|
-
*
|
|
34
|
-
* @defaultValue `"div"`
|
|
35
|
-
*/
|
|
36
|
-
wrapper?: string | ConcreteComponent | Raw<DefineComponent>;
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* `<PrismicEmbed />` implementation.
|
|
41
|
-
*
|
|
42
|
-
* @internal
|
|
43
|
-
*/
|
|
44
|
-
export const PrismicEmbedImpl = /*#__PURE__*/ defineComponent({
|
|
45
|
-
name: "PrismicEmbed",
|
|
46
|
-
props: {
|
|
47
|
-
field: {
|
|
48
|
-
type: Object as PropType<EmbedField>,
|
|
49
|
-
required: true,
|
|
50
|
-
},
|
|
51
|
-
wrapper: {
|
|
52
|
-
type: [String, Object, Function] as PropType<
|
|
53
|
-
string | ConcreteComponent | Raw<DefineComponent>
|
|
54
|
-
>,
|
|
55
|
-
default: undefined,
|
|
56
|
-
required: false,
|
|
57
|
-
},
|
|
58
|
-
},
|
|
59
|
-
setup(props) {
|
|
60
|
-
// Prevent fatal if user didn't check for field, throws `Invalid prop` warn
|
|
61
|
-
if (!props.field) {
|
|
62
|
-
return () => null;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
return () => {
|
|
66
|
-
return h(simplyResolveComponent(props.wrapper || defaultWrapper), {
|
|
67
|
-
"data-oembed": props.field.embed_url,
|
|
68
|
-
"data-oembed-type": props.field.type,
|
|
69
|
-
"data-oembed-provider": props.field.provider_name,
|
|
70
|
-
innerHTML: props.field.html || null,
|
|
71
|
-
});
|
|
72
|
-
};
|
|
73
|
-
},
|
|
74
|
-
});
|
|
75
|
-
|
|
76
|
-
// export the public type for h/tsx inference
|
|
77
|
-
// also to avoid inline import() in generated d.ts files
|
|
78
|
-
/**
|
|
79
|
-
* Component to render a Prismic embed field.
|
|
80
|
-
*
|
|
81
|
-
* @see Component props {@link PrismicEmbedProps}
|
|
82
|
-
* @see Templating embed fields {@link https://prismic.io/docs/technologies/vue-template-content#embeds}
|
|
83
|
-
*/
|
|
84
|
-
export const PrismicEmbed = PrismicEmbedImpl as unknown as {
|
|
85
|
-
new (): {
|
|
86
|
-
$props: AllowedComponentProps &
|
|
87
|
-
ComponentCustomProps &
|
|
88
|
-
VNodeProps &
|
|
89
|
-
PrismicEmbedProps;
|
|
90
|
-
};
|
|
91
|
-
};
|
|
@@ -1,309 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
ImageField,
|
|
3
|
-
asImagePixelDensitySrcSet,
|
|
4
|
-
asImageSrc,
|
|
5
|
-
asImageWidthSrcSet,
|
|
6
|
-
isFilled,
|
|
7
|
-
} from "@prismicio/client";
|
|
8
|
-
import {
|
|
9
|
-
AllowedComponentProps,
|
|
10
|
-
ComponentCustomProps,
|
|
11
|
-
ComputedRef,
|
|
12
|
-
ConcreteComponent,
|
|
13
|
-
DefineComponent,
|
|
14
|
-
PropType,
|
|
15
|
-
Raw,
|
|
16
|
-
VNodeProps,
|
|
17
|
-
computed,
|
|
18
|
-
defineComponent,
|
|
19
|
-
h,
|
|
20
|
-
unref,
|
|
21
|
-
} from "vue";
|
|
22
|
-
|
|
23
|
-
import { __PRODUCTION__ } from "../lib/__PRODUCTION__";
|
|
24
|
-
import { simplyResolveComponent } from "../lib/simplyResolveComponent";
|
|
25
|
-
|
|
26
|
-
import { VueUseOptions } from "../types";
|
|
27
|
-
|
|
28
|
-
import { usePrismic } from "../usePrismic";
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* The default component rendered for images.
|
|
32
|
-
*/
|
|
33
|
-
const defaultImageComponent = "img";
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Props for `<PrismicImage />`.
|
|
37
|
-
*/
|
|
38
|
-
export type PrismicImageProps = {
|
|
39
|
-
/**
|
|
40
|
-
* The Prismic image field to render.
|
|
41
|
-
*/
|
|
42
|
-
field: ImageField | ImageField<string>;
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* An HTML tag name, a component, or a functional component used to render
|
|
46
|
-
* images.
|
|
47
|
-
*
|
|
48
|
-
* @remarks
|
|
49
|
-
* HTML tag names and components will be rendered using the `img` tag
|
|
50
|
-
* interface (`src`, `srcset`, and `alt` attribute). Components will also
|
|
51
|
-
* receive an additional `copyright` props.
|
|
52
|
-
* @defaultValue The one provided to `@prismicio/vue` plugin if configured, `"img"` otherwise.
|
|
53
|
-
*/
|
|
54
|
-
imageComponent?: string | ConcreteComponent | Raw<DefineComponent>;
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* An object of Imgix URL API parameters.
|
|
58
|
-
*
|
|
59
|
-
* @see Imgix URL parameters reference: https://docs.imgix.com/apis/rendering
|
|
60
|
-
*/
|
|
61
|
-
imgixParams?: Parameters<typeof asImageSrc>[1];
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* Adds an additional `srcset` attribute to the image following given widths.
|
|
65
|
-
*
|
|
66
|
-
* @remarks
|
|
67
|
-
* A special value of `"thumbnails"` is accepted to automatically use image
|
|
68
|
-
* widths coming from the API.
|
|
69
|
-
* @remarks
|
|
70
|
-
* A special value of `"defaults"` is accepted to automatically use image
|
|
71
|
-
* widths coming from the plugin configuration.
|
|
72
|
-
* @remarks
|
|
73
|
-
* This prop is not compatible with the `pixelDensities` prop. When both are
|
|
74
|
-
* used the `pixelDensities` prop will be ignored.
|
|
75
|
-
*/
|
|
76
|
-
widths?:
|
|
77
|
-
| NonNullable<Parameters<typeof asImageWidthSrcSet>[1]>["widths"]
|
|
78
|
-
| "thumbnails"
|
|
79
|
-
| "defaults";
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* Adds an additional `srcset` attribute to the image following giving pixel
|
|
83
|
-
* densities.
|
|
84
|
-
*
|
|
85
|
-
* @remarks
|
|
86
|
-
* A special value of `"defaults"` is accepted to automatically use image
|
|
87
|
-
* pixel densities coming from the plugin configuration.
|
|
88
|
-
* @remarks
|
|
89
|
-
* This prop is not compatible with the `widths` prop. When both are used, the
|
|
90
|
-
* `pixelDensities` prop will be ignored.
|
|
91
|
-
*/
|
|
92
|
-
pixelDensities?:
|
|
93
|
-
| NonNullable<
|
|
94
|
-
Parameters<typeof asImagePixelDensitySrcSet>[1]
|
|
95
|
-
>["pixelDensities"]
|
|
96
|
-
| "defaults";
|
|
97
|
-
};
|
|
98
|
-
|
|
99
|
-
/**
|
|
100
|
-
* Options for {@link usePrismicImage}.
|
|
101
|
-
*/
|
|
102
|
-
export type UsePrismicImageOptions = VueUseOptions<
|
|
103
|
-
Omit<PrismicImageProps, "imageComponent">
|
|
104
|
-
>;
|
|
105
|
-
|
|
106
|
-
/**
|
|
107
|
-
* Return type of {@link usePrismicImage}.
|
|
108
|
-
*/
|
|
109
|
-
export type UsePrismicImageReturnType = {
|
|
110
|
-
/**
|
|
111
|
-
* Resolved image `src` value.
|
|
112
|
-
*/
|
|
113
|
-
src: ComputedRef<string | null>;
|
|
114
|
-
|
|
115
|
-
/**
|
|
116
|
-
* Resolved image `srcset` value.
|
|
117
|
-
*/
|
|
118
|
-
srcset: ComputedRef<string | null>;
|
|
119
|
-
|
|
120
|
-
/**
|
|
121
|
-
* Resolved image `alt` value.
|
|
122
|
-
*/
|
|
123
|
-
alt: ComputedRef<string>;
|
|
124
|
-
|
|
125
|
-
/**
|
|
126
|
-
* Resolved image `copyright` value.
|
|
127
|
-
*/
|
|
128
|
-
copyright: ComputedRef<string | null>;
|
|
129
|
-
};
|
|
130
|
-
|
|
131
|
-
/**
|
|
132
|
-
* A low level composable that returns a resolved information about a Prismic
|
|
133
|
-
* image field.
|
|
134
|
-
*
|
|
135
|
-
* @param props - {@link UsePrismicImageOptions}
|
|
136
|
-
*
|
|
137
|
-
* @returns - Resolved image information {@link UsePrismicImageReturnType}
|
|
138
|
-
*/
|
|
139
|
-
export const usePrismicImage = (
|
|
140
|
-
props: UsePrismicImageOptions,
|
|
141
|
-
): UsePrismicImageReturnType => {
|
|
142
|
-
const { options } = usePrismic();
|
|
143
|
-
|
|
144
|
-
const asImage = computed(() => {
|
|
145
|
-
const field = unref(props.field);
|
|
146
|
-
|
|
147
|
-
if (!isFilled.image(field)) {
|
|
148
|
-
return {
|
|
149
|
-
src: null,
|
|
150
|
-
srcset: null,
|
|
151
|
-
};
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
const imgixParams = unref(props.imgixParams);
|
|
155
|
-
const widths = unref(props.widths);
|
|
156
|
-
const pixelDensities = unref(props.pixelDensities);
|
|
157
|
-
|
|
158
|
-
if (widths) {
|
|
159
|
-
if (!__PRODUCTION__ && pixelDensities) {
|
|
160
|
-
console.warn(
|
|
161
|
-
"[PrismicImage] Only one of `widths` or `pixelDensities` props can be provided. You can resolve this warning by removing either the `widths` or `pixelDensities` prop. `widths` will be used in this case.",
|
|
162
|
-
props,
|
|
163
|
-
);
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
return asImageWidthSrcSet(field, {
|
|
167
|
-
...imgixParams,
|
|
168
|
-
widths:
|
|
169
|
-
widths === "defaults"
|
|
170
|
-
? options.components?.imageWidthSrcSetDefaults
|
|
171
|
-
: widths,
|
|
172
|
-
});
|
|
173
|
-
} else if (pixelDensities) {
|
|
174
|
-
return asImagePixelDensitySrcSet(field, {
|
|
175
|
-
...imgixParams,
|
|
176
|
-
pixelDensities:
|
|
177
|
-
pixelDensities === "defaults"
|
|
178
|
-
? options.components?.imagePixelDensitySrcSetDefaults
|
|
179
|
-
: pixelDensities,
|
|
180
|
-
});
|
|
181
|
-
} else {
|
|
182
|
-
return {
|
|
183
|
-
src: asImageSrc(field, imgixParams),
|
|
184
|
-
srcset: null,
|
|
185
|
-
};
|
|
186
|
-
}
|
|
187
|
-
});
|
|
188
|
-
|
|
189
|
-
const src = computed(() => {
|
|
190
|
-
return asImage.value.src;
|
|
191
|
-
});
|
|
192
|
-
const srcset = computed(() => {
|
|
193
|
-
return asImage.value.srcset;
|
|
194
|
-
});
|
|
195
|
-
const alt = computed(() => {
|
|
196
|
-
return unref(props.field).alt || "";
|
|
197
|
-
});
|
|
198
|
-
const copyright = computed(() => {
|
|
199
|
-
return unref(props.field).copyright || null;
|
|
200
|
-
});
|
|
201
|
-
|
|
202
|
-
return {
|
|
203
|
-
src,
|
|
204
|
-
srcset,
|
|
205
|
-
alt,
|
|
206
|
-
copyright,
|
|
207
|
-
};
|
|
208
|
-
};
|
|
209
|
-
|
|
210
|
-
/**
|
|
211
|
-
* `<PrismicImage />` implementation.
|
|
212
|
-
*
|
|
213
|
-
* @internal
|
|
214
|
-
*/
|
|
215
|
-
export const PrismicImageImpl = /*#__PURE__*/ defineComponent({
|
|
216
|
-
name: "PrismicImage",
|
|
217
|
-
props: {
|
|
218
|
-
field: {
|
|
219
|
-
type: Object as PropType<ImageField | ImageField<string>>,
|
|
220
|
-
required: true,
|
|
221
|
-
},
|
|
222
|
-
imageComponent: {
|
|
223
|
-
type: [String, Object] as PropType<
|
|
224
|
-
string | ConcreteComponent | Raw<DefineComponent>
|
|
225
|
-
>,
|
|
226
|
-
default: undefined,
|
|
227
|
-
required: false,
|
|
228
|
-
},
|
|
229
|
-
imgixParams: {
|
|
230
|
-
type: Object as PropType<Parameters<typeof asImageSrc>[1]>,
|
|
231
|
-
default: undefined,
|
|
232
|
-
required: false,
|
|
233
|
-
},
|
|
234
|
-
widths: {
|
|
235
|
-
type: [String, Object] as PropType<
|
|
236
|
-
| NonNullable<Parameters<typeof asImageWidthSrcSet>[1]>["widths"]
|
|
237
|
-
| "thumbnails"
|
|
238
|
-
| "defaults"
|
|
239
|
-
>,
|
|
240
|
-
default: undefined,
|
|
241
|
-
required: false,
|
|
242
|
-
},
|
|
243
|
-
pixelDensities: {
|
|
244
|
-
type: [String, Object] as PropType<
|
|
245
|
-
| NonNullable<
|
|
246
|
-
Parameters<typeof asImagePixelDensitySrcSet>[1]
|
|
247
|
-
>["pixelDensities"]
|
|
248
|
-
| "defaults"
|
|
249
|
-
>,
|
|
250
|
-
default: undefined,
|
|
251
|
-
required: false,
|
|
252
|
-
},
|
|
253
|
-
},
|
|
254
|
-
setup(props) {
|
|
255
|
-
// Prevent fatal if user didn't check for field, throws `Invalid prop` warn
|
|
256
|
-
if (!props.field) {
|
|
257
|
-
return () => null;
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
const { options } = usePrismic();
|
|
261
|
-
|
|
262
|
-
const type = computed(() => {
|
|
263
|
-
return (
|
|
264
|
-
props.imageComponent ||
|
|
265
|
-
options.components?.imageComponent ||
|
|
266
|
-
defaultImageComponent
|
|
267
|
-
);
|
|
268
|
-
});
|
|
269
|
-
|
|
270
|
-
const { src, srcset, alt, copyright } = usePrismicImage(props);
|
|
271
|
-
|
|
272
|
-
return () => {
|
|
273
|
-
const attributes = {
|
|
274
|
-
src: src.value,
|
|
275
|
-
srcset: srcset.value,
|
|
276
|
-
alt: alt.value,
|
|
277
|
-
};
|
|
278
|
-
|
|
279
|
-
switch (type.value) {
|
|
280
|
-
case "img":
|
|
281
|
-
// Fitting img tag interface
|
|
282
|
-
return h("img", attributes);
|
|
283
|
-
|
|
284
|
-
default:
|
|
285
|
-
return h(simplyResolveComponent(type.value), {
|
|
286
|
-
...attributes,
|
|
287
|
-
copyright: copyright.value,
|
|
288
|
-
});
|
|
289
|
-
}
|
|
290
|
-
};
|
|
291
|
-
},
|
|
292
|
-
});
|
|
293
|
-
|
|
294
|
-
// export the public type for h/tsx inference
|
|
295
|
-
// also to avoid inline import() in generated d.ts files
|
|
296
|
-
/**
|
|
297
|
-
* Component to render a Prismic image field.
|
|
298
|
-
*
|
|
299
|
-
* @see Component props {@link PrismicImageProps}
|
|
300
|
-
* @see Templating image fields {@link https://prismic.io/docs/technologies/vue-template-content#images}
|
|
301
|
-
*/
|
|
302
|
-
export const PrismicImage = PrismicImageImpl as unknown as {
|
|
303
|
-
new (): {
|
|
304
|
-
$props: AllowedComponentProps &
|
|
305
|
-
ComponentCustomProps &
|
|
306
|
-
VNodeProps &
|
|
307
|
-
PrismicImageProps;
|
|
308
|
-
};
|
|
309
|
-
};
|