@seidhr/sanity-plugin-muna-schemas
Version:
Muna or ᛗᚢᚾᚨ means remember in norse. Muna is a schema for the Sanity Studio that enables detailed descriptions of cultural heritage objects and knowledge about their contexts as well as pages about them (or anything else really.)
197 lines (183 loc) • 5.65 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _documentInternationalization = _interopRequireDefault(require("config:@sanity/document-internationalization"));
var _jsonata = _interopRequireDefault(require("jsonata"));
var _fa = require("react-icons/fa");
var _defaultFieldsets = require("../../../../fieldsets/defaultFieldsets");
var _datatype = require("../../../properties/datatype");
var _object = require("../../../properties/object");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : 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; }
var _default = {
name: 'LinguisticDocument',
type: 'document',
title: 'Text',
i18n: true,
initialValue: {
'__i18n_lang': _documentInternationalization.default.base,
'__i18n_refs': [],
editorialState: 'review',
accessState: 'secret',
hasType: [{
_ref: 'ff60b82d-e943-4328-bac5-b68675cf3cce'
}]
},
icon: _fa.FaMarker,
fieldsets: _defaultFieldsets.defaultFieldsets,
groups: [{
name: 'content',
title: 'Content',
default: true
}, {
name: 'core',
title: 'Metadata'
}],
fields: [_datatype.editorialState, _datatype.accessState, _objectSpread(_objectSpread({}, _datatype.labelSingleton), {}, {
group: ['core', 'content']
}), _object.identifiedBy,
/* {
name: 'slug',
title: 'Slug',
titleEN: 'Slug',
description: 'Some frontends will require a slug to be set to be able to show the post',
type: 'slug',
options: {
source: 'label',
maxLength: 96,
},
}, */
{
name: 'creator',
title: 'Skaper',
titleEN: 'Author',
description: 'Registrer en eller flere aktører som har skapt dette dokumentet, gjerne med hvilken rolle de hadde.',
group: 'core',
type: 'array',
of: [{
type: 'ContributionAssignment'
}],
options: {
semanticSanity: {
'@container': '@list',
'@type': '@id'
}
}
}, _object.language, {
name: 'hasType',
title: 'Klassifisert som',
titleEN: 'Classified as',
group: 'content',
type: 'array',
of: [{
type: 'reference',
to: [{
type: 'TextType'
}]
}],
validation: Rule => Rule.required(),
options: {
semanticSanity: {
'@container': '@set',
'@type': '@id'
}
}
}, {
name: 'categories',
title: 'Kategorier',
titleEN: 'Categories',
group: 'core',
type: 'array',
of: [{
type: 'reference',
to: [{
type: 'Concept'
}]
}],
options: {
semanticSanity: {
'@container': '@set',
'@type': '@id'
}
}
}, {
name: 'publishedAt',
title: 'Publikasjonsdato',
titleEN: 'Published at',
description: 'This can be used to schedule post for publishing',
group: 'core',
type: 'datetime',
options: {
semanticSanity: {
"@type": "xsd:dateTime"
}
}
}, {
name: 'body',
title: 'Tekst',
titleEN: 'Body',
group: 'content',
type: 'blockContent',
options: {
semanticSanity: {
"@type": "@json"
}
}
}, {
name: 'excerpt',
title: 'Sammendrag',
titleEN: 'Excerpt',
group: 'content',
description: 'This ends up on summary pages, on Google, when people share your post in social media.',
type: 'text',
options: {
semanticSanity: {
"@type": "@json"
}
},
validation: Rule => Rule.max(160).warning('Shorter descriptions are better!')
}, _objectSpread(_objectSpread({}, _object.image), {}, {
group: 'core'
}), {
name: 'documentedIn',
title: 'Documented in',
titleEN: 'Dokumentert i',
group: 'core',
type: 'array',
of: [{
type: 'file'
}],
options: {
semanticSanity: {
exclude: true
}
}
}],
preview: {
select: {
title: 'label',
blocks: 'excerpt',
media: 'mainImage',
lang: '__i18n_lang'
},
prepare(selection) {
var title = selection.title,
blocks = selection.blocks,
media = selection.media,
lang = selection.lang;
var expression = (0, _jsonata.default)('nor[0]');
var block = expression.evaluate(blocks);
return {
title: "".concat(lang, " | ").concat(title),
description: block ? block.children.filter(child => child._type === 'span').map(span => span.text).join('') : 'No description',
media: media
};
}
}
};
exports.default = _default;
//# sourceMappingURL=LinguisticDocument.js.map