@prismicio/vue 2.0.8 → 2.1.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/LICENSE +202 -0
- package/README.md +81 -149
- package/components/common.js +481 -0
- package/components/index.js +468 -0
- package/components/umd.js +485 -0
- package/dist/prismic-vue.common.js +281 -52
- package/dist/prismic-vue.esm.js +274 -47
- package/dist/prismic-vue.js +285 -56
- package/dist/prismic-vue.min.js +1 -1
- package/package.json +51 -41
- package/src/components/Link.js +87 -54
- package/src/components/RichText.js +40 -41
- package/src/components/SliceZone.js +144 -0
- package/src/components/Text.js +37 -0
- package/src/components/index.js +26 -22
- package/src/components-bundler.js +10 -5
- package/src/index.js +46 -39
- package/.babelrc +0 -7
- package/.editorconfig +0 -12
- package/rollup.config.js +0 -72
- package/stats.html +0 -4318
|
@@ -0,0 +1,485 @@
|
|
|
1
|
+
(function (global, factory) {
|
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('prismic-dom')) :
|
|
3
|
+
typeof define === 'function' && define.amd ? define(['exports', 'prismic-dom'], factory) :
|
|
4
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.PrismicVueComponents = {}, global.prismicDOM));
|
|
5
|
+
})(this, (function (exports, PrismicDom) { 'use strict';
|
|
6
|
+
|
|
7
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
8
|
+
|
|
9
|
+
var PrismicDom__default = /*#__PURE__*/_interopDefaultLegacy(PrismicDom);
|
|
10
|
+
|
|
11
|
+
function ownKeys(object, enumerableOnly) {
|
|
12
|
+
var keys = Object.keys(object);
|
|
13
|
+
|
|
14
|
+
if (Object.getOwnPropertySymbols) {
|
|
15
|
+
var symbols = Object.getOwnPropertySymbols(object);
|
|
16
|
+
|
|
17
|
+
if (enumerableOnly) {
|
|
18
|
+
symbols = symbols.filter(function (sym) {
|
|
19
|
+
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
keys.push.apply(keys, symbols);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return keys;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
function _objectSpread2(target) {
|
|
30
|
+
for (var i = 1; i < arguments.length; i++) {
|
|
31
|
+
var source = arguments[i] != null ? arguments[i] : {};
|
|
32
|
+
|
|
33
|
+
if (i % 2) {
|
|
34
|
+
ownKeys(Object(source), true).forEach(function (key) {
|
|
35
|
+
_defineProperty(target, key, source[key]);
|
|
36
|
+
});
|
|
37
|
+
} else if (Object.getOwnPropertyDescriptors) {
|
|
38
|
+
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
|
39
|
+
} else {
|
|
40
|
+
ownKeys(Object(source)).forEach(function (key) {
|
|
41
|
+
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
return target;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
function _defineProperty(obj, key, value) {
|
|
50
|
+
if (key in obj) {
|
|
51
|
+
Object.defineProperty(obj, key, {
|
|
52
|
+
value: value,
|
|
53
|
+
enumerable: true,
|
|
54
|
+
configurable: true,
|
|
55
|
+
writable: true
|
|
56
|
+
});
|
|
57
|
+
} else {
|
|
58
|
+
obj[key] = value;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
return obj;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
var Embed = {
|
|
65
|
+
name: 'PrismicEmbed',
|
|
66
|
+
functional: true,
|
|
67
|
+
props: {
|
|
68
|
+
field: {
|
|
69
|
+
type: Object,
|
|
70
|
+
required: true
|
|
71
|
+
},
|
|
72
|
+
wrapper: {
|
|
73
|
+
type: String,
|
|
74
|
+
required: false,
|
|
75
|
+
"default": 'div'
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
render: function render(h, _ref) {
|
|
79
|
+
var props = _ref.props,
|
|
80
|
+
data = _ref.data;
|
|
81
|
+
var field = props.field,
|
|
82
|
+
wrapper = props.wrapper;
|
|
83
|
+
|
|
84
|
+
if (!field || !field.html) {
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
var embedUrl = field.embed_url,
|
|
89
|
+
type = field.type,
|
|
90
|
+
providerName = field.provider_name;
|
|
91
|
+
|
|
92
|
+
var attrs = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, data.attrs), embedUrl && {
|
|
93
|
+
'data-oembed': embedUrl
|
|
94
|
+
}), type && {
|
|
95
|
+
'data-oembed-type': type
|
|
96
|
+
}), providerName && {
|
|
97
|
+
'data-oembed-provider': providerName
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
return h(wrapper, _objectSpread2(_objectSpread2({}, Object.assign(data, {
|
|
101
|
+
attrs: attrs
|
|
102
|
+
})), {}, {
|
|
103
|
+
domProps: {
|
|
104
|
+
innerHTML: field.html
|
|
105
|
+
}
|
|
106
|
+
}));
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
var Image = {
|
|
111
|
+
name: 'PrismicImage',
|
|
112
|
+
functional: true,
|
|
113
|
+
props: {
|
|
114
|
+
field: {
|
|
115
|
+
type: Object,
|
|
116
|
+
required: true
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
render: function render(h, _ref) {
|
|
120
|
+
var props = _ref.props,
|
|
121
|
+
data = _ref.data;
|
|
122
|
+
var _props$field = props.field,
|
|
123
|
+
url = _props$field.url,
|
|
124
|
+
alt = _props$field.alt,
|
|
125
|
+
copyright = _props$field.copyright;
|
|
126
|
+
return h('img', Object.assign(data, {
|
|
127
|
+
attrs: _objectSpread2(_objectSpread2({}, data.attrs), {}, {
|
|
128
|
+
src: url,
|
|
129
|
+
alt: alt,
|
|
130
|
+
copyright: copyright
|
|
131
|
+
})
|
|
132
|
+
}));
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
var isInternalURL = function isInternalURL(url) {
|
|
137
|
+
/**
|
|
138
|
+
* @see Regex101 expression: {@link https://regex101.com/r/1y7iod/1}
|
|
139
|
+
*/
|
|
140
|
+
var isInternal = /^\/(?!\/)/.test(url);
|
|
141
|
+
/**
|
|
142
|
+
* @see Regex101 expression: {@link https://regex101.com/r/RnUseS/1}
|
|
143
|
+
*/
|
|
144
|
+
|
|
145
|
+
var isSpecialLink = !isInternal && !/^https?:\/\//i.test(url);
|
|
146
|
+
return isInternal && !isSpecialLink;
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
var Link = (function (_ref) {
|
|
150
|
+
var _ref$component = _ref.component,
|
|
151
|
+
component = _ref$component === void 0 ? "a" : _ref$component;
|
|
152
|
+
return {
|
|
153
|
+
name: "PrismicLink",
|
|
154
|
+
functional: true,
|
|
155
|
+
props: {
|
|
156
|
+
field: {
|
|
157
|
+
type: Object,
|
|
158
|
+
required: true
|
|
159
|
+
},
|
|
160
|
+
linkResolver: {
|
|
161
|
+
type: Function,
|
|
162
|
+
required: false
|
|
163
|
+
},
|
|
164
|
+
target: {
|
|
165
|
+
type: String,
|
|
166
|
+
"default": undefined,
|
|
167
|
+
required: false
|
|
168
|
+
},
|
|
169
|
+
rel: {
|
|
170
|
+
type: String,
|
|
171
|
+
"default": undefined,
|
|
172
|
+
required: false
|
|
173
|
+
},
|
|
174
|
+
blankTargetRelAttribute: {
|
|
175
|
+
type: String,
|
|
176
|
+
"default": "noopener",
|
|
177
|
+
required: false
|
|
178
|
+
}
|
|
179
|
+
},
|
|
180
|
+
render: function render(h, _ref2) {
|
|
181
|
+
var props = _ref2.props,
|
|
182
|
+
data = _ref2.data,
|
|
183
|
+
children = _ref2.children,
|
|
184
|
+
parent = _ref2.parent;
|
|
185
|
+
var field = props.field,
|
|
186
|
+
linkResolver = props.linkResolver;
|
|
187
|
+
|
|
188
|
+
if (!field) {
|
|
189
|
+
return null;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
var url = parent.$prismic ? parent.$prismic.asLink(field, linkResolver) : PrismicDom__default["default"].Link.url(field, linkResolver || function () {
|
|
193
|
+
return null;
|
|
194
|
+
});
|
|
195
|
+
|
|
196
|
+
if (isInternalURL(url) && !props.target) {
|
|
197
|
+
data.props = data.props || {};
|
|
198
|
+
data.props.to = url;
|
|
199
|
+
return h(component, data, children);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
data.attrs = _objectSpread2(_objectSpread2({}, data.attrs), {}, {
|
|
203
|
+
href: url
|
|
204
|
+
});
|
|
205
|
+
|
|
206
|
+
if (typeof props.target !== "undefined" || field.target) {
|
|
207
|
+
data.attrs.target = typeof props.target !== "undefined" ? props.target : field.target;
|
|
208
|
+
|
|
209
|
+
if (data.attrs.target === "_blank") {
|
|
210
|
+
data.attrs.rel = typeof props.rel !== "undefined" ? props.rel : props.blankTargetRelAttribute;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
return h("a", data, children);
|
|
215
|
+
}
|
|
216
|
+
};
|
|
217
|
+
});
|
|
218
|
+
|
|
219
|
+
var RichText = {
|
|
220
|
+
name: "PrismicRichText",
|
|
221
|
+
functional: true,
|
|
222
|
+
props: {
|
|
223
|
+
field: {
|
|
224
|
+
type: Array,
|
|
225
|
+
required: true
|
|
226
|
+
},
|
|
227
|
+
linkResolver: {
|
|
228
|
+
type: Function,
|
|
229
|
+
required: false
|
|
230
|
+
},
|
|
231
|
+
htmlSerializer: {
|
|
232
|
+
type: Function,
|
|
233
|
+
required: false
|
|
234
|
+
},
|
|
235
|
+
wrapper: {
|
|
236
|
+
type: String,
|
|
237
|
+
required: false,
|
|
238
|
+
"default": "div"
|
|
239
|
+
}
|
|
240
|
+
},
|
|
241
|
+
render: function render(h, _ref) {
|
|
242
|
+
var props = _ref.props,
|
|
243
|
+
data = _ref.data,
|
|
244
|
+
parent = _ref.parent;
|
|
245
|
+
var field = props.field,
|
|
246
|
+
linkResolver = props.linkResolver,
|
|
247
|
+
htmlSerializer = props.htmlSerializer,
|
|
248
|
+
wrapper = props.wrapper;
|
|
249
|
+
|
|
250
|
+
if (!field) {
|
|
251
|
+
return null;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
var innerHTML = PrismicDom.RichText.asHtml(field, linkResolver || parent.$prismic.linkResolver, htmlSerializer || parent.$prismic.htmlSerializer);
|
|
255
|
+
return h(wrapper, _objectSpread2(_objectSpread2({}, data), {}, {
|
|
256
|
+
domProps: {
|
|
257
|
+
innerHTML: innerHTML
|
|
258
|
+
}
|
|
259
|
+
}));
|
|
260
|
+
}
|
|
261
|
+
};
|
|
262
|
+
|
|
263
|
+
var Text = {
|
|
264
|
+
name: "PrismicText",
|
|
265
|
+
functional: true,
|
|
266
|
+
props: {
|
|
267
|
+
field: {
|
|
268
|
+
type: Array,
|
|
269
|
+
required: true
|
|
270
|
+
},
|
|
271
|
+
separator: {
|
|
272
|
+
type: String,
|
|
273
|
+
"default": undefined,
|
|
274
|
+
required: false
|
|
275
|
+
},
|
|
276
|
+
wrapper: {
|
|
277
|
+
type: String,
|
|
278
|
+
required: false,
|
|
279
|
+
"default": "div"
|
|
280
|
+
}
|
|
281
|
+
},
|
|
282
|
+
render: function render(h, _ref) {
|
|
283
|
+
var props = _ref.props,
|
|
284
|
+
data = _ref.data;
|
|
285
|
+
_ref.children;
|
|
286
|
+
_ref.parent;
|
|
287
|
+
var field = props.field,
|
|
288
|
+
separator = props.separator,
|
|
289
|
+
wrapper = props.wrapper;
|
|
290
|
+
|
|
291
|
+
if (!field) {
|
|
292
|
+
return null;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
var innerHTML = PrismicDom.RichText.asText(field, separator);
|
|
296
|
+
return h(wrapper, _objectSpread2(_objectSpread2({}, data), {}, {
|
|
297
|
+
domProps: {
|
|
298
|
+
innerHTML: innerHTML
|
|
299
|
+
}
|
|
300
|
+
}));
|
|
301
|
+
}
|
|
302
|
+
};
|
|
303
|
+
|
|
304
|
+
// We need to polyfill process if it doesn't exist, such as in the browser.
|
|
305
|
+
if (typeof process === "undefined") {
|
|
306
|
+
globalThis.process = {
|
|
307
|
+
env: {}
|
|
308
|
+
};
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* `true` if in the production environment, `false` otherwise.
|
|
312
|
+
*
|
|
313
|
+
* This boolean can be used to perform actions only in development environments,
|
|
314
|
+
* such as logging.
|
|
315
|
+
*/
|
|
316
|
+
|
|
317
|
+
|
|
318
|
+
var __PRODUCTION__ = process.env.NODE_ENV === "production";
|
|
319
|
+
|
|
320
|
+
var getSliceComponentProps = function getSliceComponentProps(propsHint) {
|
|
321
|
+
return {
|
|
322
|
+
slice: {
|
|
323
|
+
type: Object,
|
|
324
|
+
required: true
|
|
325
|
+
},
|
|
326
|
+
index: {
|
|
327
|
+
type: Number,
|
|
328
|
+
required: true
|
|
329
|
+
},
|
|
330
|
+
slices: {
|
|
331
|
+
type: Array,
|
|
332
|
+
required: true
|
|
333
|
+
},
|
|
334
|
+
context: {
|
|
335
|
+
type: null,
|
|
336
|
+
required: true
|
|
337
|
+
}
|
|
338
|
+
};
|
|
339
|
+
};
|
|
340
|
+
var TODOSliceComponent = __PRODUCTION__ ? function () {
|
|
341
|
+
return null;
|
|
342
|
+
} : {
|
|
343
|
+
name: "TODOSliceCOmponent",
|
|
344
|
+
functional: true,
|
|
345
|
+
props: getSliceComponentProps(),
|
|
346
|
+
renfer: function renfer(h, _ref) {
|
|
347
|
+
var props = _ref.props,
|
|
348
|
+
data = _ref.data;
|
|
349
|
+
console.warn("[SliceZone] Could not find a component for Slice type \"".concat(props.slice.slice_type, "\""), props.slice);
|
|
350
|
+
return function () {
|
|
351
|
+
return h("section", _objectSpread2(_objectSpread2({}, data), {}, {
|
|
352
|
+
"data-slice-zone-todo-component": "",
|
|
353
|
+
"data-slice-type": props.slice.slice_type
|
|
354
|
+
}), ["Could not find a component for Slice type \"".concat(props.slice.slice_type, "\"")]);
|
|
355
|
+
};
|
|
356
|
+
}
|
|
357
|
+
}; // Just mimiced to prevent confusion but doesn't provide any value with version 2 of this kit
|
|
358
|
+
|
|
359
|
+
var defineSliceZoneComponents = function defineSliceZoneComponents(components) {
|
|
360
|
+
return components;
|
|
361
|
+
};
|
|
362
|
+
var SliceZone = {
|
|
363
|
+
name: "SliceZone",
|
|
364
|
+
functional: true,
|
|
365
|
+
props: {
|
|
366
|
+
slices: {
|
|
367
|
+
type: Array,
|
|
368
|
+
required: true
|
|
369
|
+
},
|
|
370
|
+
components: {
|
|
371
|
+
type: Object,
|
|
372
|
+
"default": undefined,
|
|
373
|
+
required: false
|
|
374
|
+
},
|
|
375
|
+
resolver: {
|
|
376
|
+
type: Function,
|
|
377
|
+
"default": undefined,
|
|
378
|
+
required: false
|
|
379
|
+
},
|
|
380
|
+
context: {
|
|
381
|
+
type: null,
|
|
382
|
+
"default": undefined,
|
|
383
|
+
required: false
|
|
384
|
+
},
|
|
385
|
+
defaultComponent: {
|
|
386
|
+
type: Object,
|
|
387
|
+
"default": undefined,
|
|
388
|
+
required: false
|
|
389
|
+
},
|
|
390
|
+
wrapper: {
|
|
391
|
+
type: [String, Object, Function],
|
|
392
|
+
"default": "div",
|
|
393
|
+
required: false
|
|
394
|
+
}
|
|
395
|
+
},
|
|
396
|
+
render: function render(h, _ref2) {
|
|
397
|
+
var props = _ref2.props,
|
|
398
|
+
data = _ref2.data;
|
|
399
|
+
|
|
400
|
+
// Prevent fatal if user didn't check for field, throws `Invalid prop` warn
|
|
401
|
+
if (!props.slices) {
|
|
402
|
+
return function () {
|
|
403
|
+
return null;
|
|
404
|
+
};
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
var renderedSlices = computed(function () {
|
|
408
|
+
return props.slices.map(function (slice, index) {
|
|
409
|
+
var component = props.components && slice.slice_type in props.components ? props.components[slice.slice_type] : props.defaultComponent || TODOSliceComponent; // TODO: Remove `resolver` in v3 in favor of `components`.
|
|
410
|
+
|
|
411
|
+
if (props.resolver) {
|
|
412
|
+
var resolvedComponent = props.resolver({
|
|
413
|
+
slice: slice,
|
|
414
|
+
sliceName: slice.slice_type,
|
|
415
|
+
i: index
|
|
416
|
+
});
|
|
417
|
+
|
|
418
|
+
if (resolvedComponent) {
|
|
419
|
+
component = resolvedComponent;
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
var p = {
|
|
424
|
+
key: "".concat(slice.slice_type, "-").concat(index),
|
|
425
|
+
slice: slice,
|
|
426
|
+
index: index,
|
|
427
|
+
context: props.context,
|
|
428
|
+
slices: props.slices
|
|
429
|
+
};
|
|
430
|
+
return h(component, p);
|
|
431
|
+
});
|
|
432
|
+
});
|
|
433
|
+
var parent = props.wrapper;
|
|
434
|
+
|
|
435
|
+
if (typeof parent === "string") {
|
|
436
|
+
return h(parent, data, renderedSlices.value);
|
|
437
|
+
} else {
|
|
438
|
+
return h(parent, data, {
|
|
439
|
+
"default": function _default() {
|
|
440
|
+
return renderedSlices.value;
|
|
441
|
+
}
|
|
442
|
+
});
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
};
|
|
446
|
+
|
|
447
|
+
var NuxtLink = Link({
|
|
448
|
+
component: "nuxt-link"
|
|
449
|
+
});
|
|
450
|
+
var VueRouterLink = Link({
|
|
451
|
+
component: "router-link"
|
|
452
|
+
});
|
|
453
|
+
var exp = {
|
|
454
|
+
common: {
|
|
455
|
+
Embed: Embed,
|
|
456
|
+
Image: Image,
|
|
457
|
+
RichText: RichText,
|
|
458
|
+
Text: Text,
|
|
459
|
+
SliceZone: SliceZone
|
|
460
|
+
},
|
|
461
|
+
nuxt: {
|
|
462
|
+
Link: NuxtLink
|
|
463
|
+
},
|
|
464
|
+
vueRouter: {
|
|
465
|
+
Link: VueRouterLink
|
|
466
|
+
}
|
|
467
|
+
};
|
|
468
|
+
exp.common;
|
|
469
|
+
exp.nuxt;
|
|
470
|
+
exp.vueRouter;
|
|
471
|
+
|
|
472
|
+
var common = exp.common;
|
|
473
|
+
var nuxt = exp.nuxt;
|
|
474
|
+
var vueRouter = exp.vueRouter;
|
|
475
|
+
|
|
476
|
+
exports.common = common;
|
|
477
|
+
exports["default"] = exp;
|
|
478
|
+
exports.defineSliceZoneComponents = defineSliceZoneComponents;
|
|
479
|
+
exports.getSliceComponentProps = getSliceComponentProps;
|
|
480
|
+
exports.nuxt = nuxt;
|
|
481
|
+
exports.vueRouter = vueRouter;
|
|
482
|
+
|
|
483
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
484
|
+
|
|
485
|
+
}));
|