@payloadcms/plugin-seo 2.2.1 → 3.0.0-alpha.21

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,115 +1,64 @@
1
1
  'use client';
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- function _export(target, all) {
7
- for(var name in all)Object.defineProperty(target, name, {
8
- enumerable: true,
9
- get: all[name]
10
- });
11
- }
12
- _export(exports, {
13
- MetaTitle: function() {
14
- return MetaTitle;
15
- },
16
- getMetaTitleField: function() {
17
- return getMetaTitleField;
18
- }
19
- });
20
- const _forms = require("payload/components/forms");
21
- const _utilities = require("payload/components/utilities");
22
- const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
23
- const _reacti18next = require("react-i18next");
24
- const _defaults = require("../defaults");
25
- const _LengthIndicator = require("../ui/LengthIndicator");
26
- function _getRequireWildcardCache(nodeInterop) {
27
- if (typeof WeakMap !== "function") return null;
28
- var cacheBabelInterop = new WeakMap();
29
- var cacheNodeInterop = new WeakMap();
30
- return (_getRequireWildcardCache = function(nodeInterop) {
31
- return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
32
- })(nodeInterop);
33
- }
34
- function _interop_require_wildcard(obj, nodeInterop) {
35
- if (!nodeInterop && obj && obj.__esModule) {
36
- return obj;
37
- }
38
- if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
39
- return {
40
- default: obj
41
- };
42
- }
43
- var cache = _getRequireWildcardCache(nodeInterop);
44
- if (cache && cache.has(obj)) {
45
- return cache.get(obj);
46
- }
47
- var newObj = {};
48
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
49
- for(var key in obj){
50
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
51
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
52
- if (desc && (desc.get || desc.set)) {
53
- Object.defineProperty(newObj, key, desc);
54
- } else {
55
- newObj[key] = obj[key];
56
- }
57
- }
58
- }
59
- newObj.default = obj;
60
- if (cache) {
61
- cache.set(obj, newObj);
62
- }
63
- return newObj;
64
- }
65
- const { maxLength, minLength } = _defaults.defaults.title;
66
- const MetaTitle = (props)=>{
67
- const { name, label, path, pluginConfig, required } = props || {};
68
- const { t } = (0, _reacti18next.useTranslation)('plugin-seo');
69
- const field = (0, _forms.useField)({
70
- name,
71
- label,
2
+ import { useFieldPath } from '@payloadcms/ui';
3
+ import { TextInput, useAllFormFields, useDocumentInfo, useField, useLocale, useTranslation } from '@payloadcms/ui';
4
+ import React, { useCallback } from 'react';
5
+ import { defaults } from '../defaults';
6
+ import { LengthIndicator } from '../ui/LengthIndicator';
7
+ import './index.scss';
8
+ const { maxLength, minLength } = defaults.title;
9
+ export const MetaTitle = (props)=>{
10
+ const { Label, hasGenerateTitleFn, path, required } = props || {};
11
+ const { path: pathFromContext, schemaPath } = useFieldPath();
12
+ const { t } = useTranslation();
13
+ const field = useField({
72
14
  path
73
15
  });
74
- const locale = (0, _utilities.useLocale)();
75
- const [fields] = (0, _forms.useAllFormFields)();
76
- const docInfo = (0, _utilities.useDocumentInfo)();
77
- const { setValue, showError, value, errorMessage } = field;
78
- const regenerateTitle = (0, _react.useCallback)(async ()=>{
79
- const { generateTitle } = pluginConfig;
80
- let generatedTitle;
81
- if (typeof generateTitle === 'function') {
82
- generatedTitle = await generateTitle({
16
+ const locale = useLocale();
17
+ const [fields] = useAllFormFields();
18
+ const docInfo = useDocumentInfo();
19
+ const { errorMessage, setValue, showError, value } = field;
20
+ const regenerateTitle = useCallback(async ()=>{
21
+ if (!hasGenerateTitleFn) return;
22
+ const genTitleResponse = await fetch('/api/plugin-seo/generate-title', {
23
+ body: JSON.stringify({
83
24
  ...docInfo,
84
25
  doc: {
85
26
  ...fields
86
27
  },
87
28
  locale: typeof locale === 'object' ? locale?.code : locale
88
- });
89
- }
90
- setValue(generatedTitle);
29
+ }),
30
+ credentials: 'include',
31
+ headers: {
32
+ 'Content-Type': 'application/json'
33
+ },
34
+ method: 'POST'
35
+ });
36
+ const { result: generatedTitle } = await genTitleResponse.json();
37
+ setValue(generatedTitle || '');
91
38
  }, [
92
39
  fields,
93
40
  setValue,
94
- pluginConfig,
41
+ hasGenerateTitleFn,
95
42
  locale,
96
43
  docInfo
97
44
  ]);
98
- return /*#__PURE__*/ _react.default.createElement("div", {
45
+ return /*#__PURE__*/ React.createElement("div", {
99
46
  style: {
100
47
  marginBottom: '20px'
101
48
  }
102
- }, /*#__PURE__*/ _react.default.createElement("div", {
49
+ }, /*#__PURE__*/ React.createElement("div", {
103
50
  style: {
104
51
  marginBottom: '5px',
105
52
  position: 'relative'
106
53
  }
107
- }, /*#__PURE__*/ _react.default.createElement("div", null, label && typeof label === 'string' && label, required && /*#__PURE__*/ _react.default.createElement("span", {
54
+ }, /*#__PURE__*/ React.createElement("div", {
55
+ className: "plugin-seo__field"
56
+ }, Label, required && /*#__PURE__*/ React.createElement("span", {
108
57
  style: {
109
- marginLeft: '5px',
110
- color: 'var(--theme-error-500)'
58
+ color: 'var(--theme-error-500)',
59
+ marginLeft: '5px'
111
60
  }
112
- }, "*"), typeof pluginConfig.generateTitle === 'function' && /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, "\xa0 \xa0", /*#__PURE__*/ _react.default.createElement("button", {
61
+ }, "*"), hasGenerateTitleFn && /*#__PURE__*/ React.createElement(React.Fragment, null, "   ", /*#__PURE__*/ React.createElement("button", {
113
62
  onClick: regenerateTitle,
114
63
  style: {
115
64
  background: 'none',
@@ -121,45 +70,43 @@ const MetaTitle = (props)=>{
121
70
  textDecoration: 'underline'
122
71
  },
123
72
  type: "button"
124
- }, t('autoGenerate')))), /*#__PURE__*/ _react.default.createElement("div", {
73
+ }, t('plugin-seo:autoGenerate')))), /*#__PURE__*/ React.createElement("div", {
125
74
  style: {
126
75
  color: '#9A9A9A'
127
76
  }
128
- }, t('lengthTipTitle', {
77
+ }, t('plugin-seo:lengthTipTitle', {
129
78
  maxLength,
130
79
  minLength
131
- }), /*#__PURE__*/ _react.default.createElement("a", {
80
+ }), /*#__PURE__*/ React.createElement("a", {
132
81
  href: "https://developers.google.com/search/docs/advanced/appearance/title-link#page-titles",
133
82
  rel: "noopener noreferrer",
134
83
  target: "_blank"
135
- }, t('bestPractices')), ".")), /*#__PURE__*/ _react.default.createElement("div", {
84
+ }, t('plugin-seo:bestPractices')), ".")), /*#__PURE__*/ React.createElement("div", {
136
85
  style: {
137
86
  marginBottom: '10px',
138
87
  position: 'relative'
139
88
  }
140
- }, /*#__PURE__*/ _react.default.createElement(_forms.TextInput, {
141
- name: name,
89
+ }, /*#__PURE__*/ React.createElement(TextInput, {
90
+ Error: errorMessage,
142
91
  onChange: setValue,
143
- path: name,
92
+ path: pathFromContext,
93
+ required: required,
144
94
  showError: showError,
145
95
  style: {
146
96
  marginBottom: 0
147
97
  },
148
- errorMessage: errorMessage,
149
- required: required,
150
98
  value: value
151
- })), /*#__PURE__*/ _react.default.createElement("div", {
99
+ })), /*#__PURE__*/ React.createElement("div", {
152
100
  style: {
153
101
  alignItems: 'center',
154
102
  display: 'flex',
155
103
  width: '100%'
156
104
  }
157
- }, /*#__PURE__*/ _react.default.createElement(_LengthIndicator.LengthIndicator, {
105
+ }, /*#__PURE__*/ React.createElement(LengthIndicator, {
158
106
  maxLength: maxLength,
159
107
  minLength: minLength,
160
108
  text: value
161
109
  })));
162
110
  };
163
- const getMetaTitleField = (props)=>/*#__PURE__*/ _react.default.createElement(MetaTitle, props);
164
111
 
165
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWVsZHMvTWV0YVRpdGxlLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHR5cGUge1xuICBGaWVsZFR5cGUgYXMgRmllbGRUeXBlLFxuICBPcHRpb25zLFxufSBmcm9tICdwYXlsb2FkL2Rpc3QvYWRtaW4vY29tcG9uZW50cy9mb3Jtcy91c2VGaWVsZC90eXBlcydcbmltcG9ydCB0eXBlIHsgVGV4dEZpZWxkIGFzIFRleHRGaWVsZFR5cGUgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgeyBUZXh0SW5wdXQsIHVzZUFsbEZvcm1GaWVsZHMsIHVzZUZpZWxkIH0gZnJvbSAncGF5bG9hZC9jb21wb25lbnRzL2Zvcm1zJ1xuaW1wb3J0IHsgdXNlRG9jdW1lbnRJbmZvLCB1c2VMb2NhbGUgfSBmcm9tICdwYXlsb2FkL2NvbXBvbmVudHMvdXRpbGl0aWVzJ1xuaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5cbmltcG9ydCB0eXBlIHsgUGx1Z2luQ29uZmlnIH0gZnJvbSAnLi4vdHlwZXMnXG5cbmltcG9ydCB7IGRlZmF1bHRzIH0gZnJvbSAnLi4vZGVmYXVsdHMnXG5pbXBvcnQgeyBMZW5ndGhJbmRpY2F0b3IgfSBmcm9tICcuLi91aS9MZW5ndGhJbmRpY2F0b3InXG5cbmNvbnN0IHsgbWF4TGVuZ3RoLCBtaW5MZW5ndGggfSA9IGRlZmF1bHRzLnRpdGxlXG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVkdW5kYW50LXR5cGUtY29uc3RpdHVlbnRzXG50eXBlIE1ldGFUaXRsZVByb3BzID0gVGV4dEZpZWxkVHlwZSAmIHtcbiAgcGF0aDogc3RyaW5nXG4gIHBsdWdpbkNvbmZpZzogUGx1Z2luQ29uZmlnXG59XG5cbmV4cG9ydCBjb25zdCBNZXRhVGl0bGU6IFJlYWN0LkZDPE1ldGFUaXRsZVByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7IG5hbWUsIGxhYmVsLCBwYXRoLCBwbHVnaW5Db25maWcsIHJlcXVpcmVkIH0gPSBwcm9wcyB8fCB7fVxuXG4gIGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oJ3BsdWdpbi1zZW8nKVxuXG4gIGNvbnN0IGZpZWxkOiBGaWVsZFR5cGU8c3RyaW5nPiA9IHVzZUZpZWxkKHtcbiAgICBuYW1lLFxuICAgIGxhYmVsLFxuICAgIHBhdGgsXG4gIH0gYXMgT3B0aW9ucylcblxuICBjb25zdCBsb2NhbGUgPSB1c2VMb2NhbGUoKVxuICBjb25zdCBbZmllbGRzXSA9IHVzZUFsbEZvcm1GaWVsZHMoKVxuICBjb25zdCBkb2NJbmZvID0gdXNlRG9jdW1lbnRJbmZvKClcblxuICBjb25zdCB7IHNldFZhbHVlLCBzaG93RXJyb3IsIHZhbHVlLCBlcnJvck1lc3NhZ2UgfSA9IGZpZWxkXG5cbiAgY29uc3QgcmVnZW5lcmF0ZVRpdGxlID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHsgZ2VuZXJhdGVUaXRsZSB9ID0gcGx1Z2luQ29uZmlnXG4gICAgbGV0IGdlbmVyYXRlZFRpdGxlXG5cbiAgICBpZiAodHlwZW9mIGdlbmVyYXRlVGl0bGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGdlbmVyYXRlZFRpdGxlID0gYXdhaXQgZ2VuZXJhdGVUaXRsZSh7XG4gICAgICAgIC4uLmRvY0luZm8sXG4gICAgICAgIGRvYzogeyAuLi5maWVsZHMgfSxcbiAgICAgICAgbG9jYWxlOiB0eXBlb2YgbG9jYWxlID09PSAnb2JqZWN0JyA/IGxvY2FsZT8uY29kZSA6IGxvY2FsZSxcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgc2V0VmFsdWUoZ2VuZXJhdGVkVGl0bGUpXG4gIH0sIFtmaWVsZHMsIHNldFZhbHVlLCBwbHVnaW5Db25maWcsIGxvY2FsZSwgZG9jSW5mb10pXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBzdHlsZT17e1xuICAgICAgICBtYXJnaW5Cb3R0b206ICcyMHB4JyxcbiAgICAgIH19XG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIG1hcmdpbkJvdHRvbTogJzVweCcsXG4gICAgICAgICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAge2xhYmVsICYmIHR5cGVvZiBsYWJlbCA9PT0gJ3N0cmluZycgJiYgbGFiZWx9XG5cbiAgICAgICAgICB7cmVxdWlyZWQgJiYgKFxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICBtYXJnaW5MZWZ0OiAnNXB4JyxcbiAgICAgICAgICAgICAgICBjb2xvcjogJ3ZhcigtLXRoZW1lLWVycm9yLTUwMCknLFxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAqXG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgKX1cblxuICAgICAgICAgIHt0eXBlb2YgcGx1Z2luQ29uZmlnLmdlbmVyYXRlVGl0bGUgPT09ICdmdW5jdGlvbicgJiYgKFxuICAgICAgICAgICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgICAgICAgICAmbmJzcDsgJm1kYXNoOyAmbmJzcDtcbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3JlZ2VuZXJhdGVUaXRsZX1cbiAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJ25vbmUnLFxuICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICAgICAgICAgICAgYm9yZGVyOiAnbm9uZScsXG4gICAgICAgICAgICAgICAgICBjb2xvcjogJ2N1cnJlbnRjb2xvcicsXG4gICAgICAgICAgICAgICAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAsXG4gICAgICAgICAgICAgICAgICB0ZXh0RGVjb3JhdGlvbjogJ3VuZGVybGluZScsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt0KCdhdXRvR2VuZXJhdGUnKX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L1JlYWN0LkZyYWdtZW50PlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgIGNvbG9yOiAnIzlBOUE5QScsXG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIHt0KCdsZW5ndGhUaXBUaXRsZScsIHsgbWF4TGVuZ3RoLCBtaW5MZW5ndGggfSl9XG4gICAgICAgICAgPGFcbiAgICAgICAgICAgIGhyZWY9XCJodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9zZWFyY2gvZG9jcy9hZHZhbmNlZC9hcHBlYXJhbmNlL3RpdGxlLWxpbmsjcGFnZS10aXRsZXNcIlxuICAgICAgICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiXG4gICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt0KCdiZXN0UHJhY3RpY2VzJyl9XG4gICAgICAgICAgPC9hPlxuICAgICAgICAgIC5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBtYXJnaW5Cb3R0b206ICcxMHB4JyxcbiAgICAgICAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPFRleHRJbnB1dFxuICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgb25DaGFuZ2U9e3NldFZhbHVlfVxuICAgICAgICAgIHBhdGg9e25hbWV9XG4gICAgICAgICAgc2hvd0Vycm9yPXtzaG93RXJyb3J9XG4gICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgIG1hcmdpbkJvdHRvbTogMCxcbiAgICAgICAgICB9fVxuICAgICAgICAgIGVycm9yTWVzc2FnZT17ZXJyb3JNZXNzYWdlfVxuICAgICAgICAgIHJlcXVpcmVkPXtyZXF1aXJlZH1cbiAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPExlbmd0aEluZGljYXRvciBtYXhMZW5ndGg9e21heExlbmd0aH0gbWluTGVuZ3RoPXttaW5MZW5ndGh9IHRleHQ9e3ZhbHVlfSAvPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIClcbn1cblxuZXhwb3J0IGNvbnN0IGdldE1ldGFUaXRsZUZpZWxkID0gKHByb3BzOiBNZXRhVGl0bGVQcm9wcykgPT4gPE1ldGFUaXRsZSB7Li4ucHJvcHN9IC8+XG4iXSwibmFtZXMiOlsiTWV0YVRpdGxlIiwiZ2V0TWV0YVRpdGxlRmllbGQiLCJtYXhMZW5ndGgiLCJtaW5MZW5ndGgiLCJkZWZhdWx0cyIsInRpdGxlIiwicHJvcHMiLCJuYW1lIiwibGFiZWwiLCJwYXRoIiwicGx1Z2luQ29uZmlnIiwicmVxdWlyZWQiLCJ0IiwidXNlVHJhbnNsYXRpb24iLCJmaWVsZCIsInVzZUZpZWxkIiwibG9jYWxlIiwidXNlTG9jYWxlIiwiZmllbGRzIiwidXNlQWxsRm9ybUZpZWxkcyIsImRvY0luZm8iLCJ1c2VEb2N1bWVudEluZm8iLCJzZXRWYWx1ZSIsInNob3dFcnJvciIsInZhbHVlIiwiZXJyb3JNZXNzYWdlIiwicmVnZW5lcmF0ZVRpdGxlIiwidXNlQ2FsbGJhY2siLCJnZW5lcmF0ZVRpdGxlIiwiZ2VuZXJhdGVkVGl0bGUiLCJkb2MiLCJjb2RlIiwiZGl2Iiwic3R5bGUiLCJtYXJnaW5Cb3R0b20iLCJwb3NpdGlvbiIsInNwYW4iLCJtYXJnaW5MZWZ0IiwiY29sb3IiLCJSZWFjdCIsIkZyYWdtZW50IiwiYnV0dG9uIiwib25DbGljayIsImJhY2tncm91bmQiLCJiYWNrZ3JvdW5kQ29sb3IiLCJib3JkZXIiLCJjdXJzb3IiLCJwYWRkaW5nIiwidGV4dERlY29yYXRpb24iLCJ0eXBlIiwiYSIsImhyZWYiLCJyZWwiLCJ0YXJnZXQiLCJUZXh0SW5wdXQiLCJvbkNoYW5nZSIsImFsaWduSXRlbXMiLCJkaXNwbGF5Iiwid2lkdGgiLCJMZW5ndGhJbmRpY2F0b3IiLCJ0ZXh0Il0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7O0lBMEJhQSxTQUFTO2VBQVRBOztJQStIQUMsaUJBQWlCO2VBQWpCQTs7O3VCQWpKeUM7MkJBQ1g7K0RBQ1I7OEJBQ0o7MEJBSU47aUNBQ087Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFaEMsTUFBTSxFQUFFQyxTQUFTLEVBQUVDLFNBQVMsRUFBRSxHQUFHQyxrQkFBUSxDQUFDQyxLQUFLO0FBUXhDLE1BQU1MLFlBQXNDLENBQUNNO0lBQ2xELE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxLQUFLLEVBQUVDLElBQUksRUFBRUMsWUFBWSxFQUFFQyxRQUFRLEVBQUUsR0FBR0wsU0FBUyxDQUFDO0lBRWhFLE1BQU0sRUFBRU0sQ0FBQyxFQUFFLEdBQUdDLElBQUFBLDRCQUFjLEVBQUM7SUFFN0IsTUFBTUMsUUFBMkJDLElBQUFBLGVBQVEsRUFBQztRQUN4Q1I7UUFDQUM7UUFDQUM7SUFDRjtJQUVBLE1BQU1PLFNBQVNDLElBQUFBLG9CQUFTO0lBQ3hCLE1BQU0sQ0FBQ0MsT0FBTyxHQUFHQyxJQUFBQSx1QkFBZ0I7SUFDakMsTUFBTUMsVUFBVUMsSUFBQUEsMEJBQWU7SUFFL0IsTUFBTSxFQUFFQyxRQUFRLEVBQUVDLFNBQVMsRUFBRUMsS0FBSyxFQUFFQyxZQUFZLEVBQUUsR0FBR1g7SUFFckQsTUFBTVksa0JBQWtCQyxJQUFBQSxrQkFBVyxFQUFDO1FBQ2xDLE1BQU0sRUFBRUMsYUFBYSxFQUFFLEdBQUdsQjtRQUMxQixJQUFJbUI7UUFFSixJQUFJLE9BQU9ELGtCQUFrQixZQUFZO1lBQ3ZDQyxpQkFBaUIsTUFBTUQsY0FBYztnQkFDbkMsR0FBR1IsT0FBTztnQkFDVlUsS0FBSztvQkFBRSxHQUFHWixNQUFNO2dCQUFDO2dCQUNqQkYsUUFBUSxPQUFPQSxXQUFXLFdBQVdBLFFBQVFlLE9BQU9mO1lBQ3REO1FBQ0Y7UUFFQU0sU0FBU087SUFDWCxHQUFHO1FBQUNYO1FBQVFJO1FBQVVaO1FBQWNNO1FBQVFJO0tBQVE7SUFFcEQscUJBQ0UsNkJBQUNZO1FBQ0NDLE9BQU87WUFDTEMsY0FBYztRQUNoQjtxQkFFQSw2QkFBQ0Y7UUFDQ0MsT0FBTztZQUNMQyxjQUFjO1lBQ2RDLFVBQVU7UUFDWjtxQkFFQSw2QkFBQ0gsYUFDRXhCLFNBQVMsT0FBT0EsVUFBVSxZQUFZQSxPQUV0Q0csMEJBQ0MsNkJBQUN5QjtRQUNDSCxPQUFPO1lBQ0xJLFlBQVk7WUFDWkMsT0FBTztRQUNUO09BQ0QsTUFLRixPQUFPNUIsYUFBYWtCLGFBQWEsS0FBSyw0QkFDckMsNkJBQUNXLGNBQUssQ0FBQ0MsUUFBUSxRQUFDLDZCQUVkLDZCQUFDQztRQUNDQyxTQUFTaEI7UUFDVE8sT0FBTztZQUNMVSxZQUFZO1lBQ1pDLGlCQUFpQjtZQUNqQkMsUUFBUTtZQUNSUCxPQUFPO1lBQ1BRLFFBQVE7WUFDUkMsU0FBUztZQUNUQyxnQkFBZ0I7UUFDbEI7UUFDQUMsTUFBSztPQUVKckMsRUFBRSxrQ0FLWCw2QkFBQ29CO1FBQ0NDLE9BQU87WUFDTEssT0FBTztRQUNUO09BRUMxQixFQUFFLGtCQUFrQjtRQUFFVjtRQUFXQztJQUFVLGtCQUM1Qyw2QkFBQytDO1FBQ0NDLE1BQUs7UUFDTEMsS0FBSTtRQUNKQyxRQUFPO09BRU56QyxFQUFFLG1CQUNELHFCQUlSLDZCQUFDb0I7UUFDQ0MsT0FBTztZQUNMQyxjQUFjO1lBQ2RDLFVBQVU7UUFDWjtxQkFFQSw2QkFBQ21CLGdCQUFTO1FBQ1IvQyxNQUFNQTtRQUNOZ0QsVUFBVWpDO1FBQ1ZiLE1BQU1GO1FBQ05nQixXQUFXQTtRQUNYVSxPQUFPO1lBQ0xDLGNBQWM7UUFDaEI7UUFDQVQsY0FBY0E7UUFDZGQsVUFBVUE7UUFDVmEsT0FBT0E7dUJBR1gsNkJBQUNRO1FBQ0NDLE9BQU87WUFDTHVCLFlBQVk7WUFDWkMsU0FBUztZQUNUQyxPQUFPO1FBQ1Q7cUJBRUEsNkJBQUNDLGdDQUFlO1FBQUN6RCxXQUFXQTtRQUFXQyxXQUFXQTtRQUFXeUQsTUFBTXBDOztBQUkzRTtBQUVPLE1BQU12QixvQkFBb0IsQ0FBQ0ssc0JBQTBCLDZCQUFDTixXQUFjTSJ9
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWVsZHMvTWV0YVRpdGxlLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHR5cGUgeyBGaWVsZFR5cGUsIEZvcm1GaWVsZEJhc2UsIE9wdGlvbnMgfSBmcm9tICdAcGF5bG9hZGNtcy91aSdcblxuaW1wb3J0IHsgdXNlRmllbGRQYXRoIH0gZnJvbSAnQHBheWxvYWRjbXMvdWknXG5pbXBvcnQge1xuICBUZXh0SW5wdXQsXG4gIHVzZUFsbEZvcm1GaWVsZHMsXG4gIHVzZURvY3VtZW50SW5mbyxcbiAgdXNlRmllbGQsXG4gIHVzZUxvY2FsZSxcbiAgdXNlVHJhbnNsYXRpb24sXG59IGZyb20gJ0BwYXlsb2FkY21zL3VpJ1xuaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrIH0gZnJvbSAncmVhY3QnXG5cbmltcG9ydCB0eXBlIHsgR2VuZXJhdGVUaXRsZSB9IGZyb20gJy4uL3R5cGVzJ1xuXG5pbXBvcnQgeyBkZWZhdWx0cyB9IGZyb20gJy4uL2RlZmF1bHRzJ1xuaW1wb3J0IHsgTGVuZ3RoSW5kaWNhdG9yIH0gZnJvbSAnLi4vdWkvTGVuZ3RoSW5kaWNhdG9yJ1xuaW1wb3J0ICcuL2luZGV4LnNjc3MnXG5cbmNvbnN0IHsgbWF4TGVuZ3RoLCBtaW5MZW5ndGggfSA9IGRlZmF1bHRzLnRpdGxlXG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVkdW5kYW50LXR5cGUtY29uc3RpdHVlbnRzXG50eXBlIE1ldGFUaXRsZVByb3BzID0gRm9ybUZpZWxkQmFzZSAmIHtcbiAgaGFzR2VuZXJhdGVUaXRsZUZuOiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBNZXRhVGl0bGU6IFJlYWN0LkZDPE1ldGFUaXRsZVByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7IExhYmVsLCBoYXNHZW5lcmF0ZVRpdGxlRm4sIHBhdGgsIHJlcXVpcmVkIH0gPSBwcm9wcyB8fCB7fVxuICBjb25zdCB7IHBhdGg6IHBhdGhGcm9tQ29udGV4dCwgc2NoZW1hUGF0aCB9ID0gdXNlRmllbGRQYXRoKClcblxuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKClcblxuICBjb25zdCBmaWVsZDogRmllbGRUeXBlPHN0cmluZz4gPSB1c2VGaWVsZCh7XG4gICAgcGF0aCxcbiAgfSBhcyBPcHRpb25zKVxuXG4gIGNvbnN0IGxvY2FsZSA9IHVzZUxvY2FsZSgpXG4gIGNvbnN0IFtmaWVsZHNdID0gdXNlQWxsRm9ybUZpZWxkcygpXG4gIGNvbnN0IGRvY0luZm8gPSB1c2VEb2N1bWVudEluZm8oKVxuXG4gIGNvbnN0IHsgZXJyb3JNZXNzYWdlLCBzZXRWYWx1ZSwgc2hvd0Vycm9yLCB2YWx1ZSB9ID0gZmllbGRcblxuICBjb25zdCByZWdlbmVyYXRlVGl0bGUgPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgaWYgKCFoYXNHZW5lcmF0ZVRpdGxlRm4pIHJldHVyblxuXG4gICAgY29uc3QgZ2VuVGl0bGVSZXNwb25zZSA9IGF3YWl0IGZldGNoKCcvYXBpL3BsdWdpbi1zZW8vZ2VuZXJhdGUtdGl0bGUnLCB7XG4gICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIC4uLmRvY0luZm8sXG4gICAgICAgIGRvYzogeyAuLi5maWVsZHMgfSxcbiAgICAgICAgbG9jYWxlOiB0eXBlb2YgbG9jYWxlID09PSAnb2JqZWN0JyA/IGxvY2FsZT8uY29kZSA6IGxvY2FsZSxcbiAgICAgIH0gc2F0aXNmaWVzIFBhcmFtZXRlcnM8R2VuZXJhdGVUaXRsZT5bMF0pLFxuICAgICAgY3JlZGVudGlhbHM6ICdpbmNsdWRlJyxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgIH0sXG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICB9KVxuXG4gICAgY29uc3QgeyByZXN1bHQ6IGdlbmVyYXRlZFRpdGxlIH0gPSBhd2FpdCBnZW5UaXRsZVJlc3BvbnNlLmpzb24oKVxuXG4gICAgc2V0VmFsdWUoZ2VuZXJhdGVkVGl0bGUgfHwgJycpXG4gIH0sIFtmaWVsZHMsIHNldFZhbHVlLCBoYXNHZW5lcmF0ZVRpdGxlRm4sIGxvY2FsZSwgZG9jSW5mb10pXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBzdHlsZT17e1xuICAgICAgICBtYXJnaW5Cb3R0b206ICcyMHB4JyxcbiAgICAgIH19XG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIG1hcmdpbkJvdHRvbTogJzVweCcsXG4gICAgICAgICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicGx1Z2luLXNlb19fZmllbGRcIj5cbiAgICAgICAgICB7TGFiZWx9XG5cbiAgICAgICAgICB7cmVxdWlyZWQgJiYgKFxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICBjb2xvcjogJ3ZhcigtLXRoZW1lLWVycm9yLTUwMCknLFxuICAgICAgICAgICAgICAgIG1hcmdpbkxlZnQ6ICc1cHgnLFxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAqXG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgKX1cblxuICAgICAgICAgIHtoYXNHZW5lcmF0ZVRpdGxlRm4gJiYgKFxuICAgICAgICAgICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgICAgICAgICAmbmJzcDsgJm1kYXNoOyAmbmJzcDtcbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3JlZ2VuZXJhdGVUaXRsZX1cbiAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJ25vbmUnLFxuICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICAgICAgICAgICAgYm9yZGVyOiAnbm9uZScsXG4gICAgICAgICAgICAgICAgICBjb2xvcjogJ2N1cnJlbnRjb2xvcicsXG4gICAgICAgICAgICAgICAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAsXG4gICAgICAgICAgICAgICAgICB0ZXh0RGVjb3JhdGlvbjogJ3VuZGVybGluZScsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt0KCdwbHVnaW4tc2VvOmF1dG9HZW5lcmF0ZScpfVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgY29sb3I6ICcjOUE5QTlBJyxcbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAge3QoJ3BsdWdpbi1zZW86bGVuZ3RoVGlwVGl0bGUnLCB7IG1heExlbmd0aCwgbWluTGVuZ3RoIH0pfVxuICAgICAgICAgIDxhXG4gICAgICAgICAgICBocmVmPVwiaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vc2VhcmNoL2RvY3MvYWR2YW5jZWQvYXBwZWFyYW5jZS90aXRsZS1saW5rI3BhZ2UtdGl0bGVzXCJcbiAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7dCgncGx1Z2luLXNlbzpiZXN0UHJhY3RpY2VzJyl9XG4gICAgICAgICAgPC9hPlxuICAgICAgICAgIC5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBtYXJnaW5Cb3R0b206ICcxMHB4JyxcbiAgICAgICAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPFRleHRJbnB1dFxuICAgICAgICAgIEVycm9yPXtlcnJvck1lc3NhZ2V9IC8vIFRPRE86IGZpeCBlcnJvcm1lc3NhZ2VcbiAgICAgICAgICBvbkNoYW5nZT17c2V0VmFsdWV9XG4gICAgICAgICAgcGF0aD17cGF0aEZyb21Db250ZXh0fVxuICAgICAgICAgIHJlcXVpcmVkPXtyZXF1aXJlZH1cbiAgICAgICAgICBzaG93RXJyb3I9e3Nob3dFcnJvcn1cbiAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgbWFyZ2luQm90dG9tOiAwLFxuICAgICAgICAgIH19XG4gICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxMZW5ndGhJbmRpY2F0b3IgbWF4TGVuZ3RoPXttYXhMZW5ndGh9IG1pbkxlbmd0aD17bWluTGVuZ3RofSB0ZXh0PXt2YWx1ZX0gLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApXG59XG4iXSwibmFtZXMiOlsidXNlRmllbGRQYXRoIiwiVGV4dElucHV0IiwidXNlQWxsRm9ybUZpZWxkcyIsInVzZURvY3VtZW50SW5mbyIsInVzZUZpZWxkIiwidXNlTG9jYWxlIiwidXNlVHJhbnNsYXRpb24iLCJSZWFjdCIsInVzZUNhbGxiYWNrIiwiZGVmYXVsdHMiLCJMZW5ndGhJbmRpY2F0b3IiLCJtYXhMZW5ndGgiLCJtaW5MZW5ndGgiLCJ0aXRsZSIsIk1ldGFUaXRsZSIsInByb3BzIiwiTGFiZWwiLCJoYXNHZW5lcmF0ZVRpdGxlRm4iLCJwYXRoIiwicmVxdWlyZWQiLCJwYXRoRnJvbUNvbnRleHQiLCJzY2hlbWFQYXRoIiwidCIsImZpZWxkIiwibG9jYWxlIiwiZmllbGRzIiwiZG9jSW5mbyIsImVycm9yTWVzc2FnZSIsInNldFZhbHVlIiwic2hvd0Vycm9yIiwidmFsdWUiLCJyZWdlbmVyYXRlVGl0bGUiLCJnZW5UaXRsZVJlc3BvbnNlIiwiZmV0Y2giLCJib2R5IiwiSlNPTiIsInN0cmluZ2lmeSIsImRvYyIsImNvZGUiLCJjcmVkZW50aWFscyIsImhlYWRlcnMiLCJtZXRob2QiLCJyZXN1bHQiLCJnZW5lcmF0ZWRUaXRsZSIsImpzb24iLCJkaXYiLCJzdHlsZSIsIm1hcmdpbkJvdHRvbSIsInBvc2l0aW9uIiwiY2xhc3NOYW1lIiwic3BhbiIsImNvbG9yIiwibWFyZ2luTGVmdCIsIkZyYWdtZW50IiwiYnV0dG9uIiwib25DbGljayIsImJhY2tncm91bmQiLCJiYWNrZ3JvdW5kQ29sb3IiLCJib3JkZXIiLCJjdXJzb3IiLCJwYWRkaW5nIiwidGV4dERlY29yYXRpb24iLCJ0eXBlIiwiYSIsImhyZWYiLCJyZWwiLCJ0YXJnZXQiLCJFcnJvciIsIm9uQ2hhbmdlIiwiYWxpZ25JdGVtcyIsImRpc3BsYXkiLCJ3aWR0aCIsInRleHQiXSwibWFwcGluZ3MiOiJBQUFBO0FBSUEsU0FBU0EsWUFBWSxRQUFRLGlCQUFnQjtBQUM3QyxTQUNFQyxTQUFTLEVBQ1RDLGdCQUFnQixFQUNoQkMsZUFBZSxFQUNmQyxRQUFRLEVBQ1JDLFNBQVMsRUFDVEMsY0FBYyxRQUNULGlCQUFnQjtBQUN2QixPQUFPQyxTQUFTQyxXQUFXLFFBQVEsUUFBTztBQUkxQyxTQUFTQyxRQUFRLFFBQVEsY0FBYTtBQUN0QyxTQUFTQyxlQUFlLFFBQVEsd0JBQXVCO0FBQ3ZELE9BQU8sZUFBYztBQUVyQixNQUFNLEVBQUVDLFNBQVMsRUFBRUMsU0FBUyxFQUFFLEdBQUdILFNBQVNJLEtB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
@@ -0,0 +1,5 @@
1
+ .plugin-seo__field {
2
+ .field-label {
3
+ display: inline;
4
+ }
5
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAK5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAS3C,QAAA,MAAM,GAAG,iBACQ,YAAY,cAClB,MAAM,KAAG,MA8LjB,CAAA;AAEH,eAAe,GAAG,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAM5C,OAAO,KAAK,EAKV,YAAY,EACb,MAAM,SAAS,CAAA;AAShB,QAAA,MAAM,GAAG,iBACQ,YAAY,cAClB,MAAM,KAAG,MA6PjB,CAAA;AAEH,eAAe,GAAG,CAAA"}
package/dist/index.js CHANGED
@@ -1,25 +1,11 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return _default;
9
- }
10
- });
11
- const _utilities = require("payload/utilities");
12
- const _MetaDescription = require("./fields/MetaDescription");
13
- const _MetaImage = require("./fields/MetaImage");
14
- const _MetaTitle = require("./fields/MetaTitle");
15
- const _translations = /*#__PURE__*/ _interop_require_default(require("./translations"));
16
- const _Overview = require("./ui/Overview");
17
- const _Preview = require("./ui/Preview");
18
- function _interop_require_default(obj) {
19
- return obj && obj.__esModule ? obj : {
20
- default: obj
21
- };
22
- }
1
+ import { deepMerge } from 'payload/utilities';
2
+ import React from 'react';
3
+ import { MetaDescription } from './fields/MetaDescription';
4
+ import { MetaImage } from './fields/MetaImage';
5
+ import { MetaTitle } from './fields/MetaTitle';
6
+ import translations from './translations';
7
+ import { Overview } from './ui/Overview';
8
+ import { Preview } from './ui/Preview';
23
9
  const seo = (pluginConfig)=>(config)=>{
24
10
  const seoFields = [
25
11
  {
@@ -31,20 +17,19 @@ const seo = (pluginConfig)=>(config)=>{
31
17
  type: 'ui',
32
18
  admin: {
33
19
  components: {
34
- Field: _Overview.Overview
20
+ Field: Overview
35
21
  }
36
22
  },
37
23
  label: 'Overview'
38
24
  },
39
- // @ts-expect-error
40
25
  {
41
26
  name: 'title',
42
27
  type: 'text',
43
28
  admin: {
44
29
  components: {
45
- Field: (props)=>(0, _MetaTitle.getMetaTitleField)({
30
+ Field: (props)=>/*#__PURE__*/ React.createElement(MetaTitle, {
46
31
  ...props,
47
- pluginConfig
32
+ hasGenerateTitleFn: typeof pluginConfig.generateTitle === 'function'
48
33
  })
49
34
  }
50
35
  },
@@ -56,9 +41,9 @@ const seo = (pluginConfig)=>(config)=>{
56
41
  type: 'textarea',
57
42
  admin: {
58
43
  components: {
59
- Field: (props)=>(0, _MetaDescription.getMetaDescriptionField)({
44
+ Field: (props)=>/*#__PURE__*/ React.createElement(MetaDescription, {
60
45
  ...props,
61
- pluginConfig
46
+ hasGenerateDescriptionFn: typeof pluginConfig.generateDescription === 'function'
62
47
  })
63
48
  }
64
49
  },
@@ -72,9 +57,9 @@ const seo = (pluginConfig)=>(config)=>{
72
57
  type: 'upload',
73
58
  admin: {
74
59
  components: {
75
- Field: (props)=>(0, _MetaImage.getMetaImageField)({
60
+ Field: (props)=>/*#__PURE__*/ React.createElement(MetaImage, {
76
61
  ...props,
77
- pluginConfig
62
+ hasGenerateImageFn: typeof pluginConfig.generateImage === 'function'
78
63
  })
79
64
  },
80
65
  description: 'Maximum upload file size: 12MB. Recommended file size for images is <500KB.'
@@ -91,9 +76,9 @@ const seo = (pluginConfig)=>(config)=>{
91
76
  type: 'ui',
92
77
  admin: {
93
78
  components: {
94
- Field: (props)=>(0, _Preview.getPreviewField)({
79
+ Field: (props)=>/*#__PURE__*/ React.createElement(Preview, {
95
80
  ...props,
96
- pluginConfig
81
+ hasGenerateURLFn: typeof pluginConfig.generateURL === 'function'
97
82
  })
98
83
  }
99
84
  },
@@ -155,6 +140,58 @@ const seo = (pluginConfig)=>(config)=>{
155
140
  }
156
141
  return collection;
157
142
  }) || [],
143
+ endpoints: [
144
+ {
145
+ handler: async (req)=>{
146
+ const args = req.data;
147
+ const result = await pluginConfig.generateTitle(args);
148
+ return new Response(JSON.stringify({
149
+ result
150
+ }), {
151
+ status: 200
152
+ });
153
+ },
154
+ method: 'post',
155
+ path: '/plugin-seo/generate-title'
156
+ },
157
+ {
158
+ handler: async (req)=>{
159
+ const args = req.data;
160
+ const result = await pluginConfig.generateDescription(args);
161
+ return new Response(JSON.stringify({
162
+ result
163
+ }), {
164
+ status: 200
165
+ });
166
+ },
167
+ method: 'post',
168
+ path: '/plugin-seo/generate-description'
169
+ },
170
+ {
171
+ handler: async (req)=>{
172
+ const args = req.data;
173
+ const result = await pluginConfig.generateURL(args);
174
+ return new Response(JSON.stringify({
175
+ result
176
+ }), {
177
+ status: 200
178
+ });
179
+ },
180
+ method: 'post',
181
+ path: '/plugin-seo/generate-url'
182
+ },
183
+ {
184
+ handler: async (req)=>{
185
+ const args = req.data;
186
+ const result = await pluginConfig.generateImage(args);
187
+ return new Response(result, {
188
+ status: 200
189
+ });
190
+ },
191
+ method: 'post',
192
+ path: '/plugin-seo/generate-image'
193
+ }
194
+ ],
158
195
  globals: config.globals?.map((global)=>{
159
196
  const { slug } = global;
160
197
  const isEnabled = pluginConfig?.globals?.includes(slug);
@@ -201,12 +238,12 @@ const seo = (pluginConfig)=>(config)=>{
201
238
  }) || [],
202
239
  i18n: {
203
240
  ...config.i18n,
204
- resources: {
205
- ...(0, _utilities.deepMerge)(_translations.default, config.i18n?.resources)
241
+ translations: {
242
+ ...deepMerge(translations, config.i18n?.translations)
206
243
  }
207
244
  }
208
245
  };
209
246
  };
210
- const _default = seo;
247
+ export default seo;
211
248
 
212
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENvbmZpZyB9IGZyb20gJ3BheWxvYWQvY29uZmlnJ1xuaW1wb3J0IHR5cGUgeyBGaWVsZCwgR3JvdXBGaWVsZCwgVGFic0ZpZWxkIH0gZnJvbSAncGF5bG9hZC9kaXN0L2ZpZWxkcy9jb25maWcvdHlwZXMnXG5cbmltcG9ydCB7IGRlZXBNZXJnZSB9IGZyb20gJ3BheWxvYWQvdXRpbGl0aWVzJ1xuXG5pbXBvcnQgdHlwZSB7IFBsdWdpbkNvbmZpZyB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCB7IGdldE1ldGFEZXNjcmlwdGlvbkZpZWxkIH0gZnJvbSAnLi9maWVsZHMvTWV0YURlc2NyaXB0aW9uJ1xuaW1wb3J0IHsgZ2V0TWV0YUltYWdlRmllbGQgfSBmcm9tICcuL2ZpZWxkcy9NZXRhSW1hZ2UnXG5pbXBvcnQgeyBnZXRNZXRhVGl0bGVGaWVsZCB9IGZyb20gJy4vZmllbGRzL01ldGFUaXRsZSdcbmltcG9ydCB0cmFuc2xhdGlvbnMgZnJvbSAnLi90cmFuc2xhdGlvbnMnXG5pbXBvcnQgeyBPdmVydmlldyB9IGZyb20gJy4vdWkvT3ZlcnZpZXcnXG5pbXBvcnQgeyBnZXRQcmV2aWV3RmllbGQgfSBmcm9tICcuL3VpL1ByZXZpZXcnXG5cbmNvbnN0IHNlbyA9XG4gIChwbHVnaW5Db25maWc6IFBsdWdpbkNvbmZpZykgPT5cbiAgKGNvbmZpZzogQ29uZmlnKTogQ29uZmlnID0+IHtcbiAgICBjb25zdCBzZW9GaWVsZHM6IEdyb3VwRmllbGRbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ21ldGEnLFxuICAgICAgICB0eXBlOiAnZ3JvdXAnLFxuICAgICAgICBmaWVsZHM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnb3ZlcnZpZXcnLFxuICAgICAgICAgICAgdHlwZTogJ3VpJyxcbiAgICAgICAgICAgIGFkbWluOiB7XG4gICAgICAgICAgICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgICAgICAgICBGaWVsZDogT3ZlcnZpZXcsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFiZWw6ICdPdmVydmlldycsXG4gICAgICAgICAgfSxcbiAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ3RpdGxlJyxcbiAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgIGFkbWluOiB7XG4gICAgICAgICAgICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgICAgICAgICBGaWVsZDogKHByb3BzKSA9PiBnZXRNZXRhVGl0bGVGaWVsZCh7IC4uLnByb3BzLCBwbHVnaW5Db25maWcgfSksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbG9jYWxpemVkOiB0cnVlLFxuICAgICAgICAgICAgLi4uKHBsdWdpbkNvbmZpZz8uZmllbGRPdmVycmlkZXM/LnRpdGxlID8/IHt9KSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdkZXNjcmlwdGlvbicsXG4gICAgICAgICAgICB0eXBlOiAndGV4dGFyZWEnLFxuICAgICAgICAgICAgYWRtaW46IHtcbiAgICAgICAgICAgICAgY29tcG9uZW50czoge1xuICAgICAgICAgICAgICAgIEZpZWxkOiAocHJvcHMpID0+IGdldE1ldGFEZXNjcmlwdGlvbkZpZWxkKHsgLi4ucHJvcHMsIHBsdWdpbkNvbmZpZyB9KSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsb2NhbGl6ZWQ6IHRydWUsXG4gICAgICAgICAgICAuLi4ocGx1Z2luQ29uZmlnPy5maWVsZE92ZXJyaWRlcz8uZGVzY3JpcHRpb24gPz8ge30pLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgLi4uKHBsdWdpbkNvbmZpZz8udXBsb2Fkc0NvbGxlY3Rpb25cbiAgICAgICAgICAgID8gW1xuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvY29uc2lzdGVudC10eXBlLWFzc2VydGlvbnNcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBuYW1lOiAnaW1hZ2UnLFxuICAgICAgICAgICAgICAgICAgdHlwZTogJ3VwbG9hZCcsXG4gICAgICAgICAgICAgICAgICBhZG1pbjoge1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgRmllbGQ6IChwcm9wcykgPT4gZ2V0TWV0YUltYWdlRmllbGQoeyAuLi5wcm9wcywgcGx1Z2luQ29uZmlnIH0pLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICAgICAgICAgICAgICAnTWF4aW11bSB1cGxvYWQgZmlsZSBzaXplOiAxMk1CLiBSZWNvbW1lbmRlZCBmaWxlIHNpemUgZm9yIGltYWdlcyBpcyA8NTAwS0IuJyxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBsYWJlbDogJ01ldGEgSW1hZ2UnLFxuICAgICAgICAgICAgICAgICAgbG9jYWxpemVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgcmVsYXRpb25UbzogcGx1Z2luQ29uZmlnPy51cGxvYWRzQ29sbGVjdGlvbixcbiAgICAgICAgICAgICAgICAgIC4uLihwbHVnaW5Db25maWc/LmZpZWxkT3ZlcnJpZGVzPy5pbWFnZSA/PyB7fSksXG4gICAgICAgICAgICAgICAgfSBhcyBGaWVsZCxcbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgOiBbXSksXG4gICAgICAgICAgLi4uKHBsdWdpbkNvbmZpZz8uZmllbGRzIHx8IFtdKSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAncHJldmlldycsXG4gICAgICAgICAgICB0eXBlOiAndWknLFxuICAgICAgICAgICAgYWRtaW46IHtcbiAgICAgICAgICAgICAgY29tcG9uZW50czoge1xuICAgICAgICAgICAgICAgIEZpZWxkOiAocHJvcHMpID0+IGdldFByZXZpZXdGaWVsZCh7IC4uLnByb3BzLCBwbHVnaW5Db25maWcgfSksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFiZWw6ICdQcmV2aWV3JyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBpbnRlcmZhY2VOYW1lOiBwbHVnaW5Db25maWcuaW50ZXJmYWNlTmFtZSxcbiAgICAgICAgbGFiZWw6ICdTRU8nLFxuICAgICAgfSxcbiAgICBdXG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uY29uZmlnLFxuICAgICAgY29sbGVjdGlvbnM6XG4gICAgICAgIGNvbmZpZy5jb2xsZWN0aW9ucz8ubWFwKChjb2xsZWN0aW9uKSA9PiB7XG4gICAgICAgICAgY29uc3QgeyBzbHVnIH0gPSBjb2xsZWN0aW9uXG4gICAgICAgICAgY29uc3QgaXNFbmFibGVkID0gcGx1Z2luQ29uZmlnPy5jb2xsZWN0aW9ucz8uaW5jbHVkZXMoc2x1ZylcblxuICAgICAgICAgIGlmIChpc0VuYWJsZWQpIHtcbiAgICAgICAgICAgIGlmIChwbHVnaW5Db25maWc/LnRhYmJlZFVJKSB7XG4gICAgICAgICAgICAgIC8vIHByZXZlbnQgaXNzdWVzIHdpdGggYXV0aCBlbmFibGVkIGNvbGxlY3Rpb25zIGhhdmluZyBhbiBlbWFpbCBmaWVsZCB0aGF0IHNob3VsZG4ndCBiZSBtb3ZlZCB0byB0aGUgU0VPIHRhYlxuICAgICAgICAgICAgICBjb25zdCBlbWFpbEZpZWxkID1cbiAgICAgICAgICAgICAgICAoY29sbGVjdGlvbi5hdXRoIHx8XG4gICAgICAgICAgICAgICAgICAhKHR5cGVvZiBjb2xsZWN0aW9uLmF1dGggPT09ICdvYmplY3QnICYmIGNvbGxlY3Rpb24uYXV0aC5kaXNhYmxlTG9jYWxTdHJhdGVneSkpICYmXG4gICAgICAgICAgICAgICAgY29sbGVjdGlvbi5maWVsZHM/LmZpbmQoKGZpZWxkKSA9PiAnbmFtZScgaW4gZmllbGQgJiYgZmllbGQubmFtZSA9PT0gJ2VtYWlsJylcblxuICAgICAgICAgICAgICBjb25zdCBzZW9UYWJzOiBUYWJzRmllbGRbXSA9IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICB0eXBlOiAndGFicycsXG4gICAgICAgICAgICAgICAgICB0YWJzOiBbXG4gICAgICAgICAgICAgICAgICAgIC8vIGFwcGVuZCBhIG5ldyB0YWIgb250byB0aGUgZW5kIG9mIHRoZSB0YWJzIGFycmF5LCBpZiB0aGVyZSBpcyBvbmUgYXQgdGhlIGZpcnN0IGluZGV4XG4gICAgICAgICAgICAgICAgICAgIC8vIGlmIG5lZWRlZCwgY3JlYXRlIGEgbmV3IGBDb250ZW50YCB0YWIgaW4gdGhlIGZpcnN0IGluZGV4IGZvciB0aGlzIGNvbGxlY3Rpb24ncyBiYXNlIGZpZWxkc1xuICAgICAgICAgICAgICAgICAgICAuLi4oY29sbGVjdGlvbj8uZmllbGRzPy5bMF0/LnR5cGUgPT09ICd0YWJzJ1xuICAgICAgICAgICAgICAgICAgICAgID8gY29sbGVjdGlvbi5maWVsZHNbMF0/LnRhYnNcbiAgICAgICAgICAgICAgICAgICAgICA6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKChlbWFpbEZpZWxkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gY29sbGVjdGlvbi5maWVsZHMuZmlsdGVyKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZpZWxkKSA9PiAnbmFtZScgaW4gZmllbGQgJiYgZmllbGQubmFtZSAhPT0gJ2VtYWlsJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogY29sbGVjdGlvbi5maWVsZHMpIHx8IFtdKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBjb2xsZWN0aW9uPy5sYWJlbHM/LnNpbmd1bGFyIHx8ICdDb250ZW50JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgZmllbGRzOiBzZW9GaWVsZHMsXG4gICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdTRU8nLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBdXG5cbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5jb2xsZWN0aW9uLFxuICAgICAgICAgICAgICAgIGZpZWxkczogW1xuICAgICAgICAgICAgICAgICAgLi4uKGVtYWlsRmllbGQgPyBbZW1haWxGaWVsZF0gOiBbXSksXG4gICAgICAgICAgICAgICAgICAuLi5zZW9UYWJzLFxuICAgICAgICAgICAgICAgICAgLi4uKGNvbGxlY3Rpb24/LmZpZWxkcz8uWzBdPy50eXBlID09PSAndGFicycgPyBjb2xsZWN0aW9uLmZpZWxkcy5zbGljZSgxKSA6IFtdKSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIC4uLmNvbGxlY3Rpb24sXG4gICAgICAgICAgICAgIGZpZWxkczogWy4uLihjb2xsZWN0aW9uPy5maWVsZHMgfHwgW10pLCAuLi5zZW9GaWVsZHNdLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBjb2xsZWN0aW9uXG4gICAgICAgIH0pIHx8IFtdLFxuICAgICAgZ2xvYmFsczpcbiAgICAgICAgY29uZmlnLmdsb2JhbHM/Lm1hcCgoZ2xvYmFsKSA9PiB7XG4gICAgICAgICAgY29uc3QgeyBzbHVnIH0gPSBnbG9iYWxcbiAgICAgICAgICBjb25zdCBpc0VuYWJsZWQgPSBwbHVnaW5Db25maWc/Lmdsb2JhbHM/LmluY2x1ZGVzKHNsdWcpXG5cbiAgICAgICAgICBpZiAoaXNFbmFibGVkKSB7XG4gICAgICAgICAgICBpZiAocGx1Z2luQ29uZmlnPy50YWJiZWRVSSkge1xuICAgICAgICAgICAgICBjb25zdCBzZW9UYWJzOiBUYWJzRmllbGRbXSA9IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICB0eXBlOiAndGFicycsXG4gICAgICAgICAgICAgICAgICB0YWJzOiBbXG4gICAgICAgICAgICAgICAgICAgIC8vIGFwcGVuZCBhIG5ldyB0YWIgb250byB0aGUgZW5kIG9mIHRoZSB0YWJzIGFycmF5LCBpZiB0aGVyZSBpcyBvbmUgYXQgdGhlIGZpcnN0IGluZGV4XG4gICAgICAgICAgICAgICAgICAgIC8vIGlmIG5lZWRlZCwgY3JlYXRlIGEgbmV3IGBDb250ZW50YCB0YWIgaW4gdGhlIGZpcnN0IGluZGV4IGZvciB0aGlzIGdsb2JhbCdzIGJhc2UgZmllbGRzXG4gICAgICAgICAgICAgICAgICAgIC4uLihnbG9iYWw/LmZpZWxkcz8uWzBdLnR5cGUgPT09ICd0YWJzJ1xuICAgICAgICAgICAgICAgICAgICAgID8gZ2xvYmFsLmZpZWxkc1swXT8udGFic1xuICAgICAgICAgICAgICAgICAgICAgIDogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRzOiBbLi4uKGdsb2JhbD8uZmllbGRzIHx8IFtdKV0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGdsb2JhbD8ubGFiZWwgfHwgJ0NvbnRlbnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICBmaWVsZHM6IHNlb0ZpZWxkcyxcbiAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ1NFTycsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIF1cblxuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLmdsb2JhbCxcbiAgICAgICAgICAgICAgICBmaWVsZHM6IFtcbiAgICAgICAgICAgICAgICAgIC4uLnNlb1RhYnMsXG4gICAgICAgICAgICAgICAgICAuLi4oZ2xvYmFsPy5maWVsZHM/LlswXS50eXBlID09PSAndGFicycgPyBnbG9iYWw/LmZpZWxkcz8uc2xpY2UoMSkgOiBbXSksXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAuLi5nbG9iYWwsXG4gICAgICAgICAgICAgIGZpZWxkczogWy4uLihnbG9iYWw/LmZpZWxkcyB8fCBbXSksIC4uLnNlb0ZpZWxkc10sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIGdsb2JhbFxuICAgICAgICB9KSB8fCBbXSxcbiAgICAgIGkxOG46IHtcbiAgICAgICAgLi4uY29uZmlnLmkxOG4sXG4gICAgICAgIHJlc291cmNlczoge1xuICAgICAgICAgIC4uLmRlZXBNZXJnZSh0cmFuc2xhdGlvbnMsIGNvbmZpZy5pMThuPy5yZXNvdXJjZXMpLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9XG4gIH1cblxuZXhwb3J0IGRlZmF1bHQgc2VvXG4iXSwibmFtZXMiOlsic2VvIiwicGx1Z2luQ29uZmlnIiwiY29uZmlnIiwic2VvRmllbGRzIiwibmFtZSIsInR5cGUiLCJmaWVsZHMiLCJhZG1pbiIsImNvbXBvbmVudHMiLCJGaWVsZCIsIk92ZXJ2aWV3IiwibGFiZWwiLCJwcm9wcyIsImdldE1ldGFUaXRsZUZpZWxkIiwibG9jYWxpemVkIiwiZmllbGRPdmVycmlkZXMiLCJ0aXRsZSIsImdldE1ldGFEZXNjcmlwdGlvbkZpZWxkIiwiZGVzY3JpcHRpb24iLCJ1cGxvYWRzQ29sbGVjdGlvbiIsImdldE1ldGFJbWFnZUZpZWxkIiwicmVsYXRpb25UbyIsImltYWdlIiwiZ2V0UHJldmlld0ZpZWxkIiwiaW50ZXJmYWNlTmFtZSIsImNvbGxlY3Rpb25zIiwibWFwIiwiY29sbGVjdGlvbiIsInNsdWciLCJpc0VuYWJsZWQiLCJpbmNsdWRlcyIsInRhYmJlZFVJIiwiZW1haWxGaWVsZCIsImF1dGgiLCJkaXNhYmxlTG9jYWxTdHJhdGVneSIsImZpbmQiLCJmaWVsZCIsInNlb1RhYnMiLCJ0YWJzIiwiZmlsdGVyIiwibGFiZWxzIiwic2luZ3VsYXIiLCJzbGljZSIsImdsb2JhbHMiLCJnbG9iYWwiLCJpMThuIiwicmVzb3VyY2VzIiwiZGVlcE1lcmdlIiwidHJhbnNsYXRpb25zIl0sIm1hcHBpbmdzIjoiOzs7OytCQWdOQTs7O2VBQUE7OzsyQkE3TTBCO2lDQUljOzJCQUNOOzJCQUNBO3FFQUNUOzBCQUNBO3lCQUNPOzs7Ozs7QUFFaEMsTUFBTUEsTUFDSixDQUFDQyxlQUNELENBQUNDO1FBQ0MsTUFBTUMsWUFBMEI7WUFDOUI7Z0JBQ0VDLE1BQU07Z0JBQ05DLE1BQU07Z0JBQ05DLFFBQVE7b0JBQ047d0JBQ0VGLE1BQU07d0JBQ05DLE1BQU07d0JBQ05FLE9BQU87NEJBQ0xDLFlBQVk7Z0NBQ1ZDLE9BQU9DLGtCQUFROzRCQUNqQjt3QkFDRjt3QkFDQUMsT0FBTztvQkFDVDtvQkFDQSxtQkFBbUI7b0JBQ25CO3dCQUNFUCxNQUFNO3dC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
249
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb25maWcgfSBmcm9tICdwYXlsb2FkL2NvbmZpZydcbmltcG9ydCB0eXBlIHsgRmllbGQsIEdyb3VwRmllbGQsIFRhYnNGaWVsZCwgVGV4dEZpZWxkIH0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IHsgZGVlcE1lcmdlIH0gZnJvbSAncGF5bG9hZC91dGlsaXRpZXMnXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5cbmltcG9ydCB0eXBlIHtcbiAgR2VuZXJhdGVEZXNjcmlwdGlvbixcbiAgR2VuZXJhdGVJbWFnZSxcbiAgR2VuZXJhdGVUaXRsZSxcbiAgR2VuZXJhdGVVUkwsXG4gIFBsdWdpbkNvbmZpZyxcbn0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgTWV0YURlc2NyaXB0aW9uIH0gZnJvbSAnLi9maWVsZHMvTWV0YURlc2NyaXB0aW9uJ1xuaW1wb3J0IHsgTWV0YUltYWdlIH0gZnJvbSAnLi9maWVsZHMvTWV0YUltYWdlJ1xuaW1wb3J0IHsgTWV0YVRpdGxlIH0gZnJvbSAnLi9maWVsZHMvTWV0YVRpdGxlJ1xuaW1wb3J0IHRyYW5zbGF0aW9ucyBmcm9tICcuL3RyYW5zbGF0aW9ucydcbmltcG9ydCB7IE92ZXJ2aWV3IH0gZnJvbSAnLi91aS9PdmVydmlldydcbmltcG9ydCB7IFByZXZpZXcgfSBmcm9tICcuL3VpL1ByZXZpZXcnXG5cbmNvbnN0IHNlbyA9XG4gIChwbHVnaW5Db25maWc6IFBsdWdpbkNvbmZpZykgPT5cbiAgKGNvbmZpZzogQ29uZmlnKTogQ29uZmlnID0+IHtcbiAgICBjb25zdCBzZW9GaWVsZHM6IEdyb3VwRmllbGRbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ21ldGEnLFxuICAgICAgICB0eXBlOiAnZ3JvdXAnLFxuICAgICAgICBmaWVsZHM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnb3ZlcnZpZXcnLFxuICAgICAgICAgICAgdHlwZTogJ3VpJyxcbiAgICAgICAgICAgIGFkbWluOiB7XG4gICAgICAgICAgICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgICAgICAgICBGaWVsZDogT3ZlcnZpZXcsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFiZWw6ICdPdmVydmlldycsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAndGl0bGUnLFxuICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgYWRtaW46IHtcbiAgICAgICAgICAgICAgY29tcG9uZW50czoge1xuICAgICAgICAgICAgICAgIEZpZWxkOiAocHJvcHMpID0+IChcbiAgICAgICAgICAgICAgICAgIDxNZXRhVGl0bGVcbiAgICAgICAgICAgICAgICAgICAgey4uLnByb3BzfVxuICAgICAgICAgICAgICAgICAgICBoYXNHZW5lcmF0ZVRpdGxlRm49e3R5cGVvZiBwbHVnaW5Db25maWcuZ2VuZXJhdGVUaXRsZSA9PT0gJ2Z1bmN0aW9uJ31cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsb2NhbGl6ZWQ6IHRydWUsXG4gICAgICAgICAgICAuLi4oKHBsdWdpbkNvbmZpZz8uZmllbGRPdmVycmlkZXM/LnRpdGxlIGFzIHVua25vd24gYXMgVGV4dEZpZWxkKSA/PyB7fSksXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnZGVzY3JpcHRpb24nLFxuICAgICAgICAgICAgdHlwZTogJ3RleHRhcmVhJyxcbiAgICAgICAgICAgIGFkbWluOiB7XG4gICAgICAgICAgICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgICAgICAgICBGaWVsZDogKHByb3BzKSA9PiAoXG4gICAgICAgICAgICAgICAgICA8TWV0YURlc2NyaXB0aW9uXG4gICAgICAgICAgICAgICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgICAgICAgICAgICAgaGFzR2VuZXJhdGVEZXNjcmlwdGlvbkZuPXtcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlb2YgcGx1Z2luQ29uZmlnLmdlbmVyYXRlRGVzY3JpcHRpb24gPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxvY2FsaXplZDogdHJ1ZSxcbiAgICAgICAgICAgIC4uLihwbHVnaW5Db25maWc/LmZpZWxkT3ZlcnJpZGVzPy5kZXNjcmlwdGlvbiA/PyB7fSksXG4gICAgICAgICAgfSxcbiAgICAgICAgICAuLi4ocGx1Z2luQ29uZmlnPy51cGxvYWRzQ29sbGVjdGlvblxuICAgICAgICAgICAgPyBbXG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9jb25zaXN0ZW50LXR5cGUtYXNzZXJ0aW9uc1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIG5hbWU6ICdpbWFnZScsXG4gICAgICAgICAgICAgICAgICB0eXBlOiAndXBsb2FkJyxcbiAgICAgICAgICAgICAgICAgIGFkbWluOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgICAgICAgICAgICAgICBGaWVsZDogKHByb3BzKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8TWV0YUltYWdlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzR2VuZXJhdGVJbWFnZUZuPXt0eXBlb2YgcGx1Z2luQ29uZmlnLmdlbmVyYXRlSW1hZ2UgPT09ICdmdW5jdGlvbid9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgICAgICAgICAgICdNYXhpbXVtIHVwbG9hZCBmaWxlIHNpemU6IDEyTUIuIFJlY29tbWVuZGVkIGZpbGUgc2l6ZSBmb3IgaW1hZ2VzIGlzIDw1MDBLQi4nLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiAnTWV0YSBJbWFnZScsXG4gICAgICAgICAgICAgICAgICBsb2NhbGl6ZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICByZWxhdGlvblRvOiBwbHVnaW5Db25maWc/LnVwbG9hZHNDb2xsZWN0aW9uLFxuICAgICAgICAgICAgICAgICAgLi4uKHBsdWdpbkNvbmZpZz8uZmllbGRPdmVycmlkZXM/LmltYWdlID8/IHt9KSxcbiAgICAgICAgICAgICAgICB9IGFzIEZpZWxkLFxuICAgICAgICAgICAgICBdXG4gICAgICAgICAgICA6IFtdKSxcbiAgICAgICAgICAuLi4ocGx1Z2luQ29uZmlnPy5maWVsZHMgfHwgW10pLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdwcmV2aWV3JyxcbiAgICAgICAgICAgIHR5cGU6ICd1aScsXG4gICAgICAgICAgICBhZG1pbjoge1xuICAgICAgICAgICAgICBjb21wb25lbnRzOiB7XG4gICAgICAgICAgICAgICAgRmllbGQ6IChwcm9wcykgPT4gKFxuICAgICAgICAgICAgICAgICAgPFByZXZpZXdcbiAgICAgICAgICAgICAgICAgICAgey4uLnByb3BzfVxuICAgICAgICAgICAgICAgICAgICBoYXNHZW5lcmF0ZVVSTEZuPXt0eXBlb2YgcGx1Z2luQ29uZmlnLmdlbmVyYXRlVVJMID09PSAnZnVuY3Rpb24nfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhYmVsOiAnUHJldmlldycsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgaW50ZXJmYWNlTmFtZTogcGx1Z2luQ29uZmlnLmludGVyZmFjZU5hbWUsXG4gICAgICAgIGxhYmVsOiAnU0VPJyxcbiAgICAgIH0sXG4gICAgXVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmNvbmZpZyxcbiAgICAgIGNvbGxlY3Rpb25zOlxuICAgICAgICBjb25maWcuY29sbGVjdGlvbnM/Lm1hcCgoY29sbGVjdGlvbikgPT4ge1xuICAgICAgICAgIGNvbnN0IHsgc2x1ZyB9ID0gY29sbGVjdGlvblxuICAgICAgICAgIGNvbnN0IGlzRW5hYmxlZCA9IHBsdWdpbkNvbmZpZz8uY29sbGVjdGlvbnM/LmluY2x1ZGVzKHNsdWcpXG5cbiAgICAgICAgICBpZiAoaXNFbmFibGVkKSB7XG4gICAgICAgICAgICBpZiAocGx1Z2luQ29uZmlnPy50YWJiZWRVSSkge1xuICAgICAgICAgICAgICAvLyBwcmV2ZW50IGlzc3VlcyB3aXRoIGF1dGggZW5hYmxlZCBjb2xsZWN0aW9ucyBoYXZpbmcgYW4gZW1haWwgZmllbGQgdGhhdCBzaG91bGRuJ3QgYmUgbW92ZWQgdG8gdGhlIFNFTyB0YWJcbiAgICAgICAgICAgICAgY29uc3QgZW1haWxGaWVsZCA9XG4gICAgICAgICAgICAgICAgKGNvbGxlY3Rpb24uYXV0aCB8fFxuICAgICAgICAgICAgICAgICAgISh0eXBlb2YgY29sbGVjdGlvbi5hdXRoID09PSAnb2JqZWN0JyAmJiBjb2xsZWN0aW9uLmF1dGguZGlzYWJsZUxvY2FsU3RyYXRlZ3kpKSAmJlxuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb24uZmllbGRzPy5maW5kKChmaWVsZCkgPT4gJ25hbWUnIGluIGZpZWxkICYmIGZpZWxkLm5hbWUgPT09ICdlbWFpbCcpXG5cbiAgICAgICAgICAgICAgY29uc3Qgc2VvVGFiczogVGFic0ZpZWxkW10gPSBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgdHlwZTogJ3RhYnMnLFxuICAgICAgICAgICAgICAgICAgdGFiczogW1xuICAgICAgICAgICAgICAgICAgICAvLyBhcHBlbmQgYSBuZXcgdGFiIG9udG8gdGhlIGVuZCBvZiB0aGUgdGFicyBhcnJheSwgaWYgdGhlcmUgaXMgb25lIGF0IHRoZSBmaXJzdCBpbmRleFxuICAgICAgICAgICAgICAgICAgICAvLyBpZiBuZWVkZWQsIGNyZWF0ZSBhIG5ldyBgQ29udGVudGAgdGFiIGluIHRoZSBmaXJzdCBpbmRleCBmb3IgdGhpcyBjb2xsZWN0aW9uJ3MgYmFzZSBmaWVsZHNcbiAgICAgICAgICAgICAgICAgICAgLi4uKGNvbGxlY3Rpb24/LmZpZWxkcz8uWzBdPy50eXBlID09PSAndGFicydcbiAgICAgICAgICAgICAgICAgICAgICA/IGNvbGxlY3Rpb24uZmllbGRzWzBdPy50YWJzXG4gICAgICAgICAgICAgICAgICAgICAgOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZHM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLigoZW1haWxGaWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGNvbGxlY3Rpb24uZmllbGRzLmZpbHRlcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmaWVsZCkgPT4gJ25hbWUnIGluIGZpZWxkICYmIGZpZWxkLm5hbWUgIT09ICdlbWFpbCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGNvbGxlY3Rpb24uZmllbGRzKSB8fCBbXSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogY29sbGVjdGlvbj8ubGFiZWxzPy5zaW5ndWxhciB8fCAnQ29udGVudCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIGZpZWxkczogc2VvRmllbGRzLFxuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnU0VPJyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXVxuXG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4uY29sbGVjdGlvbixcbiAgICAgICAgICAgICAgICBmaWVsZHM6IFtcbiAgICAgICAgICAgICAgICAgIC4uLihlbWFpbEZpZWxkID8gW2VtYWlsRmllbGRdIDogW10pLFxuICAgICAgICAgICAgICAgICAgLi4uc2VvVGFicyxcbiAgICAgICAgICAgICAgICAgIC4uLihjb2xsZWN0aW9uPy5maWVsZHM/LlswXT8udHlwZSA9PT0gJ3RhYnMnID8gY29sbGVjdGlvbi5maWVsZHMuc2xpY2UoMSkgOiBbXSksXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAuLi5jb2xsZWN0aW9uLFxuICAgICAgICAgICAgICBmaWVsZHM6IFsuLi4oY29sbGVjdGlvbj8uZmllbGRzIHx8IFtdKSwgLi4uc2VvRmllbGRzXSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gY29sbGVjdGlvblxuICAgICAgICB9KSB8fCBbXSxcbiAgICAgIGVuZHBvaW50czogW1xuICAgICAgICB7XG4gICAgICAgICAgaGFuZGxlcjogYXN5bmMgKHJlcSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYXJnczogUGFyYW1ldGVyczxHZW5lcmF0ZVRpdGxlPlswXSA9XG4gICAgICAgICAgICAgIHJlcS5kYXRhIGFzIHVua25vd24gYXMgUGFyYW1ldGVyczxHZW5lcmF0ZVRpdGxlPlswXVxuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcGx1Z2luQ29uZmlnLmdlbmVyYXRlVGl0bGUoYXJncylcbiAgICAgICAgICAgIHJldHVybiBuZXcgUmVzcG9uc2UoSlNPTi5zdHJpbmdpZnkoeyByZXN1bHQgfSksIHsgc3RhdHVzOiAyMDAgfSlcbiAgICAgICAgICB9LFxuICAgICAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgICAgIHBhdGg6ICcvcGx1Z2luLXNlby9nZW5lcmF0ZS10aXRsZScsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBoYW5kbGVyOiBhc3luYyAocmVxKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBhcmdzOiBQYXJhbWV0ZXJzPEdlbmVyYXRlRGVzY3JpcHRpb24+WzBdID1cbiAgICAgICAgICAgICAgcmVxLmRhdGEgYXMgdW5rbm93biBhcyBQYXJhbWV0ZXJzPEdlbmVyYXRlRGVzY3JpcHRpb24+WzBdXG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwbHVnaW5Db25maWcuZ2VuZXJhdGVEZXNjcmlwdGlvbihhcmdzKVxuICAgICAgICAgICAgcmV0dXJuIG5ldyBSZXNwb25zZShKU09OLnN0cmluZ2lmeSh7IHJlc3VsdCB9KSwgeyBzdGF0dXM6IDIwMCB9KVxuICAgICAgICAgIH0sXG4gICAgICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICAgICAgcGF0aDogJy9wbHVnaW4tc2VvL2dlbmVyYXRlLWRlc2NyaXB0aW9uJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGhhbmRsZXI6IGFzeW5jIChyZXEpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFyZ3M6IFBhcmFtZXRlcnM8R2VuZXJhdGVVUkw+WzBdID1cbiAgICAgICAgICAgICAgcmVxLmRhdGEgYXMgdW5rbm93biBhcyBQYXJhbWV0ZXJzPEdlbmVyYXRlVVJMPlswXVxuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcGx1Z2luQ29uZmlnLmdlbmVyYXRlVVJMKGFyZ3MpXG4gICAgICAgICAgICByZXR1cm4gbmV3IFJlc3BvbnNlKEpTT04uc3RyaW5naWZ5KHsgcmVzdWx0IH0pLCB7IHN0YXR1czogMjAwIH0pXG4gICAgICAgICAgfSxcbiAgICAgICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgICAgICBwYXRoOiAnL3BsdWdpbi1zZW8vZ2VuZXJhdGUtdXJsJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGhhbmRsZXI6IGFzeW5jIChyZXEpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFyZ3M6IFBhcmFtZXRlcnM8R2VuZXJhdGVJbWFnZT5bMF0gPVxuICAgICAgICAgICAgICByZXEuZGF0YSBhcyB1bmtub3duIGFzIFBhcmFtZXRlcnM8R2VuZXJhdGVJbWFnZT5bMF1cbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHBsdWdpbkNvbmZpZy5nZW5lcmF0ZUltYWdlKGFyZ3MpXG4gICAgICAgICAgICByZXR1cm4gbmV3IFJlc3BvbnNlKHJlc3VsdCwgeyBzdGF0dXM6IDIwMCB9KVxuICAgICAgICAgIH0sXG4gICAgICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICAgICAgcGF0aDogJy9wbHVnaW4tc2VvL2dlbmVyYXRlLWltYWdlJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBnbG9iYWxzOlxuICAgICAgICBjb25maWcuZ2xvYmFscz8ubWFwKChnbG9iYWwpID0+IHtcbiAgICAgICAgICBjb25zdCB7IHNsdWcgfSA9IGdsb2JhbFxuICAgICAgICAgIGNvbnN0IGlzRW5hYmxlZCA9IHBsdWdpbkNvbmZpZz8uZ2xvYmFscz8uaW5jbHVkZXMoc2x1ZylcblxuICAgICAgICAgIGlmIChpc0VuYWJsZWQpIHtcbiAgICAgICAgICAgIGlmIChwbHVnaW5Db25maWc/LnRhYmJlZFVJKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHNlb1RhYnM6IFRhYnNGaWVsZFtdID0gW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIHR5cGU6ICd0YWJzJyxcbiAgICAgICAgICAgICAgICAgIHRhYnM6IFtcbiAgICAgICAgICAgICAgICAgICAgLy8gYXBwZW5kIGEgbmV3IHRhYiBvbnRvIHRoZSBlbmQgb2YgdGhlIHRhYnMgYXJyYXksIGlmIHRoZXJlIGlzIG9uZSBhdCB0aGUgZmlyc3QgaW5kZXhcbiAgICAgICAgICAgICAgICAgICAgLy8gaWYgbmVlZGVkLCBjcmVhdGUgYSBuZXcgYENvbnRlbnRgIHRhYiBpbiB0aGUgZmlyc3QgaW5kZXggZm9yIHRoaXMgZ2xvYmFsJ3MgYmFzZSBmaWVsZHNcbiAgICAgICAgICAgICAgICAgICAgLi4uKGdsb2JhbD8uZmllbGRzPy5bMF0udHlwZSA9PT0gJ3RhYnMnXG4gICAgICAgICAgICAgICAgICAgICAgPyBnbG9iYWwuZmllbGRzWzBdPy50YWJzXG4gICAgICAgICAgICAgICAgICAgICAgOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZHM6IFsuLi4oZ2xvYmFsPy5maWVsZHMgfHwgW10pXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogZ2xvYmFsPy5sYWJlbCB8fCAnQ29udGVudCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIGZpZWxkczogc2VvRmllbGRzLFxuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnU0VPJyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXVxuXG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4uZ2xvYmFsLFxuICAgICAgICAgICAgICAgIGZpZWxkczogW1xuICAgICAgICAgICAgICAgICAgLi4uc2VvVGFicyxcbiAgICAgICAgICAgICAgICAgIC4uLihnbG9iYWw/LmZpZWxkcz8uWzBdLnR5cGUgPT09ICd0YWJzJyA/IGdsb2JhbD8uZmllbGRzPy5zbGljZSgxKSA6IFtdKSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIC4uLmdsb2JhbCxcbiAgICAgICAgICAgICAgZmllbGRzOiBbLi4uKGdsb2JhbD8uZmllbGRzIHx8IFtdKSwgLi4uc2VvRmllbGRzXSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gZ2xvYmFsXG4gICAgICAgIH0pIHx8IFtdLFxuICAgICAgaTE4bjoge1xuICAgICAgICAuLi5jb25maWcuaTE4bixcbiAgICAgICAgdHJhbnNsYXRpb25zOiB7XG4gICAgICAgICAgLi4uZGVlcE1lcmdlKHRyYW5zbGF0aW9ucywgY29uZmlnLmkxOG4/LnRyYW5zbGF0aW9ucyksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH1cbiAgfVxuXG5leHBvcnQgZGVmYXVsdCBzZW9cbiJdLCJuYW1lcyI6WyJkZWVwTWVyZ2UiLCJSZWFjdCIsIk1ldGFEZXNjcmlwdGlvbiIsIk1ldGFJbWFnZSIsIk1ldGFUaXRsZSIsInRyYW5zbGF0aW9ucyIsIk92ZXJ2aWV3IiwiUHJldmlldyIsInNlbyIsInBsdWdpbkNvbmZpZyIsImNvbmZpZyIsInNlb0ZpZWxkcyIsIm5hbWUiLCJ0eXBlIiwiZmllbGRzIiwiYWRtaW4iLCJjb21wb25lbnRzIiwiRmllbGQiLCJsYWJlbCIsInByb3BzIiwiaGFzR2VuZXJhdGVUaXRsZUZuIiwiZ2VuZXJhdGVUaXRsZSIsImxvY2FsaXplZCIsImZpZWxkT3ZlcnJpZGVzIiwidGl0bGUiLCJoYXNHZW5lcmF0ZURlc2NyaXB0aW9uRm4iLCJnZW5lcmF0ZURlc2NyaXB0aW9uIiwiZGVzY3JpcHRpb24iLCJ1cGxvYWRzQ29sbGVjdGlvbiIsImhhc0dlbmVyYXRlSW1hZ2VGbiIsImdlbmVyYXRlSW1hZ2UiLCJyZWxhdGlvblRvIiwiaW1hZ2UiLCJoYXNHZW5lcmF0ZVVSTEZuIiwiZ2VuZXJhdGVVUkwiLCJpbnRlcmZhY2VOYW1lIiwiY29sbGVjdGlvbnMiLCJtYXAiLCJjb2xsZWN0aW9uIiwic2x1ZyIsImlzRW5hYmxlZCIsImluY2x1ZGVzIiwidGFiYmVkVUkiLCJlbWFpbEZpZWxkIiwiYXV0aCIsImRpc2FibGVMb2NhbFN0cmF0ZWd5IiwiZmluZCIsImZpZWxkIiwic2VvVGFicyIsInRhYnMiLCJmaWx0ZXIiLCJsYWJlbHMiLCJzaW5ndWxhciIsInNsaWNlIiwiZW5kcG9pbnRzIiwiaGFuZGxlciIsInJlcSIsImFyZ3MiLCJkYXRhIiwicmVzdWx0IiwiUmVzcG9uc2UiLCJKU09OIiwic3RyaW5naWZ5Iiwic3RhdHVzIiwibWV0aG9kIiwicGF0aCIsImdsb2JhbHMiLCJnbG9iYWwiLCJpMThuIl0sIm1hcHBpbmdzIjoiQUFHQSxTQUFTQSxTQUFTLFFBQVEsb0JBQW1CO0FBQzdDLE9BQU9DLFdBQVcsUUFBTztBQVV6QixTQUFTQyxlQUFlLFFBQVEsMkJBQTBCO0FBQzFELFNBQVNDLFNBQVMsUUFBUSxxQkFBb0I7QUFDOUMsU0FBU0MsU0FBUyxRQUFRLHFCQUFvQjtBQUM5QyxPQUFPQyxrQkFBa0IsaUJBQWdCO0FBQ3pDLFNBQVNDLFFBQVEsUUFBUSxnQkFBZTtBQUN4QyxTQUFTQyxPQUFPLFFBQVEsZUFBYztBQUV0QyxNQUFNQyxNQUNKLENBQUNDLGVBQ0QsQ0FBQ0M7UUFDQyxNQUFNQyxZQUEwQjtZQUM5QjtnQkFDRUMsTUFBTTtnQkFDTkMsTUFBTTtnQkFDTkMsUUFBUTtvQkFDTjt3QkFDRUYsTUFBTTt3QkFDTkMsTUFBTTt3QkFDTkUsT0FBTzs0QkFDTEMsWUFBWTtnQ0FDVkMsT0FBT1g7NEJBQ1Q7d0JBQ0Y7d0JBQ0FZLE9BQU87b0JBQ1Q7b0JBQ0E7d0JBQ0VOLE1BQU07d0JBQ05DLE1BQU07d0JBQ05FLE9BQU87NEJBQ0xDLFlBQVk7Z0NBQ1ZDLE9BQU8sQ0FBQ0Usc0JBQ04sb0JBQUNmO3dDQUNFLEdBQUdlLEtBQUs7d0NBQ1RDLG9CQUFvQixPQUFPWCxhQUFhWSxhQUFhLEtBQUs7OzRCQUdoRTt3QkFDRjt3QkFDQUMsV0FBVzt3QkFDWCxHQUFJLEFBQUNiLGNBQWNjLGdCQUFnQkMsU0FBa0MsQ0FBQyxDQUFDO29CQUN6RTtvQkFDQTt3QkFDRVosTUFBTTt3QkFDTkMsTUFBTTt3QkFDTkUsT0FBTzs0QkFDTEMsWUFBWTtnQ0FDVkMsT0FBTyxDQUFDRSxzQkFDTixvQkFBQ2pCO3dDQUNFLEdBQUdpQixLQUFLO3dDQUNUTSwwQkFDRSxPQUFPaEIsYUFBYWlCLG1CQUFtQixLQUFLOzs0QkFJcEQ7d0JBQ0Y7d0JBQ0FKLFdBQVc7d0JBQ1gsR0FBSWIsY0FBY2MsZ0JBQWdCSSxlQUFlLENBQUMsQ0FBQztvQkFDckQ7dUJBQ0lsQixjQUFjbUIsb0JBQ2Q7d0JBQ0UseUVBQXlFO3dCQUN6RTs0QkFDRWhCLE1BQU07NEJBQ05DLE1BQU07NEJBQ05FLE9BQU87Z0NBQ0xDLFlBQVk7b0NBQ1ZDLE9BQU8sQ0FBQ0Usc0JBQ04sb0JBQUNoQjs0Q0FDRSxHQUFHZ0IsS0FBSzs0Q0FDVFUsb0JBQW9CLE9BQU9wQixhQUFhcUIsYUFBYSxLQUFLOztnQ0FHaEU7Z0NBQ0FILGFBQ0U7NEJBQ0o7NEJBQ0FULE9BQU87NEJBQ1BJLFdBQVc7NEJBQ1hTLFlBQVl0QixjQUFjbUI7NEJBQzFCLEdBQUluQixjQUFjYyxnQkFBZ0JTLFNBQVMsQ0FBQyxDQUFDO3dCQUMvQztxQkFDRCxHQUNELEVBQUU7dUJBQ0Z2QixjQUFjSyxVQUFVLEVBQUU7b0JBQzlCO3dCQUNFRixNQUFNO3dCQUNOQyxNQUFNO3dCQUNORSxPQUFPOzRCQUNMQyxZQUFZO2dDQUNWQyxPQUFPLENBQUNFLHNCQUNOLG9CQUFDWjt3Q0FDRSxHQUFHWSxLQUFLO3dDQUNUYyxrQkFBa0IsT0FBT3hCLGFBQWF5QixXQUFXLEtBQUs7OzRCQUc1RDt3QkFDRjt3QkFDQWhCLE9BQU87b0JBQ1Q7aUJBQ0Q7Z0JBQ0RpQixlQUFlMUIsYUFBYTBCLGFBQWE7Z0JBQ3pDakIsT0FBTztZQUNUO1NBQ0Q7UUFFRCxPQUFPO1lBQ0wsR0FBR1IsTUFBTTtZQUNUMEIsYUFDRTFCLE9BQU8wQixXQUFXLEVBQUVDLElBQUksQ0FBQ0M7Z0JBQ3ZCLE1BQU0sRUFBRUMsSUFBSSxFQUFFLEdBQUdEO2dCQUNqQixNQUFNRSxZQUFZL0IsY0FBYzJCLGFBQWFLLFNBQVNGO2dCQUV0RCxJQUFJQyxXQUFXO29CQUNiLElBQUkvQixjQUFjaUMsVUFBVTt3QkFDMUIsNEdBQTRHO3dCQUM1RyxNQUFNQyxhQUNKLEFBQUNMLENBQUFBLFdBQVdNLElBQUksSUFDZCxDQUFFLENBQUEsT0FBT04sV0FBV00sSUFBSSxLQUFLLFlBQVlOLFdBQVdNLElBQUksQ0FBQ0Msb0JBQW9CLEFBQUQsQ0FBQyxLQUMvRVAsV0FBV3hCLE1BQU0sRUFBRWdDLEtBQUssQ0FBQ0MsUUFBVSxVQUFVQSxTQUFTQSxNQUFNbkMsSUFBSSxLQUFLO3dCQUV2RSxNQUFNb0MsVUFBdUI7NEJBQzNCO2dDQUNFbkMsTUFBTTtnQ0FDTm9DLE1BQU07b0NBQ0osc0ZBQXNGO29DQUN0Riw2RkFBNkY7dUNBQ3pGWCxZQUFZeEIsUUFBUSxDQUFDLEVBQUUsRUFBRUQsU0FBUyxTQUNsQ3lCLFdBQVd4QixNQUFNLENBQUMsRUFBRSxFQUFFbUMsT0FDdEI7d0NBQ0U7NENBQ0VuQyxRQUFRO21EQUNGLEFBQUM2QixDQUFBQSxhQUNETCxXQUFXeEIsTUFBTSxDQUFDb0MsTUFBTSxDQUN0QixDQUFDSCxRQUFVLFVBQVVBLFNBQVNBLE1BQU1uQyxJQUFJLEtBQUssV0FFL0MwQixXQUFXeEIsTUFBTSxBQUFELEtBQU0sRUFBRTs2Q0FDN0I7NENBQ0RJLE9BQU9vQixZQUFZYSxRQUFRQyxZQUFZO3dDQUN6QztxQ0FDRDtvQ0FDTDt3Q0FDRXRDLFFBQVFIO3dDQUNSTyxPQUFPO29DQUNUO2lDQUNEOzRCQUNIO3lCQUNEO3dCQUVELE9BQU87NEJBQ0wsR0FBR29CLFVBQVU7NEJBQ2J4QixRQUFRO21DQUNGNkIsYUFBYTtvQ0FBQ0E7aUNBQVcsR0FBRyxFQUFFO21DQUMvQks7bUNBQ0NWLFlBQVl4QixRQUFRLENBQUMsRUFBRSxFQUFFRCxTQUFTLFNBQVN5QixXQUFXeEIsTUFBTSxDQUFDdUMsS0FBSyxDQUFDLEtBQUssRUFBRTs2QkFDL0U7d0JBQ0g7b0JBQ0Y7b0JBRUEsT0FBTzt3QkFDTCxHQUFHZixVQUFVO3dCQUNieEIsUUFBUTsrQkFBS3dCLFlBQVl4QixVQUFVLEVBQUU7K0JBQU1IO3lCQUFVO29CQUN2RDtnQkFDRjtnQkFFQSxPQUFPMkI7WUFDVCxNQUFNLEVBQUU7WUFDVmdCLFdBQVc7Z0JBQ1Q7b0JBQ0VDLFNBQVMsT0FBT0M7d0JBQ2QsTUFBTUMsT0FDSkQsSUFBSUUsSUFBSTt3QkFDVixNQUFNQyxTQUFTLE1BQU1sRCxhQUFhWSxhQUFhLENBQUNvQzt3QkFDaEQsT0FBTyxJQUFJRyxTQUFTQyxLQUFLQyxTQUFTLENBQUM7NEJBQUVIO3dCQUFPLElBQUk7NEJBQUVJLFFBQVE7d0JBQUk7b0JBQ2hFO29CQUNBQyxRQUFRO29CQUNSQyxNQUFNO2dCQUNSO2dCQUNBO29CQUNFVixTQUFTLE9BQU9DO3dCQUNkLE1BQU1DLE9BQ0pELElBQUlFLElBQUk7d0JBQ1YsTUFBTUMsU0FBUyxNQUFNbEQsYUFBYWlCLG1CQUFtQixDQUFDK0I7d0JBQ3RELE9BQU8sSUFBSUcsU0FBU0MsS0FBS0MsU0FBUyxDQUFDOzRCQUFFSDt3QkFBTyxJQUFJOzRCQUFFSSxRQUFRO3dCQUFJO29CQUNoRTtvQkFDQUMsUUFBUTtvQkFDUkMsTUFBTTtnQkFDUjtnQkFDQTtvQkFDRVYsU0FBUyxPQUFPQzt3QkFDZCxNQUFNQyxPQUNKRCxJQUFJRSxJQUFJO3dCQUNWLE1BQU1DLFNBQVMsTUFBTWxELGFBQWF5QixXQUFXLENBQUN1Qjt3QkFDOUMsT0FBTyxJQUFJRyxTQUFTQyxLQUFLQyxTQUFTLENBQUM7NEJBQUVIO3dCQUFPLElBQUk7NEJBQUVJLFFBQVE7d0JBQUk7b0JBQ2hFO29CQUNBQyxRQUFRO29CQUNSQyxNQUFNO2dCQUNSO2dCQUNBO29CQUNFVixTQUFTLE9BQU9DO3dCQUNkLE1BQU1DLE9BQ0pELElBQUlFLElBQUk7d0JBQ1YsTUFBTUMsU0FBUyxNQUFNbEQsYUFBYXFCLGFBQWEsQ0FBQzJCO3dCQUNoRCxPQUFPLElBQUlHLFNBQVNELFFBQVE7NEJBQUVJLFFBQVE7d0JBQUk7b0JBQzVDO29CQUNBQyxRQUFRO29CQUNSQyxNQUFNO2dCQUNSO2FBQ0Q7WUFDREMsU0FDRXhELE9BQU93RCxPQUFPLEVBQUU3QixJQUFJLENBQUM4QjtnQkFDbkIsTUFBTSxFQUFFNUIsSUFBSSxFQUFFLEdBQUc0QjtnQkFDakIsTUFBTTNCLFlBQVkvQixjQUFjeUQsU0FBU3pCLFNBQVNGO2dCQUVsRCxJQUFJQyxXQUFXO29CQUNiLElBQUkvQixjQUFjaUMsVUFBVTt3QkFDMUIsTUFBTU0sVUFBdUI7NEJBQzNCO2dDQUNFbkMsTUFBTTtnQ0FDTm9DLE1BQU07b0NBQ0osc0ZBQXNGO29DQUN0Rix5RkFBeUY7dUNBQ3JGa0IsUUFBUXJELFFBQVEsQ0FBQyxFQUFFLENBQUNELFNBQVMsU0FDN0JzRCxPQUFPckQsTUFBTSxDQUFDLEVBQUUsRUFBRW1DLE9BQ2xCO3dDQUNFOzRDQUNFbkMsUUFBUTttREFBS3FELFFBQVFyRCxVQUFVLEVBQUU7NkNBQUU7NENBQ25DSSxPQUFPaUQsUUFBUWpELFNBQVM7d0NBQzFCO3FDQUNEO29DQUNMO3dDQUNFSixRQUFRSDt3Q0FDUk8sT0FBTztvQ0FDVDtpQ0FDRDs0QkFDSDt5QkFDRDt3QkFFRCxPQUFPOzRCQUNMLEdBQUdpRCxNQUFNOzRCQUNUckQsUUFBUTttQ0FDSGtDO21DQUNDbUIsUUFBUXJELFFBQVEsQ0FBQyxFQUFFLENBQUNELFNBQVMsU0FBU3NELFFBQVFyRCxRQUFRdUMsTUFBTSxLQUFLLEVBQUU7NkJBQ3hFO3dCQUNIO29CQUNGO29CQUVBLE9BQU87d0JBQ0wsR0FBR2MsTUFBTTt3QkFDVHJELFFBQVE7K0JBQUtxRCxRQUFRckQsVUFBVSxFQUFFOytCQUFNSDt5QkFBVTtvQkFDbkQ7Z0JBQ0Y7Z0JBRUEsT0FBT3dEO1lBQ1QsTUFBTSxFQUFFO1lBQ1ZDLE1BQU07Z0JBQ0osR0FBRzFELE9BQU8wRCxJQUFJO2dCQUNkL0QsY0FBYztvQkFDWixHQUFHTCxVQUFVSyxjQUFjSyxPQUFPMEQsSUFBSSxFQUFFL0QsYUFBYTtnQkFDdkQ7WUFDRjtRQUNGO0lBQ0Y7QUFFRixlQUFlRyxJQUFHIn0=
@@ -1,22 +1,22 @@
1
1
  {
2
2
  "$schema": "./translation-schema.json",
3
3
  "plugin-seo": {
4
+ "almostThere": "Almost there",
4
5
  "autoGenerate": "Auto-generate",
5
- "imageAutoGenerationTip": "Auto-generation will retrieve the selected hero image.",
6
6
  "bestPractices": "best practices",
7
- "lengthTipTitle": "This should be between {{minLength}} and {{maxLength}} characters. For help in writing quality meta titles, see ",
8
- "lengthTipDescription": "This should be between {{minLength}} and {{maxLength}} characters. For help in writing quality meta descriptions, see ",
9
- "good": "Good",
10
- "tooLong": "Too long",
11
- "tooShort": "Too short",
12
- "almostThere": "Almost there",
13
7
  "characterCount": "{{current}}/{{minLength}}-{{maxLength}} chars, ",
14
- "charactersToGo": "{{characters}} to go",
15
8
  "charactersLeftOver": "{{characters}} left over",
9
+ "charactersToGo": "{{characters}} to go",
16
10
  "charactersTooMany": "{{characters}} too many",
17
- "noImage": "No image",
18
11
  "checksPassing": "{{current}}/{{max}} checks are passing",
12
+ "good": "Good",
13
+ "imageAutoGenerationTip": "Auto-generation will retrieve the selected hero image.",
14
+ "lengthTipDescription": "This should be between {{minLength}} and {{maxLength}} characters. For help in writing quality meta descriptions, see ",
15
+ "lengthTipTitle": "This should be between {{minLength}} and {{maxLength}} characters. For help in writing quality meta titles, see ",
16
+ "noImage": "No image",
19
17
  "preview": "Preview",
20
- "previewDescription": "Exact result listings may vary based on content and search relevancy."
18
+ "previewDescription": "Exact result listings may vary based on content and search relevancy.",
19
+ "tooLong": "Too long",
20
+ "tooShort": "Too short"
21
21
  }
22
22
  }
@@ -1,22 +1,22 @@
1
1
  {
2
2
  "$schema": "./translation-schema.json",
3
3
  "plugin-seo": {
4
+ "almostThere": "Ya casi está",
4
5
  "autoGenerate": "Autogénerar",
5
- "imageAutoGenerationTip": "La autogeneración recuperará la imagen de héroe seleccionada.",
6
6
  "bestPractices": "mejores prácticas",
7
- "lengthTipTitle": "Debe tener entre {{minLength}} y {{maxLength}} caracteres. Para obtener ayuda sobre cómo escribir metatítulos de calidad, consulte ",
8
- "lengthTipDescription": "Esto debe estar entre {{minLength}} y {{maxLength}} caracteres. Para obtener ayuda sobre cómo escribir meta descripciones de calidad, consulte ",
9
- "good": "Bien",
10
- "tooLong": "Demasiado largo",
11
- "tooShort": "Demasiado corto",
12
- "almostThere": "Ya casi está",
13
7
  "characterCount": "{{current}}/{{minLength}}-{{maxLength}} letras, ",
14
- "charactersToGo": "{{characters}} letras sobrantes",
15
8
  "charactersLeftOver": "{{characters}} letras sobrantes",
9
+ "charactersToGo": "{{characters}} letras sobrantes",
16
10
  "charactersTooMany": "{{characters}} letras demasiados",
17
- "noImage": "Sin imagen",
18
11
  "checksPassing": "{{current}}/{{max}} las comprobaciones están pasando",
12
+ "good": "Bien",
13
+ "imageAutoGenerationTip": "La autogeneración recuperará la imagen de héroe seleccionada.",
14
+ "lengthTipDescription": "Esto debe estar entre {{minLength}} y {{maxLength}} caracteres. Para obtener ayuda sobre cómo escribir meta descripciones de calidad, consulte ",
15
+ "lengthTipTitle": "Debe tener entre {{minLength}} y {{maxLength}} caracteres. Para obtener ayuda sobre cómo escribir metatítulos de calidad, consulte ",
16
+ "noImage": "Sin imagen",
19
17
  "preview": "Vista previa",
20
- "previewDescription": "Las listas de resultados pueden variar segun la relevancia de buesqueda y el contenido."
18
+ "previewDescription": "Las listas de resultados pueden variar segun la relevancia de buesqueda y el contenido.",
19
+ "tooLong": "Demasiado largo",
20
+ "tooShort": "Demasiado corto"
21
21
  }
22
22
  }
@@ -1,22 +1,22 @@
1
1
  {
2
2
  "$schema": "./translation-schema.json",
3
3
  "plugin-seo": {
4
+ "almostThere": "چیزیی باقی نمونده",
4
5
  "autoGenerate": "تولید خودکار",
5
- "imageAutoGenerationTip": "این قابلیت، تصویر فعلی بارگذاری شده در مجموعه محتوای شما را بازیابی می‌کند",
6
6
  "bestPractices": "آموزش بیشتر",
7
- "lengthTipTitle": "این باید بین {{minLength}} و {{maxLength}} کلمه باشد. برای کمک در نوشتن عناوین متا با کیفیت، مراجعه کنید به ",
8
- "lengthTipDescription": "این باید بین {{minLength}} و {{maxLength}} کلمه باشد. برای کمک در نوشتن توضیحات متا با کیفیت، مراجعه کنید به ",
9
- "good": "خوب",
10
- "tooLong": "خیلی طولانی",
11
- "tooShort": "خیلی کوتاه",
12
- "almostThere": "چیزیی باقی نمونده",
13
7
  "characterCount": "{{current}}/{{minLength}}-{{maxLength}} کلمه، ",
14
- "charactersToGo": "{{characters}} باقی مانده",
15
8
  "charactersLeftOver": "{{characters}} باقی مانده",
9
+ "charactersToGo": "{{characters}} باقی مانده",
16
10
  "charactersTooMany": "{{characters}} بیش از حد",
17
- "noImage": "بدون تصویر",
18
11
  "checksPassing": "{{current}}/{{max}} بررسی‌ها با موفقیت انجام شده است",
12
+ "good": "خوب",
13
+ "imageAutoGenerationTip": "این قابلیت، تصویر فعلی بارگذاری شده در مجموعه محتوای شما را بازیابی می‌کند",
14
+ "lengthTipDescription": "این باید بین {{minLength}} و {{maxLength}} کلمه باشد. برای کمک در نوشتن توضیحات متا با کیفیت، مراجعه کنید به ",
15
+ "lengthTipTitle": "این باید بین {{minLength}} و {{maxLength}} کلمه باشد. برای کمک در نوشتن عناوین متا با کیفیت، مراجعه کنید به ",
16
+ "noImage": "بدون تصویر",
19
17
  "preview": "پیش‌نمایش",
20
- "previewDescription": "فهرست نتایج ممکن است بر اساس محتوا و متناسب با کلمه کلیدی جستجو شده باشند"
18
+ "previewDescription": "فهرست نتایج ممکن است بر اساس محتوا و متناسب با کلمه کلیدی جستجو شده باشند",
19
+ "tooLong": "خیلی طولانی",
20
+ "tooShort": "خیلی کوتاه"
21
21
  }
22
22
  }