@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.)
150 lines (140 loc) • 4.38 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _defaultFieldsets = require("../../../../fieldsets/defaultFieldsets");
var _coalesceLabel = require("../../../../helpers/coalesceLabel");
var _datatype = require("../../../properties/datatype");
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: 'LinguisticObject',
type: 'object',
title: 'Tekst',
titleEN: 'Text',
fieldsets: _defaultFieldsets.defaultFieldsets,
groups: [{
name: 'core',
title: 'Tekst',
default: true
}, {
name: 'metadata',
title: 'Metadata'
}],
initialValue: {
editorialState: 'published',
accessState: 'open'
},
options: {
semanticSanity: {
'@id': 'muna:LinguisticDocument'
}
},
fields: [{
name: 'body',
title: 'Tekst',
titleEN: 'Body',
group: 'core',
type: 'blockContent',
options: {
semanticSanity: {
'@type': '@json'
}
}
}, _objectSpread(_objectSpread({}, _datatype.editorialState), {}, {
group: 'core'
}), _objectSpread(_objectSpread({}, _datatype.accessState), {}, {
group: 'core'
}), {
name: 'hasType',
title: 'Klassifisert som',
titleEN: 'Classified as',
group: 'core',
type: 'array',
of: [{
type: 'reference',
to: [{
type: 'TextType'
}]
}],
validation: Rule => Rule.required(),
options: {
semanticSanity: {
'@container': '@set',
'@type': '@id'
}
}
}, {
name: 'language',
title: 'Språk',
titleEN: 'Language',
group: 'core',
type: 'reference',
to: [{
type: 'Language'
}],
validation: Rule => Rule.required(),
options: {
semanticSanity: {
'@type': '@id'
}
}
}, {
name: 'creator',
title: 'Skaper',
titleEN: 'Creator',
group: 'metadata',
description: 'Registrer en eller flere aktører som har skapt dette dokumentet, gjerne med hvilken rolle de hadde.',
type: 'array',
of: [{
type: 'ContributionAssignment'
}],
options: {
semanticSanity: {
'@container': '@set',
'@type': '@id'
}
}
}, {
name: 'publishedAt',
title: 'Publikasjonsdato',
titleEN: 'Published at',
group: 'metadata',
description: 'This can be used to schedule post for publishing',
type: 'datetime'
}, {
name: 'documentedIn',
title: 'Dokumentert i',
titleEN: 'Documented in',
group: 'metadata',
type: 'array',
of: [{
type: 'file'
}],
options: {
semanticSanity: {
'@type': '@json'
}
}
}],
preview: {
select: {
type: 'hasType.0.label',
blocks: 'body',
lang: 'language.label'
},
prepare(selection) {
var type = selection.type,
blocks = selection.blocks,
lang = selection.lang;
return {
title: blocks !== null && blocks !== void 0 && blocks.length ? blocks[0].children.filter(child => child._type === 'span').map(span => span.text).join('') : 'No content',
subtitle: "".concat(type ? "".concat((0, _coalesceLabel.coalesceLabel)(type), " p\xE5 ") : '', " ").concat(lang ? (0, _coalesceLabel.coalesceLabel)(lang) : '')
};
}
}
};
exports.default = _default;
//# sourceMappingURL=LinguisticObject.js.map