Socket
Socket
Sign inDemoInstall

cronofy-elements

Package Overview
Dependencies
0
Maintainers
3
Versions
171
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.8.0 to 1.8.1

build/CronofyElements.v1.8.1.js

2

package.json
{
"name": "cronofy-elements",
"version": "1.8.0",
"version": "1.8.1",
"description": "Fast track scheduling with Cronofy's embeddable UI Elements",

@@ -5,0 +5,0 @@ "main": "build/npm/CronofyElements.js",

import React, { useState, useEffect } from "react";
import moment from "moment";
import moment from "moment-timezone";

@@ -19,4 +19,8 @@ import * as connections from "../../helpers/connections";

const Agenda = ({ options }) => {
const [i18n, setI18n] = useState(
i18nConstructor("agenda", options.locale, options.translations)
);
const [status, setStatus] = useState({
active_date: moment(new Date()).format(`YYYY-MM-DD`),
active_date: i18n.f(moment(new Date()), `YYYY-MM-DD`),
direction: "forwards",

@@ -28,6 +32,2 @@ expanded: false,

const [i18n, setI18n] = useState(
i18nConstructor("agenda", options.locale, options.translations)
);
const [theme, setTheme] = useState({

@@ -50,8 +50,4 @@ ...parseStyleOptions(options.styles, "CronofyAgenda", options)

include_managed: true,
from: moment(new Date())
.add(-7, "days")
.format(`YYYY-MM-DD`),
to: moment(new Date())
.add(7, "days")
.format(`YYYY-MM-DD`),
from: i18n.f(moment(new Date()).add(-7, "days"), `YYYY-MM-DD`),
to: i18n.f(moment(new Date()).add(7, "days"), `YYYY-MM-DD`),
calendar_ids: [

@@ -115,8 +111,8 @@ "cal_W5elKlyS6wzAQA@8_l7Ru5zMU3807cP8TSG87yQ",

const args = { ...state.args };
args.from = moment(from)
.add(0 - state.offset, "days")
.format(`YYYY-MM-DD`);
args.to = moment(from)
.add(state.offset, "days")
.format(`YYYY-MM-DD`);
const fromObj = moment(from).add(0 - state.offset, "days");
const toObj = moment(from).add(state.offset, "days");
args.from = i18n.f(fromObj, `YYYY-MM-DD`);
args.to = i18n.f(toObj, `YYYY-MM-DD`);
setState({

@@ -140,8 +136,8 @@ ...state,

const diff = utils.checkDirection(today, oldFrom);
newDate = today.format(`YYYY-MM-DD`);
newDate = i18n.f(today, "YYYY-MM-DD");
setDates(newDate, diff);
break;
case "prev":
newDate = oldFrom.subtract(1, "days").format(`YYYY-MM-DD`);
setDates(newDate, "backwards");
newDate = oldFrom.subtract(1, "days");
setDates(i18n.f(newDate, "YYYY-MM-DD"), "backwards");
break;

@@ -151,4 +147,4 @@ case "next":

default:
newDate = oldFrom.add(1, "days").format(`YYYY-MM-DD`);
setDates(newDate, "forwards");
newDate = oldFrom.add(1, "days");
setDates(i18n.f(newDate, "YYYY-MM-DD"), "forwards");
}

@@ -163,6 +159,2 @@ };

useEffect(() => {
moment.locale(options.locale);
}, []);
useEffect(() => {
const targetDate = status.active_date;

@@ -169,0 +161,0 @@ const loadedDays = { ...eventData.days };

import React, { useContext } from "react";
import moment from "moment";
import moment from "moment-timezone";
import { css, jsx } from "@emotion/core";

@@ -32,3 +32,3 @@

const today = moment(new Date()).format(`YYYY-MM-DD`);
const today = i18n.f(moment(new Date()), "YYYY-MM-DD");
const limit = calculateLimit(status.active_date, today);

@@ -35,0 +35,0 @@ const eventsByType = sortEventsByType(events);

import React, { useContext } from "react";
import moment from "moment";
import moment from "moment-timezone";
import { css, jsx } from "@emotion/core";

@@ -126,3 +126,3 @@

<span className={`${theme.prefix}__nav-date__number`}>
{dateObject.format("D")}
{i18n.f(dateObject, "D")}
</span>

@@ -138,3 +138,3 @@ <span

>
{dateObject.format("Do").replace(/[0-9]/g, "")}
{i18n.f(dateObject, "Do").replace(/[0-9]/g, "")}
</span>

@@ -155,3 +155,3 @@ </div>

>
{dateObject.format("dddd")}
{i18n.f(dateObject, "dddd")}
</span>

@@ -165,3 +165,3 @@ <span

>
{dateObject.format("MMMM")}
{i18n.f(dateObject, "MMMM")}
</span>

@@ -168,0 +168,0 @@ </div>

import React, { useContext } from "react";
import { css, jsx } from "@emotion/core";
import moment from "moment";
import moment from "moment-timezone";

@@ -14,5 +14,6 @@ import EventWrapper from "./EventWrapper";

import { CalendarsContext, ThemeContext } from "./Agenda";
import { CalendarsContext, I18nContext, ThemeContext } from "./Agenda";
const EventDetails = props => {
const i18n = useContext(I18nContext);
const theme = useContext(ThemeContext);

@@ -67,5 +68,3 @@ const calendars = useContext(CalendarsContext);

<span
className={`${theme.prefix}__event__title ${
theme.prefix
}__event__title--expanded`}
className={`${theme.prefix}__event__title ${theme.prefix}__event__title--expanded`}
>

@@ -75,3 +74,3 @@ {props.event.summary}

<span className={`${theme.prefix}__event__date--expanded`}>
{moment(props.date).format("LL")}
{i18n.f(moment(props.date), "LL")}
</span>

@@ -78,0 +77,0 @@ <EventTime

import React, { useContext } from "react";
import moment from "moment";
import moment from "moment-timezone";
import { dayNumbersString, checkISO8601 } from "../../helpers/events";

@@ -16,3 +16,3 @@

// Normal time display
let times = `${startObj.format("LT")} - ${endObj.format("LT")}`;
let times = `${i18n.f(startObj, "LT")} - ${i18n.f(endObj, "LT")}`;
// Does the event run over multiple days?

@@ -19,0 +19,0 @@ let daysString = i18n.t("all_day");

import React, { useState, useEffect } from "react";
import { css, jsx } from "@emotion/core";
import moment from "moment";

@@ -87,4 +86,2 @@ import * as connections from "../../helpers/connections";

useEffect(() => {
moment.locale(options.locale);
// Query the API for rules and calendars, but don't do anything until

@@ -91,0 +88,0 @@ // we've heard back from both.

import React, { useContext } from "react";
import { css, jsx } from "@emotion/core";
import moment from "moment";
import moment from "moment-timezone";
import {
ExtrasContext,
StatusContext,
ThemeContext
} from "./AvailabilityRules";
import { ExtrasContext, I18nContext, ThemeContext } from "./AvailabilityRules";

@@ -21,12 +17,8 @@ const dayLookup = {

const dayName = ({ day, locale }) => {
return moment(dayLookup[day], "YYYY-MM-DD", true)
.locale(locale)
.format("ddd");
};
const DayLabel = ({ day, height }) => {
const i18n = useContext(I18nContext);
const [theme, setTheme] = useContext(ThemeContext);
const [status, setStatus] = useContext(StatusContext);
const dayObject = moment(dayLookup[day], "YYYY-MM-DD", true);
return (

@@ -44,3 +36,3 @@ <div

>
{dayName({ day, locale: status.locale })}
{i18n.f(dayObject, "ddd")}
</div>

@@ -47,0 +39,0 @@ );

import React, { useContext } from "react";
import { css, jsx } from "@emotion/core";
import moment from "moment";
import moment from "moment-timezone";
import { transparentize } from "polished";

@@ -35,9 +35,7 @@

const startTimeString = moment(slot.start, "HH:mm")
.format("LT")
.replace(" ", "");
const startTime = moment(slot.start, "HH:mm");
const startTimeString = i18n.f(startTime, "LT").replace(" ", "");
const endTimeString = moment(slot.end, "HH:mm")
.format("LT")
.replace(" ", "");
const endTime = moment(slot.end, "HH:mm");
const endTimeString = i18n.f(endTime, "LT").replace(" ", "");

@@ -44,0 +42,0 @@ const timeString = `${startTimeString} - ${endTimeString}`;

import React, { useState, useContext } from "react";
import moment from "moment";
import moment from "moment-timezone";
import { css, jsx } from "@emotion/core";
import {
ExtrasContext,
I18nContext,
ThemeContext,
StaticSlotsContext,
ExtrasContext,
ThemeContext
StatusContext
} from "./AvailabilityRules";

@@ -13,6 +15,8 @@ import TimeSelector from "./TimeSelector";

const TimeLabel = ({ slot, height, open }) => {
const i18n = useContext(I18nContext);
const [status, setStatus] = useContext(StatusContext);
const [theme, setTheme] = useContext(ThemeContext);
const timeObject = moment(slot.start, "HH:mm");
const isOnTheHour = timeObject.minute() === 0;
const timeString = timeObject.format("LT").replace(" ", "");
const timeString = i18n.f(timeObject, "LT").replace(" ", "");
return (

@@ -19,0 +23,0 @@ <div

import React, { useContext } from "react";
import { css, jsx } from "@emotion/core";
import { transparentize } from "polished";
import moment from "moment";
import moment from "moment-timezone";

@@ -80,5 +80,3 @@ import { ExtrasContext, I18nContext, ThemeContext } from "./AvailabilityRules";

<option key={`start_${time}`} value={time}>
{moment(time, "HH:mm")
.format("LT")
.replace(" ", "")}
{i18n.f(moment(time, "HH:mm"), "LT").replace(" ", "")}
</option>

@@ -91,5 +89,3 @@ ));

<option key={`end_${time}`} value={time}>
{moment(time, "HH:mm")
.format("LT")
.replace(" ", "")}
{i18n.f(moment(time, "HH:mm"), "LT").replace(" ", "")}
</option>

@@ -96,0 +92,0 @@ ));

import React, { useContext } from "react";
import { css, jsx } from "@emotion/core";
import moment from "moment";
import moment from "moment-timezone";

@@ -17,3 +17,2 @@ import {

const days = staticSlots.map((slot, i) => {
const isEndOfHour = moment(slot.end, "HH:mm").minutes() === 0;
const isStartOfHour = moment(slot.start, "HH:mm").minutes() === 0;

@@ -20,0 +19,0 @@

@@ -109,6 +109,2 @@ import React, { useState, useEffect } from "react";

useEffect(() => {
moment.locale(options.locale);
}, []);
useEffect(() => {
triggerSlotsForWeek();

@@ -115,0 +111,0 @@

@@ -5,6 +5,10 @@ import React, { useContext } from "react";

import { ThemeContext } from "./AvailabilityViewer";
import { I18nContext, ThemeContext } from "./AvailabilityViewer";
const ColumnHeader = ({ day }) => {
const i18n = useContext(I18nContext);
const [theme, setTheme] = useContext(ThemeContext);
const dayObject = moment.tz(day.day, "YYYY-MM-DD", status.tzid);
const dayName = i18n.f(dayObject, "ddd");
const dayNumber = i18n.f(dayObject, "D");
return (

@@ -30,6 +34,6 @@ <div

>
{moment.tz(day.day, "YYYY-MM-DD", status.tzid).format("ddd")}
{dayName}
</span>{" "}
<span className={`${theme.prefix}__column-header__ordinal`}>
{moment.tz(day.day, "YYYY-MM-DD", status.tzid).format("D")}
{dayNumber}
</span>

@@ -36,0 +40,0 @@ </div>

@@ -5,3 +5,3 @@ import React, { useContext, useState } from "react";

import { ThemeContext, StatusContext } from "./AvailabilityViewer";
import { I18nContext, ThemeContext, StatusContext } from "./AvailabilityViewer";
import { LabelsContext } from "./WeekWrapper";

@@ -13,2 +13,3 @@ import TimeSelector from "./TimeSelector";

const [selectionVisibility, setSelectionVisibility] = useState(false);
const i18n = useContext(I18nContext);
const [status, setStatus] = useContext(StatusContext);

@@ -55,3 +56,3 @@ const [theme, setTheme] = useContext(ThemeContext);

>
{localStart.format("LT").replace(" ", "")}
{i18n.f(localStart, "LT").replace(" ", "")}
</span>

@@ -58,0 +59,0 @@ );

@@ -22,10 +22,11 @@ import React, { useContext } from "react";

const startDisplay = moment
.tz(slot.start, "YYYY-MM-DDTTHH:mm:00Z", status.tzid)
.format("LT")
.replace(" ", "");
const endDisplay = moment
.tz(slot.end, "YYYY-MM-DDTTHH:mm:00Z", status.tzid)
.format("LT")
.replace(" ", "");
const startObject = moment.tz(
slot.start,
"YYYY-MM-DDTTHH:mm:00Z",
status.tzid
);
const endObject = moment.tz(slot.end, "YYYY-MM-DDTTHH:mm:00Z", status.tzid);
const startDisplay = i18n.f(startObject, "LT").replace(" ", "");
const endDisplay = i18n.f(endObject, "LT").replace(" ", "");
const timeDisplay = `${startDisplay} - ${endDisplay}`;

@@ -32,0 +33,0 @@

import React, { useContext } from "react";
import { css, jsx } from "@emotion/core";
import moment from "moment";
import moment from "moment-timezone";

@@ -5,0 +5,0 @@ import { ThemeContext } from "./AvailabilityViewer";

@@ -6,3 +6,3 @@ import React, { useState, useContext, useEffect } from "react";

import { HoverContext, SelectionContext } from "./Week";
import { StatusContext, ThemeContext } from "./AvailabilityViewer";
import { I18nContext, StatusContext, ThemeContext } from "./AvailabilityViewer";

@@ -13,2 +13,3 @@ import { buttonReset } from "../../styles/utils";

const Slot = ({ slot, day, topSlot, columnCount }) => {
const i18n = useContext(I18nContext);
const [hover, setHover] = useContext(HoverContext);

@@ -32,11 +33,12 @@ const [selectedSlots, setSelectedSlots] = useContext(SelectionContext);

const defaultTimeDisplayStart = i18n
.f(moment(slot.start, "YYYY-MM-DDTTHH:mm:00Z").tz(status.tzid), "LT")
.replace(" ", "");
const defaultTimeDisplayEnd = i18n
.f(moment(slot.end, "YYYY-MM-DDTTHH:mm:00Z").tz(status.tzid), "LT")
.replace(" ", "");
// Default time display
const [timeDisplay, setTimeDisplay] = useState(
`${moment(slot.start, "YYYY-MM-DDTTHH:mm:00Z")
.tz(status.tzid)
.format("LT")
.replace(" ", "")} - ${moment
.tz(slot.end, "YYYY-MM-DDTTHH:mm:00Z", status.tzid)
.format("LT")
.replace(" ", "")}`
`${defaultTimeDisplayStart} - ${defaultTimeDisplayEnd}`
);

@@ -92,14 +94,14 @@

useEffect(() => {
setTimeDisplay(
`${moment(slotData.slot.start, "YYYY-MM-DDTTHH:mm:00Z")
.tz(status.tzid)
.format("LT")
.replace(" ", "")} - ${moment(
slotData.slot.end,
"YYYY-MM-DDTTHH:mm:00Z"
)
.tz(status.tzid)
.format("LT")
.replace(" ", "")}`
const timeStart = moment(
slotData.slot.start,
"YYYY-MM-DDTTHH:mm:00Z"
).tz(status.tzid);
const timeDisplayStart = i18n.f(timeStart, "LT").replace(" ", "");
const timeEnd = moment(slotData.slot.end, "YYYY-MM-DDTTHH:mm:00Z").tz(
status.tzid
);
const timeDisplayEnd = i18n.f(timeEnd, "LT").replace(" ", "");
setTimeDisplay(`${timeDisplayStart} - ${timeDisplayEnd}`);
}, [slotData]);

@@ -106,0 +108,0 @@

@@ -74,5 +74,4 @@ import React, { useContext } from "react";

<option key={`start_${time}`} value={time}>
{moment
.tz(time, "HH:mm", status.tzid)
.format("LT")
{i18n
.f(moment.tz(time, "HH:mm", status.tzid), "LT")
.replace(" ", "")}

@@ -91,5 +90,4 @@ </option>

<option key={`end_${time}`} value={time}>
{moment
.tz(time, "HH:mm", status.tzid)
.format("LT")
{i18n
.f(moment.tz(time, "HH:mm", status.tzid), "LT")
.replace(" ", "")}

@@ -96,0 +94,0 @@ </option>

import React, { useState, useEffect } from "react";
import { css, jsx } from "@emotion/core";
import moment from "moment";

@@ -75,6 +74,2 @@ import * as connections from "../../helpers/connections";

useEffect(() => {
moment.locale(options.locale);
}, []);
useEffect(() => {
if (status.reload === false) {

@@ -81,0 +76,0 @@ return;

import React, { useContext } from "react";
import { css, jsx } from "@emotion/core";
import moment from "moment";
import moment from "moment-timezone";

@@ -82,3 +82,3 @@ import Button from "../generic/Button";

>
{moment(details.start).format(`dddd Do MMMM`)}
{i18n.f(moment(details.start), "dddd Do MMMM")}
</span>

@@ -103,9 +103,4 @@ </div>

>
{moment(details.start)
.format("LT")
.replace(" ", "")}{" "}
-{" "}
{moment(details.end)
.format("LT")
.replace(" ", "")}
{i18n.f(moment(details.start), "LT").replace(" ", "")} -{" "}
{i18n.f(moment(details.end), "LT").replace(" ", "")}
</div>

@@ -112,0 +107,0 @@ <div

import React, { useState, useEffect } from "react";
import moment from "moment";
import moment from "moment-timezone";
import { css, jsx } from "@emotion/core";

@@ -118,4 +118,2 @@

useEffect(() => {
moment.locale(options.locale);
const query = {

@@ -145,7 +143,9 @@ response_format: "overlapping_slots",

const daysFromPeriods = getDaysFromAvailablePeriods(
res.available_slots
res.available_slots,
status.locale
);
const calculatedSlots = arangeSlotsByDay(
daysFromPeriods,
res.available_slots
res.available_slots,
status.locale
);

@@ -152,0 +152,0 @@

import React, { useContext } from "react";
import moment from "moment";
import moment from "moment-timezone";
import { css, jsx } from "@emotion/core";

@@ -73,3 +73,4 @@

>
{moment(slots.day, "YYYY-MM-DDTThh:mm:00Z").format(
{i18n.f(
moment(slots.day, "YYYY-MM-DDTThh:mm:00Z"),
`dddd Do MMMM`

@@ -76,0 +77,0 @@ )}

@@ -1,2 +0,2 @@

import moment from "moment";
import moment from "moment-timezone";
import merge from "deepmerge";

@@ -3,0 +3,0 @@ import { uniqueItems } from "./utils";

@@ -98,3 +98,5 @@ import { turnSlugIntoString } from "./utils";

) => ({
t: slug => i18n(context, slug, locale, allPhrases)
t: slug => i18n(context, slug, locale, allPhrases),
f: (momentObject, formatString) =>
momentObject.locale(locale).format(formatString)
});

@@ -6,2 +6,3 @@ const moment = require("moment-timezone");

periods,
locale,
getUniques = uniqueItems

@@ -16,3 +17,5 @@ ) => {

const days = uniqueDays.map(day => ({
label: moment(day).format(`dddd Do MMMM`),
label: moment(day)
.locale(locale)
.format(`dddd Do MMMM`),
value: moment(day).format(`YYYY-MM-DDT[T09:00:00Z]`)

@@ -111,3 +114,3 @@ }));

export const arangeSlotsByDay = (days, available_periods) =>
export const arangeSlotsByDay = (days, available_periods, locale) =>
days.reduce(

@@ -119,10 +122,12 @@ (acc, day) => ({

period =>
moment(period.start).format(
`YYYY-MM-DDT[T09:00:00Z]`
) === day.value
moment(period.start)
.locale(locale)
.format(`YYYY-MM-DDT[T09:00:00Z]`) === day.value
)
.map(slot => ({
label: `${moment(slot.start)
.locale(locale)
.format("LT")
.replace(" ", "")} - ${moment(slot.end)
.locale(locale)
.format("LT")

@@ -129,0 +134,0 @@ .replace(" ", "")}`,

@@ -1,2 +0,2 @@

import moment from "moment";
import moment from "moment-timezone";

@@ -3,0 +3,0 @@ import { createEmptySlotsForPeriod, roundPeriod } from "./slots";

import * as connections from "./connections";
import moment from "moment";
import moment from "moment-timezone";
import { default_availability_rules } from "./mocks";

@@ -4,0 +4,0 @@

import React from "react";
import moment from "moment";

@@ -27,3 +26,2 @@ import AgendaApp from "./components/Agenda/Agenda";

const LOCALE = getNavigatorLanguage();
moment.locale(LOCALE);

@@ -30,0 +28,0 @@ const globalOptionFallbacks = {

import * as slotsHelpers from "../src/js/helpers/slots";
import moment from "moment";
import moment from "moment-timezone";

@@ -39,3 +39,6 @@ describe("Slots helpers", () => {

const days = slotsHelpers.getDaysFromAvailablePeriods(mockData);
const days = slotsHelpers.getDaysFromAvailablePeriods(
mockData,
"en-US"
);

@@ -288,5 +291,5 @@ expect(days).toEqual(expectedResult);

const result = slotsHelpers.arangeSlotsByDay(days, slots);
const result = slotsHelpers.arangeSlotsByDay(days, slots, "en-US");
expect(result).toEqual(expectedResult);
});
});

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc