diff options
Diffstat (limited to 'src/content/dependencies/generateAbsoluteDatetimestamp.js')
-rw-r--r-- | src/content/dependencies/generateAbsoluteDatetimestamp.js | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/content/dependencies/generateAbsoluteDatetimestamp.js b/src/content/dependencies/generateAbsoluteDatetimestamp.js new file mode 100644 index 0000000..930b6f1 --- /dev/null +++ b/src/content/dependencies/generateAbsoluteDatetimestamp.js @@ -0,0 +1,53 @@ +export default { + contentDependencies: [ + 'generateDatetimestampTemplate', + 'generateTooltip', + ], + + extraDependencies: ['html', 'language'], + + data: (date) => + ({date}), + + relations: (relation) => ({ + template: + relation('generateDatetimestampTemplate'), + + tooltip: + relation('generateTooltip'), + }), + + slots: { + style: { + validate: v => v.is('full', 'year'), + default: 'full', + }, + + // Only has an effect for 'year' style. + tooltip: { + type: 'boolean', + default: false, + }, + }, + + generate: (data, relations, slots, {language}) => + relations.template.slots({ + mainContent: + (slots.style === 'full' + ? language.formatDate(data.date) + : slots.style === 'year' + ? data.date.getFullYear().toString() + : null), + + tooltip: + slots.tooltip && + slots.style === 'year' && + relations.tooltip.slots({ + content: + language.formatDate(data.date), + }), + + datetime: + data.date.toISOString(), + }), +}; |