@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.)
188 lines (177 loc) • 5.92 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _fa = require("react-icons/fa");
var _helpers = require("../../../../helpers");
var _datatype = require("../../../properties/datatype");
var _object = require("../../../properties/object");
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: 'Actor',
title: 'Actor',
type: 'document',
initialValue: {
editorialState: 'review',
accessState: 'secret'
},
icon: _fa.FaUser,
fieldsets: [{
name: 'state',
title: 'Status',
options: {
collapsible: true,
collapsed: false,
columns: 2
}
}, {
name: 'core',
title: 'Basic metadata',
options: {
collapsible: true,
collapsed: false
}
}, {
name: 'representation',
title: 'Hovedbilde og IIIF manifest',
options: {
collapsible: true,
collapsed: false
}
}, {
name: 'relations',
title: 'Relations to other stuff',
options: {
collapsible: true,
collapsed: false
}
}],
fields: [_datatype.editorialState, _datatype.accessState, _datatype.label, _datatype.sortLabel, _datatype.shortDescription, _datatype.homepage, _objectSpread(_objectSpread({}, _object.identifiedBy), {}, {
fieldset: 'core'
}), _objectSpread(_objectSpread({}, _object.referredToBy), {}, {
fieldset: 'core'
}), {
name: 'hasType',
title: 'Klassifisert som',
titleEN: 'Classified as',
type: 'array',
fieldset: 'core',
of: [{
type: 'reference',
to: [{
type: 'ActorType'
}]
}],
validation: Rule => Rule.min(1).warning('Du bør ha "Person" eller "Gruppe" som første type!'),
options: {
semanticSanity: {
'@container': '@set',
'@type': '@id'
}
}
}, {
name: 'activityStream',
title: 'Aktivitetsstrøm',
titleEN: 'Activity stream',
description: 'En aktivitetsstrøm samler alle hendelser knyttet til denne aktøren. Fødsel og død er "inline" til personen, mens andre aktiviteter som ekteskap er egne dokument.',
descriptionEN: 'Add all known events this smuck did',
type: 'array',
of: [{
type: 'Birth'
}, {
type: 'reference',
to: [{
type: 'Activity'
}, {
type: 'Event'
}]
}, {
type: 'Move'
}, {
type: 'Joining'
}, {
type: 'Leaving'
}, {
type: 'Death'
}],
options: {
editModal: 'fullscreen',
semanticSanity: {
'@container': '@list',
'@type': '@id'
}
}
}, _object.memberOf, _objectSpread(_objectSpread({}, _object.image), {}, {
fieldset: 'representation'
}), _object.inDataset, _object.wasOutputOf],
preview: {
select: {
label: 'label',
sortLabel: 'sortLabel',
type: 'hasType.0.label',
bb: 'activityStream.0.timespan.0.beginOfTheBegin',
eb: 'activityStream.0.timespan.0.endOfTheBegin',
date: 'activityStream.0.timespan.0.date',
be: 'activityStream.0.timespan.0.beginOfTheEnd',
ee: 'activityStream.0.timespan.0.endOfTheEnd',
media: 'image',
imported: 'wasOutputOf'
},
prepare(selection) {
var viewOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
// eslint-disable-next-line no-shadow
var label = selection.label,
sortLabel = selection.sortLabel,
type = selection.type,
media = selection.media,
imported = selection.imported,
bb = selection.bb,
eb = selection.eb,
date = selection.date,
be = selection.be,
ee = selection.ee;
var timespan = (0, _helpers.timespanAsString)(bb, eb, date, be, ee, 'nb');
var wasImported = imported ? "Importert fra ".concat(imported.hasSender.label) : '';
var title = viewOptions.ordering && viewOptions.ordering.by.field === 'sortLabel' ? sortLabel !== null && sortLabel !== void 0 ? sortLabel : label : label;
return {
title: (0, _helpers.coalesceLabel)(title),
subtitle: "".concat(type ? "".concat((0, _helpers.coalesceLabel)(type, 'nor'), ". ") : '').concat(timespan ? "F\xF8dt: ".concat(timespan) : '', " ").concat(wasImported),
media: media
};
}
},
orderings: [{
title: 'Navn, A-Å',
name: 'labelAsc',
by: [{
field: 'label.no',
direction: 'asc'
}]
}, {
title: 'Navn, Å-A',
name: 'labelDesc',
by: [{
field: 'label.no',
direction: 'desc'
}]
}, {
title: 'Invertert navn, A-Å',
name: 'sortLabelAsc',
by: [{
field: 'sortLabel',
direction: 'asc'
}]
}, {
title: 'Invertert navn, Å-A',
name: 'sortLabelDesc',
by: [{
field: 'sortLabel',
direction: 'desc'
}]
}]
};
exports.default = _default;
//# sourceMappingURL=Actor.js.map