@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.
@@ -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;
@@ -184,11 +193,24 @@
184
193
  }
185
194
  };
186
195
 
196
+ var isInternalURL = function isInternalURL(url) {
197
+ /**
198
+ * @see Regex101 expression: {@link https://regex101.com/r/1y7iod/1}
199
+ */
200
+ var isInternal = /^\/(?!\/)/.test(url);
201
+ /**
202
+ * @see Regex101 expression: {@link https://regex101.com/r/RnUseS/1}
203
+ */
204
+
205
+ var isSpecialLink = !isInternal && !/^https?:\/\//i.test(url);
206
+ return isInternal && !isSpecialLink;
207
+ };
208
+
187
209
  var Link = (function (_ref) {
188
210
  var _ref$component = _ref.component,
189
- component = _ref$component === void 0 ? 'a' : _ref$component;
211
+ component = _ref$component === void 0 ? "a" : _ref$component;
190
212
  return {
191
- name: 'PrismicLink',
213
+ name: "PrismicLink",
192
214
  functional: true,
193
215
  props: {
194
216
  field: {
@@ -197,10 +219,22 @@
197
219
  },
198
220
  linkResolver: {
199
221
  type: Function,
200
- required: false,
201
- "default": function _default() {
202
- return null;
203
- }
222
+ required: false
223
+ },
224
+ target: {
225
+ type: String,
226
+ "default": undefined,
227
+ required: false
228
+ },
229
+ rel: {
230
+ type: String,
231
+ "default": undefined,
232
+ required: false
233
+ },
234
+ blankTargetRelAttribute: {
235
+ type: String,
236
+ "default": "noopener",
237
+ required: false
204
238
  }
205
239
  },
206
240
  render: function render(h, _ref2) {
@@ -215,9 +249,11 @@
215
249
  return null;
216
250
  }
217
251
 
218
- var url = parent.$prismic ? parent.$prismic.asLink(field, linkResolver) : PrismicDOM__default.Link.url(field, linkResolver);
252
+ var url = parent.$prismic ? parent.$prismic.asLink(field, linkResolver) : PrismicDOM__default["default"].Link.url(field, linkResolver || function () {
253
+ return null;
254
+ });
219
255
 
220
- if (url.indexOf('/') === 0) {
256
+ if (isInternalURL(url) && !props.target) {
221
257
  data.props = data.props || {};
222
258
  data.props.to = url;
223
259
  return h(component, data, children);
@@ -225,23 +261,33 @@
225
261
 
226
262
  data.attrs = _objectSpread2(_objectSpread2({}, data.attrs), {}, {
227
263
  href: url
228
- }, field.target && {
229
- target: field.target,
230
- rel: 'noopener'
231
264
  });
232
- return h('a', data, children);
265
+
266
+ if (typeof props.target !== "undefined" || field.target) {
267
+ data.attrs.target = typeof props.target !== "undefined" ? props.target : field.target;
268
+
269
+ if (data.attrs.target === "_blank") {
270
+ data.attrs.rel = typeof props.rel !== "undefined" ? props.rel : props.blankTargetRelAttribute;
271
+ }
272
+ }
273
+
274
+ return h("a", data, children);
233
275
  }
234
276
  };
235
277
  });
236
278
 
237
279
  var RichText = {
238
- name: 'PrismicRichText',
280
+ name: "PrismicRichText",
239
281
  functional: true,
240
282
  props: {
241
283
  field: {
242
284
  type: Array,
243
285
  required: true
244
286
  },
287
+ linkResolver: {
288
+ type: Function,
289
+ required: false
290
+ },
245
291
  htmlSerializer: {
246
292
  type: Function,
247
293
  required: false
@@ -249,15 +295,15 @@
249
295
  wrapper: {
250
296
  type: String,
251
297
  required: false,
252
- "default": 'div'
298
+ "default": "div"
253
299
  }
254
300
  },
255
301
  render: function render(h, _ref) {
256
302
  var props = _ref.props,
257
303
  data = _ref.data,
258
- children = _ref.children,
259
304
  parent = _ref.parent;
260
305
  var field = props.field,
306
+ linkResolver = props.linkResolver,
261
307
  htmlSerializer = props.htmlSerializer,
262
308
  wrapper = props.wrapper;
263
309
 
@@ -265,7 +311,7 @@
265
311
  return null;
266
312
  }
267
313
 
268
- var innerHTML = PrismicDOM.RichText.asHtml(field, parent.$prismic.linkResolver, htmlSerializer || parent.$prismic.htmlSerializer);
314
+ var innerHTML = PrismicDOM.RichText.asHtml(field, linkResolver || parent.$prismic.linkResolver, htmlSerializer || parent.$prismic.htmlSerializer);
269
315
  return h(wrapper, _objectSpread2(_objectSpread2({}, data), {}, {
270
316
  domProps: {
271
317
  innerHTML: innerHTML
@@ -274,17 +320,199 @@
274
320
  }
275
321
  };
276
322
 
323
+ var Text = {
324
+ name: "PrismicText",
325
+ functional: true,
326
+ props: {
327
+ field: {
328
+ type: Array,
329
+ required: true
330
+ },
331
+ separator: {
332
+ type: String,
333
+ "default": undefined,
334
+ required: false
335
+ },
336
+ wrapper: {
337
+ type: String,
338
+ required: false,
339
+ "default": "div"
340
+ }
341
+ },
342
+ render: function render(h, _ref) {
343
+ var props = _ref.props,
344
+ data = _ref.data;
345
+ _ref.children;
346
+ _ref.parent;
347
+ var field = props.field,
348
+ separator = props.separator,
349
+ wrapper = props.wrapper;
350
+
351
+ if (!field) {
352
+ return null;
353
+ }
354
+
355
+ var innerHTML = PrismicDOM.RichText.asText(field, separator);
356
+ return h(wrapper, _objectSpread2(_objectSpread2({}, data), {}, {
357
+ domProps: {
358
+ innerHTML: innerHTML
359
+ }
360
+ }));
361
+ }
362
+ };
363
+
364
+ // We need to polyfill process if it doesn't exist, such as in the browser.
365
+ if (typeof process === "undefined") {
366
+ globalThis.process = {
367
+ env: {}
368
+ };
369
+ }
370
+ /**
371
+ * `true` if in the production environment, `false` otherwise.
372
+ *
373
+ * This boolean can be used to perform actions only in development environments,
374
+ * such as logging.
375
+ */
376
+
377
+
378
+ var __PRODUCTION__ = process.env.NODE_ENV === "production";
379
+
380
+ var getSliceComponentProps = function getSliceComponentProps(propsHint) {
381
+ return {
382
+ slice: {
383
+ type: Object,
384
+ required: true
385
+ },
386
+ index: {
387
+ type: Number,
388
+ required: true
389
+ },
390
+ slices: {
391
+ type: Array,
392
+ required: true
393
+ },
394
+ context: {
395
+ type: null,
396
+ required: true
397
+ }
398
+ };
399
+ };
400
+ var TODOSliceComponent = __PRODUCTION__ ? function () {
401
+ return null;
402
+ } : {
403
+ name: "TODOSliceCOmponent",
404
+ functional: true,
405
+ props: getSliceComponentProps(),
406
+ renfer: function renfer(h, _ref) {
407
+ var props = _ref.props,
408
+ data = _ref.data;
409
+ console.warn("[SliceZone] Could not find a component for Slice type \"".concat(props.slice.slice_type, "\""), props.slice);
410
+ return function () {
411
+ return h("section", _objectSpread2(_objectSpread2({}, data), {}, {
412
+ "data-slice-zone-todo-component": "",
413
+ "data-slice-type": props.slice.slice_type
414
+ }), ["Could not find a component for Slice type \"".concat(props.slice.slice_type, "\"")]);
415
+ };
416
+ }
417
+ }; // Just mimiced to prevent confusion but doesn't provide any value with version 2 of this kit
418
+ var SliceZone = {
419
+ name: "SliceZone",
420
+ functional: true,
421
+ props: {
422
+ slices: {
423
+ type: Array,
424
+ required: true
425
+ },
426
+ components: {
427
+ type: Object,
428
+ "default": undefined,
429
+ required: false
430
+ },
431
+ resolver: {
432
+ type: Function,
433
+ "default": undefined,
434
+ required: false
435
+ },
436
+ context: {
437
+ type: null,
438
+ "default": undefined,
439
+ required: false
440
+ },
441
+ defaultComponent: {
442
+ type: Object,
443
+ "default": undefined,
444
+ required: false
445
+ },
446
+ wrapper: {
447
+ type: [String, Object, Function],
448
+ "default": "div",
449
+ required: false
450
+ }
451
+ },
452
+ render: function render(h, _ref2) {
453
+ var props = _ref2.props,
454
+ data = _ref2.data;
455
+
456
+ // Prevent fatal if user didn't check for field, throws `Invalid prop` warn
457
+ if (!props.slices) {
458
+ return function () {
459
+ return null;
460
+ };
461
+ }
462
+
463
+ var renderedSlices = computed(function () {
464
+ return props.slices.map(function (slice, index) {
465
+ 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`.
466
+
467
+ if (props.resolver) {
468
+ var resolvedComponent = props.resolver({
469
+ slice: slice,
470
+ sliceName: slice.slice_type,
471
+ i: index
472
+ });
473
+
474
+ if (resolvedComponent) {
475
+ component = resolvedComponent;
476
+ }
477
+ }
478
+
479
+ var p = {
480
+ key: "".concat(slice.slice_type, "-").concat(index),
481
+ slice: slice,
482
+ index: index,
483
+ context: props.context,
484
+ slices: props.slices
485
+ };
486
+ return h(component, p);
487
+ });
488
+ });
489
+ var parent = props.wrapper;
490
+
491
+ if (typeof parent === "string") {
492
+ return h(parent, data, renderedSlices.value);
493
+ } else {
494
+ return h(parent, data, {
495
+ "default": function _default() {
496
+ return renderedSlices.value;
497
+ }
498
+ });
499
+ }
500
+ }
501
+ };
502
+
277
503
  var NuxtLink = Link({
278
- component: 'nuxt-link'
504
+ component: "nuxt-link"
279
505
  });
280
506
  var VueRouterLink = Link({
281
- component: 'router-link'
507
+ component: "router-link"
282
508
  });
283
509
  var exp = {
284
510
  common: {
285
511
  Embed: Embed,
286
512
  Image: Image,
287
- RichText: RichText
513
+ RichText: RichText,
514
+ Text: Text,
515
+ SliceZone: SliceZone
288
516
  },
289
517
  nuxt: {
290
518
  Link: NuxtLink
@@ -296,24 +524,24 @@
296
524
 
297
525
  function asHtml(richText, linkResolver, htmlSerializer) {
298
526
  if (richText) {
299
- return PrismicDOM__default.RichText.asHtml(richText, linkResolver, htmlSerializer);
527
+ return PrismicDOM__default["default"].RichText.asHtml(richText, linkResolver, htmlSerializer);
300
528
  }
301
529
  }
302
530
  function asText(richText, joinString) {
303
531
  if (richText) {
304
- return PrismicDOM__default.RichText.asText(richText, joinString);
532
+ return PrismicDOM__default["default"].RichText.asText(richText, joinString);
305
533
  }
306
534
 
307
535
  return '';
308
536
  }
309
537
  function asLink(link, linkResolver) {
310
538
  if (link) {
311
- return PrismicDOM__default.Link.url(link, linkResolver);
539
+ return PrismicDOM__default["default"].Link.url(link, linkResolver);
312
540
  }
313
541
  }
314
542
  function asDate(date) {
315
543
  if (date) {
316
- return PrismicDOM__default.Date(date);
544
+ return PrismicDOM__default["default"].Date(date);
317
545
  }
318
546
  }
319
547
 
@@ -322,6 +550,7 @@
322
550
  return asHtml(richText, linkResolver || options.linkResolver, htmlSerializer || options.htmlSerializer);
323
551
  };
324
552
 
553
+ Vue.prototype.$prismic.asHTML = Vue.prototype.$prismic.asHtml;
325
554
  Vue.prototype.$prismic.asText = asText;
326
555
  Vue.prototype.$prismic.richTextAsPlain = asText;
327
556
  Vue.prototype.$prismic.asDate = asDate;
@@ -334,12 +563,12 @@
334
563
  var PrismicVue = {
335
564
  install: function install(Vue, options) {
336
565
  var _options$linkType = options.linkType,
337
- linkType = _options$linkType === void 0 ? 'vueRouter' : _options$linkType;
338
- Vue.prototype.$prismic = prismicJS;
566
+ linkType = _options$linkType === void 0 ? "vueRouter" : _options$linkType;
567
+ Vue.prototype.$prismic = prismicJS__default["default"];
339
568
  Vue.prototype.$prismic.endpoint = options.endpoint;
340
569
  Vue.prototype.$prismic.linkResolver = options.linkResolver;
341
570
  Vue.prototype.$prismic.htmlSerializer = options.htmlSerializer;
342
- Vue.prototype.$prismic.client = prismicJS.client(options.endpoint, options.apiOptions);
571
+ Vue.prototype.$prismic.client = prismicJS__default["default"].client(options.endpoint, options.apiOptions);
343
572
  attachMethods(Vue, options);
344
573
 
345
574
  var components = _objectSpread2(_objectSpread2({}, exp.common), exp[linkType]);
@@ -350,9 +579,9 @@
350
579
 
351
580
 
352
581
  Object.entries(components).forEach(function (_ref) {
353
- var _ref2 = _slicedToArray(_ref, 2),
354
- _ = _ref2[0],
355
- c = _ref2[1];
582
+ var _ref2 = _slicedToArray(_ref, 2);
583
+ _ref2[0];
584
+ var c = _ref2[1];
356
585
 
357
586
  Vue.component(c.name, c);
358
587
  });
@@ -361,4 +590,4 @@
361
590
 
362
591
  return PrismicVue;
363
592
 
364
- })));
593
+ }));
@@ -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 _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 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",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"||field.target){data.attrs.target=typeof props.target!=="undefined"?props.target:field.target;if(data.attrs.target==="_blank"){data.attrs.rel=typeof props.rel!=="undefined"?props.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||parent.$prismic.linkResolver,htmlSerializer||parent.$prismic.htmlSerializer);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__?function(){return null}:{name:"TODOSliceCOmponent",functional:true,props:getSliceComponentProps(),renfer:function renfer(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 function(){return h("section",_objectSpread2(_objectSpread2({},data),{},{"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",functional:true,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}},render:function render(h,_ref2){var props=_ref2.props,data=_ref2.data;if(!props.slices){return function(){return null}}var renderedSlices=computed(function(){return props.slices.map(function(slice,index){var component=props.components&&slice.slice_type in props.components?props.components[slice.slice_type]:props.defaultComponent||TODOSliceComponent;if(props.resolver){var resolvedComponent=props.resolver({slice:slice,sliceName:slice.slice_type,i:index});if(resolvedComponent){component=resolvedComponent}}var p={key:"".concat(slice.slice_type,"-").concat(index),slice:slice,index:index,context:props.context,slices:props.slices};return h(component,p)})});var parent=props.wrapper;if(typeof parent==="string"){return h(parent,data,renderedSlices.value)}else{return h(parent,data,{default:function _default(){return renderedSlices.value}})}}};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)}}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.endpoint=options.endpoint;Vue.prototype.$prismic.linkResolver=options.linkResolver;Vue.prototype.$prismic.htmlSerializer=options.htmlSerializer;Vue.prototype.$prismic.client=prismicJS__default["default"].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});
package/package.json CHANGED
@@ -1,43 +1,53 @@
1
1
  {
2
- "name": "@prismicio/vue",
3
- "version": "2.0.8",
4
- "description": "Vue.js plugin to facilitate integration of content managed with Prismic",
5
- "license": "Apache-2.0",
6
- "repository": "github:prismicio/prismic-vue",
7
- "author": "Prismic",
8
- "components": "dist/components.esm.js",
9
- "main": "dist/prismic-vue.common.js",
10
- "module": "dist/prismic-vue.esm.js",
11
- "unpkg": "dist/prismic-vue.min.js",
12
- "jsdelivr": "dist/prismic-vue.min.js",
13
- "scripts": {
14
- "build": "rollup -c --environment BUILD:production && uglifyjs dist/prismic-vue.js -o dist/prismic-vue.min.js",
15
- "beauty": "rollup -c",
16
- "dev": "rollup -c --watch --environment BUILD:development",
17
- "visualize": "rollup -c --config-visualize"
18
- },
19
- "peerDependencies": {
20
- "@prismicio/client": "^4.0.0",
21
- "prismic-dom": "^2.2.5"
22
- },
23
- "engines": {
24
- "node": ">= 6.0.0",
25
- "npm": ">= 3.0.0"
26
- },
27
- "devDependencies": {
28
- "@babel/core": "^7.6.0",
29
- "@babel/preset-env": "^7.6.0",
30
- "@prismicio/client": "^4.0.0",
31
- "postcss": "^7.0.35",
32
- "prismic-dom": "^2.2.5",
33
- "rollup": "^0.62.0",
34
- "rollup-plugin-auto-named-exports": "^1.0.0-beta.3",
35
- "rollup-plugin-babel": "^4.3.3",
36
- "rollup-plugin-commonjs": "^9.1.3",
37
- "rollup-plugin-node-resolve": "^3.3.0",
38
- "rollup-plugin-visualizer": "^2.6.0",
39
- "rollup-plugin-vue": "^4.3.0",
40
- "uglify-js": "^3.4.3",
41
- "vue-template-compiler": "^2.6.12"
42
- }
2
+ "name": "@prismicio/vue",
3
+ "version": "2.1.0-alpha.0",
4
+ "description": "Vue.js plugin to facilitate integration of content managed with Prismic",
5
+ "license": "Apache-2.0",
6
+ "repository": "github:prismicio/prismic-vue",
7
+ "author": "Prismic",
8
+ "components": "dist/components.esm.js",
9
+ "main": "dist/prismic-vue.common.js",
10
+ "module": "dist/prismic-vue.esm.js",
11
+ "unpkg": "dist/prismic-vue.min.js",
12
+ "jsdelivr": "dist/prismic-vue.min.js",
13
+ "files": [
14
+ "components",
15
+ "dist",
16
+ "src"
17
+ ],
18
+ "scripts": {
19
+ "build": "rollup -c --environment BUILD:production && uglifyjs dist/prismic-vue.js -o dist/prismic-vue.min.js",
20
+ "release": "npm run build && npm publish",
21
+ "beauty": "rollup -c",
22
+ "dev": "rollup -c --watch --environment BUILD:development",
23
+ "visualize": "rollup -c --config-visualize"
24
+ },
25
+ "peerDependencies": {
26
+ "vue": "^2.6.0",
27
+ "@prismicio/client": "^4.0.0 || ^5.0.0",
28
+ "prismic-dom": "^2.2.0"
29
+ },
30
+ "engines": {
31
+ "node": ">= 6.0.0"
32
+ },
33
+ "devDependencies": {
34
+ "@babel/core": "^7.16.0",
35
+ "@babel/preset-env": "^7.16.4",
36
+ "@prismicio/client": "^5.1.0",
37
+ "postcss": "^8.3.11",
38
+ "prismic-dom": "^2.2.6",
39
+ "rollup": "^2.60.1",
40
+ "rollup-plugin-auto-named-exports": "^1.0.0-beta.3",
41
+ "rollup-plugin-babel": "^4.4.0",
42
+ "rollup-plugin-commonjs": "^10.1.0",
43
+ "rollup-plugin-node-resolve": "^5.2.0",
44
+ "rollup-plugin-visualizer": "^5.5.2",
45
+ "rollup-plugin-vue": "^6.0.0",
46
+ "uglify-js": "^3.14.3",
47
+ "vue-template-compiler": "^2.6.14"
48
+ },
49
+ "vetur": {
50
+ "tags": "vetur/tags.json",
51
+ "attributes": "vetur/attributes.json"
52
+ }
43
53
  }