function formatTimeBasedOnGranularity(range, granularity, timezone, locale) { const wallTimeStart = chronoshift_1.WallTime.UTCToWallTime(range.start, timezone.toString()); const year = wallTimeStart.getFullYear(); const month = wallTimeStart.getMonth(); const day = wallTimeStart.getDate(); const hour = wallTimeStart.getHours(); const minute = wallTimeStart.getMinutes(); const second = wallTimeStart.getSeconds(); const monthString = locale.shortMonths[month]; const hourToTwelve = hour % 12 === 0 ? 12 : hour % 12; const amPm = (hour / 12) >= 1 ? 'pm' : 'am'; var granularityString = granularity.toJS(); var unit = granularityString.substring(granularityString.length - 1); switch (unit) { case 'S': return `${monthString} ${day}, ${pad(hour)}:${pad(minute)}:${pad(second)}`; case 'M': var prefix = granularityString.substring(0, 2); return prefix === "PT" ? `${monthString} ${day}, ${hourToTwelve}:${pad(minute)}${amPm}` : `${monthString}, ${year}`; case 'H': return `${monthString} ${day}, ${year}, ${hourToTwelve}${amPm}`; case 'D': return `${monthString} ${day}, ${year}`; case 'W': return `${formatTimeRange(range, timezone, DisplayYear.ALWAYS)}`; default: return cleanISOString(wallTimeHelper(wallTimeStart).toISOString()); } }
function getWallTimeString(date, timezone, includeTime, delimiter) { const wallTimeISOString = cleanISOString(wallTimeHelper(chronoshift_1.WallTime.UTCToWallTime(date, timezone.toString())).toISOString()); if (includeTime) { return wallTimeISOString.replace('T', delimiter || ', '); } return wallTimeISOString.replace(/:\d\d/, '').split('T')[0]; }
function formatTimeRange(timeRange, timezone, displayYear) { var { start, end } = timeRange; var startWallTime = chronoshift_1.WallTime.UTCToWallTime(start, timezone.toString()); var endWallTime = chronoshift_1.WallTime.UTCToWallTime(end, timezone.toString()); var endWallTimeInclusive = getEndWallTimeInclusive(end, timezone); var showingYear = true; var formatted; if (startWallTime.getFullYear() !== endWallTimeInclusive.getFullYear()) { formatted = [FORMAT_WITH_YEAR(startWallTime), FORMAT_WITH_YEAR(endWallTimeInclusive)].join(' - '); } else { showingYear = displayYear === DisplayYear.ALWAYS || (displayYear === DisplayYear.IF_DIFF && !isCurrentYear(endWallTimeInclusive.getFullYear(), timezone)); var fmt = showingYear ? FORMAT_WITH_YEAR : FORMAT_WITHOUT_YEAR; if (startWallTime.getMonth() !== endWallTimeInclusive.getMonth() || startWallTime.getDate() !== endWallTimeInclusive.getDate()) { formatted = [FORMAT_WITHOUT_YEAR(startWallTime), fmt(endWallTimeInclusive)].join(' - '); } else { formatted = fmt(startWallTime); } } if (startWallTime.getHours() || startWallTime.getMinutes() || endWallTime.getHours() || endWallTime.getMinutes()) { formatted += (showingYear ? ' ' : ', '); var startTimeStr = formatTimeOfDay(startWallTime).toLowerCase(); var endTimeStr = formatTimeOfDay(endWallTime).toLowerCase(); if (startTimeStr === endTimeStr) { formatted += startTimeStr; } else { if (startTimeStr.substr(-2) === endTimeStr.substr(-2)) { startTimeStr = startTimeStr.substr(0, startTimeStr.length - 2); } formatted += [startTimeStr, endTimeStr].join('-'); } } return formatted; }
// calendar utils function monthToWeeks(firstDayOfMonth, timezone, locale) { const weeks = []; const firstDayNextMonth = chronoshift_1.month.shift(firstDayOfMonth, timezone, 1); let week = []; let currentPointer = chronoshift_1.day.floor(firstDayOfMonth, timezone); while (currentPointer < firstDayNextMonth) { var wallTime = chronoshift_1.WallTime.UTCToWallTime(currentPointer, timezone.toString()); if ((wallTime.getDay() === locale.weekStart || 0) && week.length > 0) { weeks.push(week); week = []; } week.push(currentPointer); currentPointer = chronoshift_1.day.shift(currentPointer, timezone, 1); } // push last week if (week.length > 0) weeks.push(week); return weeks; }
var express = require('express'); var path = require('path'); var logger = require('morgan'); var bodyParser = require('body-parser'); var compress = require('compression'); var chronoshift_1 = require('chronoshift'); // Init chronoshift if (!chronoshift_1.WallTime.rules) { var tzData = require("chronoshift/lib/walltime/walltime-data.js"); chronoshift_1.WallTime.init(tzData.rules, tzData.zones); } var config_1 = require('./config'); var plywoodRoutes = require('./routes/plywood/plywood'); var plyqlRoutes = require('./routes/plyql/plyql'); var pivotRoutes = require('./routes/pivot/pivot'); var healthRoutes = require('./routes/health/health'); var views_1 = require('./views'); var serverRoot = '/pivot'; if (config_1.SERVER_ROOT) { var serverRoot = config_1.SERVER_ROOT; if (serverRoot[0] !== '/') serverRoot = '/' + serverRoot; } var app = express(); app.disable('x-powered-by'); app.use(compress()); app.use(logger('dev')); app.use('/', express.static(path.join(__dirname, '../../build/public'))); app.use(serverRoot, express.static(path.join(__dirname, '../../build/public'))); app.use('/', express.static(path.join(__dirname, '../../assets'))); app.use(serverRoot, express.static(path.join(__dirname, '../../assets')));
var { expect } = require("chai"); var { WallTime } = require('chronoshift'); if (!WallTime.rules) { var tzData = require("chronoshift/lib/walltime/walltime-data.js"); WallTime.init(tzData.rules, tzData.zones); } var { testImmutableClass } = require("immutable-class/build/tester"); var plywood = require('../../build/plywood'); var { Action, $, ply, r, MatchAction } = plywood; describe("Actions", () => { it("is immutable class", () => { testImmutableClass(Action, [ { action: 'filter', expression: { op: 'chain', expression: { op: 'ref', name: 'myVar' }, action: { action: 'is', expression: { op: 'literal', value: 5 } } } }, { action: 'split', name: 'Page', expression: { op: 'ref', name: 'page' }, dataName: 'myData' }, {
function getEndWallTimeInclusive(exclusiveEnd, timezone) { return chronoshift_1.WallTime.UTCToWallTime(exclusiveToInclusiveEnd(exclusiveEnd), timezone.toString()); }
function isCurrentYear(year, timezone) { var nowWallTime = chronoshift_1.WallTime.UTCToWallTime(new Date(), timezone.toString()); return nowWallTime.getFullYear() === year; }
function getWallTimeMonthWithYear(date, timezone) { return FORMAT_FULL_MONTH_WITH_YEAR(chronoshift_1.WallTime.UTCToWallTime(date, timezone.toString())); }
function getWallTimeDay(date, timezone) { return chronoshift_1.WallTime.UTCToWallTime(date, timezone.toString()).getDate(); }