UNPKG

gaad-widget

Version:

Display a banner-link to promote Global Accessibility Awareness Day (GAAD). Display the banner for a period before and after the day. Via unpkg CDN.

73 lines (48 loc) 2.5 kB
// Main widget 'run' function | ©Nick Freear. module.exports.run = function (defaults, methods) { 'use strict'; const gaad = methods.getConfig(defaults, methods); const texts = gaad.texts; const GAAD_DATE = gaad.date; const GAAD_NEXT = gaad.date_next; gaad.show_date = methods.addDays(GAAD_DATE, -gaad.days_before); // new Date(GAAD_DATE).addDays(-gaad.days_before); // Clone. gaad.hide_date = methods.addDays(GAAD_DATE, gaad.days_after); // new Date(GAAD_DATE).addDays(gaad.days_after); // gaad.diff_days = gaad.today.toString('dd') - gaad.show_date.toString('dd'); gaad.diff_show = gaad.today - gaad.show_date; gaad.diff_hide = gaad.today - gaad.hide_date; gaad.should_show = (gaad.diff_show >= 0 && gaad.diff_hide < 0); gaad.is_today = (gaad.today - gaad.date.ts) === 0; gaad.is_before = (gaad.today - gaad.date.ts) <= 0; // Use: 'JS Date - timestamp' (implicite cast), works! if (!gaad.is_before) { gaad.xreplace = GAAD_NEXT; } gaad.dayClass = gaad.is_today ? 'is-today' : gaad.is_before ? 'is-before' : 'is-after'; gaad.xreplace['{at}'] = methods.replaceObj(' href="{u}" target="_top" title="{t}"', { '{u}': gaad.url, '{t}': texts.en.name }); gaad.xreplace['{x}'] = gaad.xth; // Was: gaad.xreplace[ '{g}' ] = gaad.texts.en.name; const lang = texts[gaad.lang] ? gaad.lang : 'en'; gaad.lang = lang; const replaceObj = methods.replaceObj; const template = gaad.is_before ? texts[lang].before : texts[lang].after; const putWidget = replaceObj(gaad.put_widget, { '{p}': methods.trans('put'), '{c}': gaad.put_char, '{v}': gaad.version }); const calWidget = replaceObj(gaad.ical_widget, { '{p}': methods.trans('ical'), '{c}': gaad.ical_char, '{v}': gaad.version_hat }); gaad.xreplace['{g}'] = texts[lang].name; gaad.message = replaceObj(template, gaad.xreplace) + replaceObj('<div class="w">{p}{c}</div>', { '{c}': calWidget, '{p}': putWidget }); if (!gaad.should_show && !gaad.force) { return gaad.log('GAAD: no-show', gaad); } gaad.log('GAAD: show', gaad); runAnalytics(methods.analytics, gaad.analytics); methods.addStylesheet(gaad); methods.setHTML(gaad); console.log('Happy GAAD! ~ http://globalaccessibilityawarenessday.org'); return gaad; }; function runAnalytics (analyticsFn, config) { if (config) { analyticsFn.create(config); analyticsFn.pageView(); // analyticsFn.initialize(analyticsCfg.id, { name: analyticsCfg.name, debug: gaad.debug }); // analyticsFn.pageview(); } }