@prismicio/vue 2.0.10 → 2.1.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.
@@ -1,35 +1,26 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('prismic-dom'), require('@prismicio/client')) :
3
- typeof define === 'function' && define.amd ? define(['prismic-dom', '@prismicio/client'], factory) :
4
- (global.PrismicVue = factory(global.prismicDOM,global.prismicJS));
5
- }(this, (function (PrismicDOM,prismicJS) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('@prismicio/client'), require('prismic-dom')) :
3
+ typeof define === 'function' && define.amd ? define(['@prismicio/client', 'prismic-dom'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.PrismicVue = factory(global.prismicJS, global.prismicDOM));
5
+ })(this, (function (prismicJS, PrismicDOM) { 'use strict';
6
6
 
7
- var PrismicDOM__default = 'default' in PrismicDOM ? PrismicDOM['default'] : PrismicDOM;
8
- prismicJS = prismicJS && prismicJS.hasOwnProperty('default') ? prismicJS['default'] : prismicJS;
7
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
9
8
 
10
- function _defineProperty(obj, key, value) {
11
- if (key in obj) {
12
- Object.defineProperty(obj, key, {
13
- value: value,
14
- enumerable: true,
15
- configurable: true,
16
- writable: true
17
- });
18
- } else {
19
- obj[key] = value;
20
- }
21
-
22
- return obj;
23
- }
9
+ var prismicJS__default = /*#__PURE__*/_interopDefaultLegacy(prismicJS);
10
+ var PrismicDOM__default = /*#__PURE__*/_interopDefaultLegacy(PrismicDOM);
24
11
 
25
12
  function ownKeys(object, enumerableOnly) {
26
13
  var keys = Object.keys(object);
27
14
 
28
15
  if (Object.getOwnPropertySymbols) {
29
16
  var symbols = Object.getOwnPropertySymbols(object);
30
- if (enumerableOnly) symbols = symbols.filter(function (sym) {
31
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
32
- });
17
+
18
+ if (enumerableOnly) {
19
+ symbols = symbols.filter(function (sym) {
20
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
21
+ });
22
+ }
23
+
33
24
  keys.push.apply(keys, symbols);
34
25
  }
35
26
 
@@ -56,6 +47,21 @@
56
47
  return target;
57
48
  }
58
49
 
50
+ function _defineProperty(obj, key, value) {
51
+ if (key in obj) {
52
+ Object.defineProperty(obj, key, {
53
+ value: value,
54
+ enumerable: true,
55
+ configurable: true,
56
+ writable: true
57
+ });
58
+ } else {
59
+ obj[key] = value;
60
+ }
61
+
62
+ return obj;
63
+ }
64
+
59
65
  function _slicedToArray(arr, i) {
60
66
  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
61
67
  }
@@ -65,14 +71,17 @@
65
71
  }
66
72
 
67
73
  function _iterableToArrayLimit(arr, i) {
68
- if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return;
74
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
75
+
76
+ if (_i == null) return;
69
77
  var _arr = [];
70
78
  var _n = true;
71
79
  var _d = false;
72
- var _e = undefined;
80
+
81
+ var _s, _e;
73
82
 
74
83
  try {
75
- for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
84
+ for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
76
85
  _arr.push(_s.value);
77
86
 
78
87
  if (i && _arr.length === i) break;
@@ -170,10 +179,15 @@
170
179
  render: function render(h, _ref) {
171
180
  var props = _ref.props,
172
181
  data = _ref.data;
173
- var _props$field = props.field,
174
- url = _props$field.url,
175
- alt = _props$field.alt,
176
- copyright = _props$field.copyright;
182
+ var field = props.field;
183
+
184
+ if (!field) {
185
+ return null;
186
+ }
187
+
188
+ var url = field.url,
189
+ alt = field.alt,
190
+ copyright = field.copyright;
177
191
  return h('img', Object.assign(data, {
178
192
  attrs: _objectSpread2(_objectSpread2({}, data.attrs), {}, {
179
193
  src: url,
@@ -184,11 +198,24 @@
184
198
  }
185
199
  };
186
200
 
201
+ var isInternalURL = function isInternalURL(url) {
202
+ /**
203
+ * @see Regex101 expression: {@link https://regex101.com/r/1y7iod/1}
204
+ */
205
+ var isInternal = /^\/(?!\/)/.test(url);
206
+ /**
207
+ * @see Regex101 expression: {@link https://regex101.com/r/RnUseS/1}
208
+ */
209
+
210
+ var isSpecialLink = !isInternal && !/^https?:\/\//i.test(url);
211
+ return isInternal && !isSpecialLink;
212
+ };
213
+
187
214
  var Link = (function (_ref) {
188
215
  var _ref$component = _ref.component,
189
- component = _ref$component === void 0 ? 'a' : _ref$component;
216
+ component = _ref$component === void 0 ? "a" : _ref$component;
190
217
  return {
191
- name: 'PrismicLink',
218
+ name: "PrismicLink",
192
219
  functional: true,
193
220
  props: {
194
221
  field: {
@@ -197,10 +224,22 @@
197
224
  },
198
225
  linkResolver: {
199
226
  type: Function,
200
- required: false,
201
- "default": function _default() {
202
- return null;
203
- }
227
+ required: false
228
+ },
229
+ target: {
230
+ type: String,
231
+ "default": undefined,
232
+ required: false
233
+ },
234
+ rel: {
235
+ type: String,
236
+ "default": undefined,
237
+ required: false
238
+ },
239
+ blankTargetRelAttribute: {
240
+ type: String,
241
+ "default": "noopener noreferrer",
242
+ required: false
204
243
  }
205
244
  },
206
245
  render: function render(h, _ref2) {
@@ -215,9 +254,11 @@
215
254
  return null;
216
255
  }
217
256
 
218
- var url = parent.$prismic ? parent.$prismic.asLink(field, linkResolver) : PrismicDOM__default.Link.url(field, linkResolver);
257
+ var url = parent.$prismic ? parent.$prismic.asLink(field, linkResolver) : PrismicDOM__default["default"].Link.url(field, linkResolver || function () {
258
+ return null;
259
+ });
219
260
 
220
- if (url.indexOf('/') === 0) {
261
+ if (isInternalURL(url) && !props.target) {
221
262
  data.props = data.props || {};
222
263
  data.props.to = url;
223
264
  return h(component, data, children);
@@ -225,23 +266,37 @@
225
266
 
226
267
  data.attrs = _objectSpread2(_objectSpread2({}, data.attrs), {}, {
227
268
  href: url
228
- }, field.target && {
229
- target: field.target,
230
- rel: 'noopener'
231
269
  });
232
- return h('a', data, children);
270
+
271
+ if (typeof props.target !== "undefined") {
272
+ data.attrs.target = props.target;
273
+ } else if (field.target) {
274
+ data.attrs.target = field.target;
275
+ }
276
+
277
+ if (typeof props.rel !== "undefined") {
278
+ data.attrs.rel = props.rel;
279
+ } else if (data.attrs.target === "_blank") {
280
+ data.attrs.rel = props.blankTargetRelAttribute;
281
+ }
282
+
283
+ return h("a", data, children);
233
284
  }
234
285
  };
235
286
  });
236
287
 
237
288
  var RichText = {
238
- name: 'PrismicRichText',
289
+ name: "PrismicRichText",
239
290
  functional: true,
240
291
  props: {
241
292
  field: {
242
293
  type: Array,
243
294
  required: true
244
295
  },
296
+ linkResolver: {
297
+ type: Function,
298
+ required: false
299
+ },
245
300
  htmlSerializer: {
246
301
  type: Function,
247
302
  required: false
@@ -249,15 +304,15 @@
249
304
  wrapper: {
250
305
  type: String,
251
306
  required: false,
252
- "default": 'div'
307
+ "default": "div"
253
308
  }
254
309
  },
255
310
  render: function render(h, _ref) {
256
311
  var props = _ref.props,
257
312
  data = _ref.data,
258
- children = _ref.children,
259
313
  parent = _ref.parent;
260
314
  var field = props.field,
315
+ linkResolver = props.linkResolver,
261
316
  htmlSerializer = props.htmlSerializer,
262
317
  wrapper = props.wrapper;
263
318
 
@@ -265,7 +320,7 @@
265
320
  return null;
266
321
  }
267
322
 
268
- var innerHTML = PrismicDOM.RichText.asHtml(field, parent.$prismic.linkResolver, htmlSerializer || parent.$prismic.htmlSerializer);
323
+ var innerHTML = PrismicDOM.RichText.asHtml(field, linkResolver ? linkResolver : parent.$prismic ? parent.$prismic.linkResolver : undefined, htmlSerializer ? htmlSerializer : parent.$prismic ? parent.$prismic.htmlSerializer : undefined);
269
324
  return h(wrapper, _objectSpread2(_objectSpread2({}, data), {}, {
270
325
  domProps: {
271
326
  innerHTML: innerHTML
@@ -274,17 +329,198 @@
274
329
  }
275
330
  };
276
331
 
332
+ var Text = {
333
+ name: "PrismicText",
334
+ functional: true,
335
+ props: {
336
+ field: {
337
+ type: Array,
338
+ required: true
339
+ },
340
+ separator: {
341
+ type: String,
342
+ "default": undefined,
343
+ required: false
344
+ },
345
+ wrapper: {
346
+ type: String,
347
+ required: false,
348
+ "default": "div"
349
+ }
350
+ },
351
+ render: function render(h, _ref) {
352
+ var props = _ref.props,
353
+ data = _ref.data;
354
+ _ref.children;
355
+ _ref.parent;
356
+ var field = props.field,
357
+ separator = props.separator,
358
+ wrapper = props.wrapper;
359
+
360
+ if (!field) {
361
+ return null;
362
+ }
363
+
364
+ var innerHTML = PrismicDOM.RichText.asText(field, separator);
365
+ return h(wrapper, _objectSpread2(_objectSpread2({}, data), {}, {
366
+ domProps: {
367
+ innerHTML: innerHTML
368
+ }
369
+ }));
370
+ }
371
+ };
372
+
373
+ // We need to polyfill process if it doesn't exist, such as in the browser.
374
+ if (typeof process === "undefined") {
375
+ globalThis.process = {
376
+ env: {}
377
+ };
378
+ }
379
+ /**
380
+ * `true` if in the production environment, `false` otherwise.
381
+ *
382
+ * This boolean can be used to perform actions only in development environments,
383
+ * such as logging.
384
+ */
385
+
386
+
387
+ var __PRODUCTION__ = process.env.NODE_ENV === "production";
388
+
389
+ var getSliceComponentProps = function getSliceComponentProps(propsHint) {
390
+ return {
391
+ slice: {
392
+ type: Object,
393
+ required: true
394
+ },
395
+ index: {
396
+ type: Number,
397
+ required: true
398
+ },
399
+ slices: {
400
+ type: Array,
401
+ required: true
402
+ },
403
+ context: {
404
+ type: null,
405
+ required: true
406
+ }
407
+ };
408
+ };
409
+ var TODOSliceComponent = __PRODUCTION__ ? null : {
410
+ name: "TODOSliceCOmponent",
411
+ functional: true,
412
+ props: getSliceComponentProps(),
413
+ render: function render(h, _ref) {
414
+ var props = _ref.props,
415
+ data = _ref.data;
416
+ console.warn("[SliceZone] Could not find a component for Slice type \"".concat(props.slice.slice_type, "\""), props.slice);
417
+ return h("section", _objectSpread2(_objectSpread2({}, data), {}, {
418
+ attrs: _objectSpread2(_objectSpread2({}, data.attrs), {}, {
419
+ "data-slice-zone-todo-component": "",
420
+ "data-slice-type": props.slice.slice_type
421
+ })
422
+ }), ["Could not find a component for Slice type \"".concat(props.slice.slice_type, "\"")]);
423
+ }
424
+ }; // Just mimiced to prevent confusion but doesn't provide any value with version 2 of this kit
425
+ var SliceZone = {
426
+ name: "SliceZone",
427
+ props: {
428
+ slices: {
429
+ type: Array,
430
+ required: true
431
+ },
432
+ components: {
433
+ type: Object,
434
+ "default": undefined,
435
+ required: false
436
+ },
437
+ resolver: {
438
+ type: Function,
439
+ "default": undefined,
440
+ required: false
441
+ },
442
+ context: {
443
+ type: null,
444
+ "default": undefined,
445
+ required: false
446
+ },
447
+ defaultComponent: {
448
+ type: Object,
449
+ "default": undefined,
450
+ required: false
451
+ },
452
+ wrapper: {
453
+ type: [String, Object, Function],
454
+ "default": "div",
455
+ required: false
456
+ }
457
+ },
458
+ computed: {
459
+ renderedSlices: function renderedSlices() {
460
+ var _this = this;
461
+
462
+ if (!this.slices) {
463
+ return null;
464
+ }
465
+
466
+ return this.slices.map(function (slice, index) {
467
+ var component = _this.components && slice.slice_type in _this.components ? _this.components[slice.slice_type] : _this.defaultComponent || TODOSliceComponent; // TODO: Remove `resolver` in v3 in favor of `components`.
468
+
469
+ if (_this.resolver) {
470
+ var resolvedComponent = _this.resolver({
471
+ slice: slice,
472
+ sliceName: slice.slice_type,
473
+ i: index
474
+ });
475
+
476
+ if (resolvedComponent) {
477
+ component = resolvedComponent;
478
+ }
479
+ }
480
+
481
+ var p = {
482
+ key: "".concat(slice.slice_type, "-").concat(index),
483
+ props: {
484
+ slice: slice,
485
+ index: index,
486
+ context: _this.context,
487
+ slices: _this.slices
488
+ }
489
+ };
490
+ return {
491
+ component: component,
492
+ p: p
493
+ };
494
+ });
495
+ }
496
+ },
497
+ render: function render(h) {
498
+ // Prevent fatal if user didn't check for field, throws `Invalid prop` warn
499
+ if (!this.slices) {
500
+ return null;
501
+ }
502
+
503
+ return h(this.wrapper, this.renderedSlices.map(function (_ref2) {
504
+ var component = _ref2.component,
505
+ p = _ref2.p;
506
+ return h(component, p);
507
+ }));
508
+ }
509
+ };
510
+
277
511
  var NuxtLink = Link({
278
- component: 'nuxt-link'
512
+ component: "nuxt-link"
279
513
  });
280
514
  var VueRouterLink = Link({
281
- component: 'router-link'
515
+ component: "router-link"
282
516
  });
283
517
  var exp = {
284
518
  common: {
285
519
  Embed: Embed,
286
520
  Image: Image,
287
- RichText: RichText
521
+ RichText: RichText,
522
+ Text: Text,
523
+ SliceZone: SliceZone
288
524
  },
289
525
  nuxt: {
290
526
  Link: NuxtLink
@@ -296,32 +532,35 @@
296
532
 
297
533
  function asHtml(richText, linkResolver, htmlSerializer) {
298
534
  if (richText) {
299
- return PrismicDOM__default.RichText.asHtml(richText, linkResolver, htmlSerializer);
535
+ return PrismicDOM__default["default"].RichText.asHtml(richText, linkResolver, htmlSerializer);
300
536
  }
301
537
  }
302
538
  function asText(richText, joinString) {
303
539
  if (richText) {
304
- return PrismicDOM__default.RichText.asText(richText, joinString);
540
+ return PrismicDOM__default["default"].RichText.asText(richText, joinString);
305
541
  }
306
542
 
307
- return '';
543
+ return "";
308
544
  }
309
545
  function asLink(link, linkResolver) {
310
546
  if (link) {
311
- return PrismicDOM__default.Link.url(link, linkResolver);
547
+ return PrismicDOM__default["default"].Link.url(link, linkResolver);
312
548
  }
313
549
  }
314
550
  function asDate(date) {
315
551
  if (date) {
316
- return PrismicDOM__default.Date(date);
552
+ return PrismicDOM__default["default"].Date(date);
317
553
  }
318
554
  }
319
555
 
556
+ var client = prismicJS__default["default"].client;
557
+
320
558
  function attachMethods(Vue, options) {
321
559
  Vue.prototype.$prismic.asHtml = function (richText, linkResolver, htmlSerializer) {
322
560
  return asHtml(richText, linkResolver || options.linkResolver, htmlSerializer || options.htmlSerializer);
323
561
  };
324
562
 
563
+ Vue.prototype.$prismic.asHTML = Vue.prototype.$prismic.asHtml;
325
564
  Vue.prototype.$prismic.asText = asText;
326
565
  Vue.prototype.$prismic.richTextAsPlain = asText;
327
566
  Vue.prototype.$prismic.asDate = asDate;
@@ -334,12 +573,16 @@
334
573
  var PrismicVue = {
335
574
  install: function install(Vue, options) {
336
575
  var _options$linkType = options.linkType,
337
- linkType = _options$linkType === void 0 ? 'vueRouter' : _options$linkType;
338
- Vue.prototype.$prismic = prismicJS;
576
+ linkType = _options$linkType === void 0 ? "vueRouter" : _options$linkType;
577
+ Vue.prototype.$prismic = prismicJS__default["default"];
578
+ Vue.prototype.$prismic.predicate = prismicJS__default["default"].Predicates;
579
+ Vue.prototype.$prismic.cookie = {
580
+ preview: prismicJS__default["default"].previewCookie
581
+ };
339
582
  Vue.prototype.$prismic.endpoint = options.endpoint;
340
583
  Vue.prototype.$prismic.linkResolver = options.linkResolver;
341
584
  Vue.prototype.$prismic.htmlSerializer = options.htmlSerializer;
342
- Vue.prototype.$prismic.client = prismicJS.client(options.endpoint, options.apiOptions);
585
+ Vue.prototype.$prismic.client = client(options.endpoint, options.apiOptions);
343
586
  attachMethods(Vue, options);
344
587
 
345
588
  var components = _objectSpread2(_objectSpread2({}, exp.common), exp[linkType]);
@@ -350,9 +593,9 @@
350
593
 
351
594
 
352
595
  Object.entries(components).forEach(function (_ref) {
353
- var _ref2 = _slicedToArray(_ref, 2),
354
- _ = _ref2[0],
355
- c = _ref2[1];
596
+ var _ref2 = _slicedToArray(_ref, 2);
597
+ _ref2[0];
598
+ var c = _ref2[1];
356
599
 
357
600
  Vue.component(c.name, c);
358
601
  });
@@ -361,4 +604,4 @@
361
604
 
362
605
  return PrismicVue;
363
606
 
364
- })));
607
+ }));
@@ -1 +1 @@
1
- (function(global,factory){typeof exports==="object"&&typeof module!=="undefined"?module.exports=factory(require("prismic-dom"),require("@prismicio/client")):typeof define==="function"&&define.amd?define(["prismic-dom","@prismicio/client"],factory):global.PrismicVue=factory(global.prismicDOM,global.prismicJS)})(this,function(PrismicDOM,prismicJS){"use strict";var PrismicDOM__default="default"in PrismicDOM?PrismicDOM["default"]:PrismicDOM;prismicJS=prismicJS&&prismicJS.hasOwnProperty("default")?prismicJS["default"]:prismicJS;function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly)symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable});keys.push.apply(keys,symbols)}return keys}function _objectSpread2(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};if(i%2){ownKeys(Object(source),true).forEach(function(key){_defineProperty(target,key,source[key])})}else if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source))}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}}return target}function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_unsupportedIterableToArray(arr,i)||_nonIterableRest()}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr}function _iterableToArrayLimit(arr,i){if(typeof Symbol==="undefined"||!(Symbol.iterator in Object(arr)))return;var _arr=[];var _n=true;var _d=false;var _e=undefined;try{for(var _i=arr[Symbol.iterator](),_s;!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i["return"]!=null)_i["return"]()}finally{if(_d)throw _e}}return _arr}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var Embed={name:"PrismicEmbed",functional:true,props:{field:{type:Object,required:true},wrapper:{type:String,required:false,default:"div"}},render:function render(h,_ref){var props=_ref.props,data=_ref.data;var field=props.field,wrapper=props.wrapper;if(!field||!field.html){return null}var embedUrl=field.embed_url,type=field.type,providerName=field.provider_name;var attrs=_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({},data.attrs),embedUrl&&{"data-oembed":embedUrl}),type&&{"data-oembed-type":type}),providerName&&{"data-oembed-provider":providerName});return h(wrapper,_objectSpread2(_objectSpread2({},Object.assign(data,{attrs:attrs})),{},{domProps:{innerHTML:field.html}}))}};var Image={name:"PrismicImage",functional:true,props:{field:{type:Object,required:true}},render:function render(h,_ref){var props=_ref.props,data=_ref.data;var _props$field=props.field,url=_props$field.url,alt=_props$field.alt,copyright=_props$field.copyright;return h("img",Object.assign(data,{attrs:_objectSpread2(_objectSpread2({},data.attrs),{},{src:url,alt:alt,copyright:copyright})}))}};var Link=function(_ref){var _ref$component=_ref.component,component=_ref$component===void 0?"a":_ref$component;return{name:"PrismicLink",functional:true,props:{field:{type:Object,required:true},linkResolver:{type:Function,required:false,default:function _default(){return null}}},render:function render(h,_ref2){var props=_ref2.props,data=_ref2.data,children=_ref2.children,parent=_ref2.parent;var field=props.field,linkResolver=props.linkResolver;if(!field){return null}var url=parent.$prismic?parent.$prismic.asLink(field,linkResolver):PrismicDOM__default.Link.url(field,linkResolver);if(url.indexOf("/")===0){data.props=data.props||{};data.props.to=url;return h(component,data,children)}data.attrs=_objectSpread2(_objectSpread2({},data.attrs),{},{href:url},field.target&&{target:field.target,rel:"noopener"});return h("a",data,children)}}};var RichText={name:"PrismicRichText",functional:true,props:{field:{type:Array,required:true},htmlSerializer:{type:Function,required:false},wrapper:{type:String,required:false,default:"div"}},render:function render(h,_ref){var props=_ref.props,data=_ref.data,children=_ref.children,parent=_ref.parent;var field=props.field,htmlSerializer=props.htmlSerializer,wrapper=props.wrapper;if(!field){return null}var innerHTML=PrismicDOM.RichText.asHtml(field,parent.$prismic.linkResolver,htmlSerializer||parent.$prismic.htmlSerializer);return h(wrapper,_objectSpread2(_objectSpread2({},data),{},{domProps:{innerHTML:innerHTML}}))}};var NuxtLink=Link({component:"nuxt-link"});var VueRouterLink=Link({component:"router-link"});var exp={common:{Embed:Embed,Image:Image,RichText:RichText},nuxt:{Link:NuxtLink},vueRouter:{Link:VueRouterLink}};function asHtml(richText,linkResolver,htmlSerializer){if(richText){return PrismicDOM__default.RichText.asHtml(richText,linkResolver,htmlSerializer)}}function asText(richText,joinString){if(richText){return PrismicDOM__default.RichText.asText(richText,joinString)}return""}function asLink(link,linkResolver){if(link){return PrismicDOM__default.Link.url(link,linkResolver)}}function asDate(date){if(date){return PrismicDOM__default.Date(date)}}function attachMethods(Vue,options){Vue.prototype.$prismic.asHtml=function(richText,linkResolver,htmlSerializer){return asHtml(richText,linkResolver||options.linkResolver,htmlSerializer||options.htmlSerializer)};Vue.prototype.$prismic.asText=asText;Vue.prototype.$prismic.richTextAsPlain=asText;Vue.prototype.$prismic.asDate=asDate;Vue.prototype.$prismic.asLink=function(link,linkResolver){return asLink(link,linkResolver||options.linkResolver)}}var PrismicVue={install:function install(Vue,options){var _options$linkType=options.linkType,linkType=_options$linkType===void 0?"vueRouter":_options$linkType;Vue.prototype.$prismic=prismicJS;Vue.prototype.$prismic.endpoint=options.endpoint;Vue.prototype.$prismic.linkResolver=options.linkResolver;Vue.prototype.$prismic.htmlSerializer=options.htmlSerializer;Vue.prototype.$prismic.client=prismicJS.client(options.endpoint,options.apiOptions);attachMethods(Vue,options);var components=_objectSpread2(_objectSpread2({},exp.common),exp[linkType]);Object.entries(components).forEach(function(_ref){var _ref2=_slicedToArray(_ref,2),_=_ref2[0],c=_ref2[1];Vue.component(c.name,c)})}};return PrismicVue});
1
+ (function(global,factory){typeof exports==="object"&&typeof module!=="undefined"?module.exports=factory(require("@prismicio/client"),require("prismic-dom")):typeof define==="function"&&define.amd?define(["@prismicio/client","prismic-dom"],factory):(global=typeof globalThis!=="undefined"?globalThis:global||self,global.PrismicVue=factory(global.prismicJS,global.prismicDOM))})(this,function(prismicJS,PrismicDOM){"use strict";function _interopDefaultLegacy(e){return e&&typeof e==="object"&&"default"in e?e:{default:e}}var prismicJS__default=_interopDefaultLegacy(prismicJS);var PrismicDOM__default=_interopDefaultLegacy(PrismicDOM);function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly){symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})}keys.push.apply(keys,symbols)}return keys}function _objectSpread2(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};if(i%2){ownKeys(Object(source),true).forEach(function(key){_defineProperty(target,key,source[key])})}else if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source))}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}}return target}function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_unsupportedIterableToArray(arr,i)||_nonIterableRest()}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr}function _iterableToArrayLimit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i["return"]!=null)_i["return"]()}finally{if(_d)throw _e}}return _arr}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var Embed={name:"PrismicEmbed",functional:true,props:{field:{type:Object,required:true},wrapper:{type:String,required:false,default:"div"}},render:function render(h,_ref){var props=_ref.props,data=_ref.data;var field=props.field,wrapper=props.wrapper;if(!field||!field.html){return null}var embedUrl=field.embed_url,type=field.type,providerName=field.provider_name;var attrs=_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({},data.attrs),embedUrl&&{"data-oembed":embedUrl}),type&&{"data-oembed-type":type}),providerName&&{"data-oembed-provider":providerName});return h(wrapper,_objectSpread2(_objectSpread2({},Object.assign(data,{attrs:attrs})),{},{domProps:{innerHTML:field.html}}))}};var Image={name:"PrismicImage",functional:true,props:{field:{type:Object,required:true}},render:function render(h,_ref){var props=_ref.props,data=_ref.data;var field=props.field;if(!field){return null}var url=field.url,alt=field.alt,copyright=field.copyright;return h("img",Object.assign(data,{attrs:_objectSpread2(_objectSpread2({},data.attrs),{},{src:url,alt:alt,copyright:copyright})}))}};var isInternalURL=function isInternalURL(url){var isInternal=/^\/(?!\/)/.test(url);var isSpecialLink=!isInternal&&!/^https?:\/\//i.test(url);return isInternal&&!isSpecialLink};var Link=function(_ref){var _ref$component=_ref.component,component=_ref$component===void 0?"a":_ref$component;return{name:"PrismicLink",functional:true,props:{field:{type:Object,required:true},linkResolver:{type:Function,required:false},target:{type:String,default:undefined,required:false},rel:{type:String,default:undefined,required:false},blankTargetRelAttribute:{type:String,default:"noopener noreferrer",required:false}},render:function render(h,_ref2){var props=_ref2.props,data=_ref2.data,children=_ref2.children,parent=_ref2.parent;var field=props.field,linkResolver=props.linkResolver;if(!field){return null}var url=parent.$prismic?parent.$prismic.asLink(field,linkResolver):PrismicDOM__default["default"].Link.url(field,linkResolver||function(){return null});if(isInternalURL(url)&&!props.target){data.props=data.props||{};data.props.to=url;return h(component,data,children)}data.attrs=_objectSpread2(_objectSpread2({},data.attrs),{},{href:url});if(typeof props.target!=="undefined"){data.attrs.target=props.target}else if(field.target){data.attrs.target=field.target}if(typeof props.rel!=="undefined"){data.attrs.rel=props.rel}else if(data.attrs.target==="_blank"){data.attrs.rel=props.blankTargetRelAttribute}return h("a",data,children)}}};var RichText={name:"PrismicRichText",functional:true,props:{field:{type:Array,required:true},linkResolver:{type:Function,required:false},htmlSerializer:{type:Function,required:false},wrapper:{type:String,required:false,default:"div"}},render:function render(h,_ref){var props=_ref.props,data=_ref.data,parent=_ref.parent;var field=props.field,linkResolver=props.linkResolver,htmlSerializer=props.htmlSerializer,wrapper=props.wrapper;if(!field){return null}var innerHTML=PrismicDOM.RichText.asHtml(field,linkResolver?linkResolver:parent.$prismic?parent.$prismic.linkResolver:undefined,htmlSerializer?htmlSerializer:parent.$prismic?parent.$prismic.htmlSerializer:undefined);return h(wrapper,_objectSpread2(_objectSpread2({},data),{},{domProps:{innerHTML:innerHTML}}))}};var Text={name:"PrismicText",functional:true,props:{field:{type:Array,required:true},separator:{type:String,default:undefined,required:false},wrapper:{type:String,required:false,default:"div"}},render:function render(h,_ref){var props=_ref.props,data=_ref.data;_ref.children;_ref.parent;var field=props.field,separator=props.separator,wrapper=props.wrapper;if(!field){return null}var innerHTML=PrismicDOM.RichText.asText(field,separator);return h(wrapper,_objectSpread2(_objectSpread2({},data),{},{domProps:{innerHTML:innerHTML}}))}};if(typeof process==="undefined"){globalThis.process={env:{}}}var __PRODUCTION__=process.env.NODE_ENV==="production";var getSliceComponentProps=function getSliceComponentProps(propsHint){return{slice:{type:Object,required:true},index:{type:Number,required:true},slices:{type:Array,required:true},context:{type:null,required:true}}};var TODOSliceComponent=__PRODUCTION__?null:{name:"TODOSliceCOmponent",functional:true,props:getSliceComponentProps(),render:function render(h,_ref){var props=_ref.props,data=_ref.data;console.warn('[SliceZone] Could not find a component for Slice type "'.concat(props.slice.slice_type,'"'),props.slice);return h("section",_objectSpread2(_objectSpread2({},data),{},{attrs:_objectSpread2(_objectSpread2({},data.attrs),{},{"data-slice-zone-todo-component":"","data-slice-type":props.slice.slice_type})}),['Could not find a component for Slice type "'.concat(props.slice.slice_type,'"')])}};var SliceZone={name:"SliceZone",props:{slices:{type:Array,required:true},components:{type:Object,default:undefined,required:false},resolver:{type:Function,default:undefined,required:false},context:{type:null,default:undefined,required:false},defaultComponent:{type:Object,default:undefined,required:false},wrapper:{type:[String,Object,Function],default:"div",required:false}},computed:{renderedSlices:function renderedSlices(){var _this=this;if(!this.slices){return null}return this.slices.map(function(slice,index){var component=_this.components&&slice.slice_type in _this.components?_this.components[slice.slice_type]:_this.defaultComponent||TODOSliceComponent;if(_this.resolver){var resolvedComponent=_this.resolver({slice:slice,sliceName:slice.slice_type,i:index});if(resolvedComponent){component=resolvedComponent}}var p={key:"".concat(slice.slice_type,"-").concat(index),props:{slice:slice,index:index,context:_this.context,slices:_this.slices}};return{component:component,p:p}})}},render:function render(h){if(!this.slices){return null}return h(this.wrapper,this.renderedSlices.map(function(_ref2){var component=_ref2.component,p=_ref2.p;return h(component,p)}))}};var NuxtLink=Link({component:"nuxt-link"});var VueRouterLink=Link({component:"router-link"});var exp={common:{Embed:Embed,Image:Image,RichText:RichText,Text:Text,SliceZone:SliceZone},nuxt:{Link:NuxtLink},vueRouter:{Link:VueRouterLink}};function asHtml(richText,linkResolver,htmlSerializer){if(richText){return PrismicDOM__default["default"].RichText.asHtml(richText,linkResolver,htmlSerializer)}}function asText(richText,joinString){if(richText){return PrismicDOM__default["default"].RichText.asText(richText,joinString)}return""}function asLink(link,linkResolver){if(link){return PrismicDOM__default["default"].Link.url(link,linkResolver)}}function asDate(date){if(date){return PrismicDOM__default["default"].Date(date)}}var client=prismicJS__default["default"].client;function attachMethods(Vue,options){Vue.prototype.$prismic.asHtml=function(richText,linkResolver,htmlSerializer){return asHtml(richText,linkResolver||options.linkResolver,htmlSerializer||options.htmlSerializer)};Vue.prototype.$prismic.asHTML=Vue.prototype.$prismic.asHtml;Vue.prototype.$prismic.asText=asText;Vue.prototype.$prismic.richTextAsPlain=asText;Vue.prototype.$prismic.asDate=asDate;Vue.prototype.$prismic.asLink=function(link,linkResolver){return asLink(link,linkResolver||options.linkResolver)}}var PrismicVue={install:function install(Vue,options){var _options$linkType=options.linkType,linkType=_options$linkType===void 0?"vueRouter":_options$linkType;Vue.prototype.$prismic=prismicJS__default["default"];Vue.prototype.$prismic.predicate=prismicJS__default["default"].Predicates;Vue.prototype.$prismic.cookie={preview:prismicJS__default["default"].previewCookie};Vue.prototype.$prismic.endpoint=options.endpoint;Vue.prototype.$prismic.linkResolver=options.linkResolver;Vue.prototype.$prismic.htmlSerializer=options.htmlSerializer;Vue.prototype.$prismic.client=client(options.endpoint,options.apiOptions);attachMethods(Vue,options);var components=_objectSpread2(_objectSpread2({},exp.common),exp[linkType]);Object.entries(components).forEach(function(_ref){var _ref2=_slicedToArray(_ref,2);_ref2[0];var c=_ref2[1];Vue.component(c.name,c)})}};return PrismicVue});