@contentful/field-editor-date 1.1.10 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/dist/DatepickerInput.d.ts +2 -14
- package/dist/field-editor-date.cjs.development.js +133 -277
- package/dist/field-editor-date.cjs.development.js.map +1 -1
- package/dist/field-editor-date.cjs.production.min.js +1 -1
- package/dist/field-editor-date.cjs.production.min.js.map +1 -1
- package/dist/field-editor-date.esm.js +136 -279
- package/dist/field-editor-date.esm.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/utils/date.d.ts +0 -2
- package/package.json +6 -11
- package/dist/icons/CalendarIcon.d.ts +0 -5
- package/dist/utils/createPikaday.d.ts +0 -2
- package/styles/styles.css +0 -213
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-editor-date.esm.js","sources":["../src/utils/date.ts","../src/utils/createPikaday.ts","../src/icons/CalendarIcon.tsx","../src/DatepickerInput.tsx","../src/TimepickerInput.tsx","../src/utils/zoneOffsets.ts","../src/TimezonePickerInput.tsx","../src/DateEditor.tsx"],"sourcesContent":["// eslint-disable-next-line -- TODO: describe this disable no-restricted-imports\nimport moment from 'moment';\nimport { TimeResult } from '../types';\n\nconst ZONE_RX = /(Z|[+-]\\d{2}[:+]?\\d{2})$/;\n\nfunction startOfToday(format: string) {\n return moment().set({ hours: 0, minutes: 0 }).format(format);\n}\n\nfunction fieldValueToMoment(datetimeString: string | null | undefined): moment.Moment | null {\n if (!datetimeString) {\n return null;\n }\n\n const datetime = moment(datetimeString);\n if (ZONE_RX.test(datetimeString)) {\n datetime.utcOffset(datetimeString);\n }\n return datetime;\n}\n\nfunction timeFromUserInput(input: TimeResult) {\n const timeInput = input.time || '00:00';\n return moment.utc(timeInput + '!' + input.ampm, 'HH:mm!A');\n}\n\n/**\n * Convert the user input object into either a 'moment' value or an\n * invalid symbol.\n *\n * Success is indicated by returning '{valid: value}' and failure is\n * indicated by returning '{invalid: true}'. If 'input.date' is\n * 'null' we return '{valid: null}'\n */\nfunction datetimeFromUserInput(input: TimeResult): {\n invalid?: boolean;\n valid: moment.Moment | null;\n} {\n if (!input.date) {\n return { valid: null };\n }\n\n const time = timeFromUserInput(input);\n\n const date = moment\n .parseZone(input.utcOffset, 'Z')\n .set(input.date.toObject())\n .set({ hours: time.hours(), minutes: time.minutes() });\n\n if (date.isValid()) {\n return { valid: date };\n } else {\n return { invalid: true, valid: null };\n }\n}\n\nexport function formatDateDisplay(date?: moment.Moment) {\n if (date) {\n return date.format('dddd, MMMM Do YYYY');\n } else {\n return '';\n }\n}\n\n/**\n * Parse user input into a string that is stored in the API.\n *\n * Returns a sum type with either the string as the `valid` property\n * or the `invalid` property set to `false`.\n */\nexport function buildFieldValue({\n data,\n usesTime,\n usesTimezone,\n}: {\n data: TimeResult;\n usesTime: boolean;\n usesTimezone: boolean;\n}) {\n const date = datetimeFromUserInput(data);\n if (date.invalid) {\n return {\n invalid: true,\n };\n }\n\n let format;\n if (usesTimezone) {\n format = 'YYYY-MM-DDTHH:mmZ';\n } else if (usesTime) {\n format = 'YYYY-MM-DDTHH:mm';\n } else {\n format = 'YYYY-MM-DD';\n }\n return { valid: date?.valid ? date.valid.format(format) : null, invalid: false };\n}\n\nexport function getDefaultAMPM() {\n return 'AM';\n}\n\nexport function getDefaultUtcOffset() {\n return startOfToday('Z');\n}\n\n/**\n * Create the user input object from the field value.\n */\nexport function userInputFromDatetime({\n value,\n uses12hClock,\n}: {\n value: string | undefined | null;\n uses12hClock: boolean;\n}): TimeResult {\n const datetime = fieldValueToMoment(value);\n\n if (datetime) {\n const timeFormat = uses12hClock ? 'hh:mm' : 'HH:mm';\n return {\n date: datetime,\n time: datetime.format(timeFormat),\n ampm: datetime.format('A'),\n utcOffset: datetime.format('Z'),\n };\n } else {\n return {\n ampm: getDefaultAMPM(),\n utcOffset: getDefaultUtcOffset(),\n };\n }\n}\n","import Pikaday from 'pikaday';\n\nconst I18N = {\n previousMonth: 'Previous Month',\n nextMonth: 'Next Month',\n months: [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n ],\n weekdaysShort: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n weekdays: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n};\n\nconst DEFAULTS = {\n i18n: I18N,\n yearRange: 100,\n};\n\n// Gets same options as Pikaday and returns a Pikaday instance\nexport const createPikaday = (opts?: Pikaday.PikadayOptions) =>\n new Pikaday(Object.assign({}, DEFAULTS, opts));\n","import React from 'react';\n\nexport function CalendarIcon(props: {\n className?: string;\n onClick?: React.MouseEventHandler<SVGElement>;\n}) {\n return (\n <svg\n width=\"16\"\n height=\"17\"\n viewBox=\"-1 -1 18 19\"\n onClick={props.onClick}\n xmlns=\"http://www.w3.org/2000/svg\"\n className={props.className}>\n <g fill=\"none\" fillRule=\"evenodd\">\n <g fill=\"#536171\">\n <path d=\"M2.071 14.929v-2.411h2.411v2.41h-2.41zm2.947 0v-2.411h2.678v2.41H5.018zM2.07 11.982V9.304h2.411v2.678h-2.41zm2.947 0V9.304h2.678v2.678H5.018zM2.07 8.768v-2.41h2.411v2.41h-2.41zm6.161 6.16v-2.41h2.679v2.41H8.232zm-3.214-6.16v-2.41h2.678v2.41H5.018zm6.428 6.16v-2.41h2.411v2.41h-2.41zm-3.214-2.946V9.304h2.679v2.678H8.232zM5.286 4.75a.275.275 0 0 1-.268.268h-.536a.275.275 0 0 1-.268-.268V2.34c0-.143.126-.269.268-.269h.536c.142 0 .268.126.268.268V4.75zm6.16 7.232V9.304h2.411v2.678h-2.41zM8.232 8.768v-2.41h2.679v2.41H8.232zm3.214 0v-2.41h2.411v2.41h-2.41zm.268-4.018a.275.275 0 0 1-.268.268h-.535a.275.275 0 0 1-.268-.268V2.34c0-.143.125-.269.268-.269h.535c.143 0 .268.126.268.268V4.75zm3.215-.536c0-.586-.486-1.071-1.072-1.071h-1.071v-.804c0-.736-.603-1.339-1.34-1.339h-.535c-.737 0-1.34.603-1.34 1.34v.803H6.357v-.804C6.357 1.603 5.754 1 5.017 1h-.535c-.736 0-1.34.603-1.34 1.34v.803h-1.07C1.484 3.143 1 3.628 1 4.214V14.93C1 15.515 1.485 16 2.071 16h11.786c.586 0 1.072-.485 1.072-1.071V4.214z\" />\n </g>\n </g>\n </svg>\n );\n}\n","import React, { Component, FocusEventHandler, FocusEvent } from 'react';\nimport noop from 'lodash/noop';\n// eslint-disable-next-line -- TODO: describe this disable no-restricted-imports\nimport moment from 'moment';\nimport { css, cx } from 'emotion';\nimport { formatDateDisplay } from './utils/date';\nimport { createPikaday } from './utils/createPikaday';\nimport { CalendarIcon } from './icons/CalendarIcon';\n\nimport { TextInput } from '@contentful/f36-components';\n\nconst styles = {\n datePickerWrapper: css({\n position: 'relative',\n maxHeight: 70,\n }),\n datePicker: css({\n zIndex: 1002,\n display: 'block',\n '.is-hidden': {\n display: 'none',\n },\n }),\n input: css({\n width: '270px',\n cursor: 'pointer',\n paddingRight: '40px',\n '&:disabled': {\n cursor: 'not-allowed',\n },\n }),\n icon: css({\n cursor: 'pointer',\n zIndex: 50,\n position: 'absolute',\n top: '12px',\n right: '12px',\n }),\n};\n\nexport type DatePickerProps = {\n value?: moment.Moment;\n onChange: (val: moment.Moment | undefined) => void;\n onBlur: FocusEventHandler;\n disabled?: boolean;\n};\n\nexport class DatepickerInput extends Component<DatePickerProps> {\n static defaultProps: Partial<DatePickerProps> = {\n onChange: noop,\n onBlur: noop,\n };\n\n pikaday?: Pikaday;\n datePickerNode = React.createRef<HTMLInputElement>();\n\n componentDidMount() {\n const onChange = this.props.onChange;\n const defaultDate = this.props.value ? this.props.value.toDate() : undefined;\n this.pikaday = createPikaday({\n field: this.datePickerNode && this.datePickerNode.current,\n defaultDate,\n setDefaultDate: defaultDate !== undefined,\n position: 'bottom left',\n reposition: false,\n theme: cx(styles.datePicker, 'hide-carret'),\n toString: (date) => {\n return formatDateDisplay(moment(date));\n },\n // we need to keep this function like this\n // so `this` refers to pikaday instance\n onSelect: function onSelect() {\n onChange(this.getMoment() || undefined);\n },\n });\n }\n\n focusInput = () => {\n if (this.datePickerNode && this.datePickerNode.current) {\n this.datePickerNode.current.focus();\n }\n };\n\n componentWillUnmount() {\n if (this.pikaday) {\n this.pikaday.destroy();\n }\n }\n\n handleOpen = () => {\n if (this.pikaday) {\n this.pikaday.show();\n }\n };\n\n handleBlur = (e: FocusEvent) => {\n this.props.onBlur(e);\n if (this.pikaday && !this.pikaday.el.contains(e.relatedTarget as HTMLInputElement)) {\n this.pikaday.hide();\n }\n };\n\n render() {\n return (\n <div className={styles.datePickerWrapper}>\n <TextInput\n aria-label=\"Select date\"\n testId=\"date-input\"\n isReadOnly\n isDisabled={this.props.disabled}\n value={formatDateDisplay(this.props.value)}\n ref={this.datePickerNode}\n onFocus={this.handleOpen}\n onBlur={this.handleBlur}\n className={styles.input}\n />\n <CalendarIcon\n onClick={() => {\n this.focusInput();\n }}\n className={styles.icon}\n />\n </div>\n );\n }\n}\n","import React, { useState, useCallback, useEffect } from 'react';\n// eslint-disable-next-line -- TODO: describe this disable no-restricted-imports\nimport moment from 'moment';\nimport { css } from 'emotion';\n\nimport { TextInput, Flex } from '@contentful/f36-components';\n\nexport type TimepickerProps = {\n disabled: boolean;\n uses12hClock: boolean;\n onChange: (value: { time: string; ampm: string }) => void;\n time?: string;\n ampm?: string;\n};\n\nconst validInputFormats = [\n 'hh:mm a',\n 'hh:mm A',\n 'h:mm a',\n 'h:mm A',\n 'hh:mm',\n 'k:mm',\n 'kk:mm',\n 'h a',\n 'h A',\n 'h',\n 'hh',\n 'HH',\n];\n\nfunction parseRawInput(raw: string): moment.Moment | null {\n let time: moment.Moment | null = null;\n\n // eslint-disable-next-line -- TODO: describe this disable @typescript-eslint/prefer-for-of\n for (let i = 0; i < validInputFormats.length; i++) {\n const date = moment(raw, validInputFormats[i]);\n if (date.isValid()) {\n time = date;\n break;\n }\n }\n\n return time;\n}\n\nconst getDefaultTime = () => {\n return moment(`12:00 AM`, 'hh:mm A');\n};\n\nconst formatToString = (uses12hClock: boolean, value: moment.Moment): string => {\n return uses12hClock ? value.format('hh:mm A') : value.format('HH:mm');\n};\n\nexport const TimepickerInput = ({\n disabled,\n uses12hClock,\n time = '12:00',\n ampm = 'AM',\n onChange,\n}: TimepickerProps) => {\n const [selectedTime, setSelectedTime] = useState<string>(() => {\n return formatToString(uses12hClock, getDefaultTime());\n });\n\n useEffect(() => {\n setSelectedTime(formatToString(uses12hClock, moment(`${time} ${ampm}`, 'hh:mm A')));\n }, [time, ampm, uses12hClock]);\n\n const handleChange = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\n setSelectedTime(e.currentTarget.value);\n }, []);\n\n const handleFocus = useCallback((e) => {\n e.preventDefault();\n e.target.select();\n }, []);\n\n const handleBlur = () => {\n const parsedTime = parseRawInput(selectedTime);\n const value = parsedTime ?? getDefaultTime();\n setSelectedTime(formatToString(uses12hClock, value));\n onChange({ time: value.format('hh:mm'), ampm: value.format('A') });\n };\n\n return (\n <Flex className={css({ width: '145px' })}>\n <TextInput\n aria-label=\"Select time\"\n placeholder={uses12hClock ? '12:00 AM' : '00:00'}\n date-time-type={uses12hClock ? '12' : '24'}\n testId=\"time-input\"\n value={selectedTime}\n isDisabled={disabled}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onChange={handleChange}\n />\n </Flex>\n );\n};\n","export const defaultZoneOffset = '+00:00';\n\nexport const zoneOffsets = [\n '-12:00',\n '-11:00',\n '-10:00',\n '-09:30',\n '-09:00',\n '-08:00',\n '-07:00',\n '-06:00',\n '-05:00',\n '-04:30',\n '-04:00',\n '-03:30',\n '-03:00',\n '-02:00',\n '-01:00',\n '+00:00',\n '+01:00',\n '+02:00',\n '+03:00',\n '+03:30',\n '+04:00',\n '+04:30',\n '+05:00',\n '+05:30',\n '+05:45',\n '+06:00',\n '+06:30',\n '+07:00',\n '+08:00',\n '+08:45',\n '+09:00',\n '+09:30',\n '+10:00',\n '+10:30',\n '+11:00',\n '+11:30',\n '+12:00',\n '+12:45',\n '+13:00',\n '+14:00',\n];\n","import React, { ChangeEvent } from 'react';\nimport { zoneOffsets, defaultZoneOffset } from './utils/zoneOffsets';\n\nimport { Select } from '@contentful/f36-components';\n\nexport type TimezonepickerProps = {\n disabled: boolean;\n onChange: (value: string) => void;\n value?: string;\n};\nexport const TimezonepickerInput = ({\n disabled,\n onChange,\n value = defaultZoneOffset,\n}: TimezonepickerProps) => {\n return (\n <Select\n aria-label=\"Select timezone\"\n testId=\"timezone-input\"\n value={value}\n isDisabled={disabled}\n onChange={(e: ChangeEvent<HTMLSelectElement>) => {\n onChange(e.currentTarget.value);\n }}>\n {zoneOffsets.map((offset) => (\n <Select.Option key={offset} value={offset}>\n UTC{offset}\n </Select.Option>\n ))}\n </Select>\n );\n};\n","import * as React from 'react';\nimport { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { FieldAPI, FieldConnector, ParametersAPI } from '@contentful/field-editor-shared';\nimport { DatepickerInput } from './DatepickerInput';\nimport { TimepickerInput } from './TimepickerInput';\nimport { TimezonepickerInput } from './TimezonePickerInput';\nimport {\n userInputFromDatetime,\n buildFieldValue,\n getDefaultAMPM,\n getDefaultUtcOffset,\n} from './utils/date';\nimport { TimeFormat, DateTimeFormat, TimeResult } from './types';\n\nimport { TextLink } from '@contentful/f36-components';\n\nexport interface DateEditorProps {\n /**\n * is the field disabled initially\n */\n isInitiallyDisabled: boolean;\n\n /**\n * sdk.field\n */\n field: FieldAPI;\n\n /**\n * sdk.parameters\n */\n parameters?: ParametersAPI & {\n instance?: {\n format?: DateTimeFormat;\n ampm?: TimeFormat;\n };\n };\n}\n\nconst styles = {\n root: css({\n display: 'flex',\n alignItems: 'center',\n }),\n separator: css({\n marginLeft: tokens.spacingM,\n }),\n};\n\nfunction useEffectWithoutFirstRender(callback: Function, deps: Array<any>) {\n const isFirstRun = React.useRef(true);\n React.useEffect(() => {\n if (isFirstRun.current) {\n isFirstRun.current = false;\n return;\n }\n callback();\n // eslint-disable-next-line react-hooks/exhaustive-deps -- TODO: Evaluate the dependencies\n }, deps);\n}\n\nfunction DateEditorContainer({\n initialValue,\n usesTime,\n usesTimezone,\n uses12hClock,\n disabled,\n hasClear,\n onChange,\n}: {\n initialValue: TimeResult;\n usesTime: boolean;\n usesTimezone: boolean;\n uses12hClock: boolean;\n disabled: boolean;\n hasClear: boolean;\n onChange: (value: TimeResult) => void;\n}) {\n const [value, setValue] = React.useState<TimeResult>(() => initialValue);\n\n useEffectWithoutFirstRender(() => {\n onChange(value);\n }, [value]);\n\n return (\n <div data-test-id=\"date-editor\" className={styles.root}>\n <DatepickerInput\n disabled={disabled}\n value={value.date}\n onChange={(date) => {\n setValue((value) => ({\n ...value,\n date,\n }));\n }}\n />\n {usesTime && (\n <>\n <div className={styles.separator} />\n <TimepickerInput\n disabled={disabled}\n time={value.time}\n ampm={value.ampm}\n onChange={({ time, ampm }) => {\n setValue((value) => ({\n ...value,\n time,\n ampm,\n }));\n }}\n uses12hClock={uses12hClock}\n />\n </>\n )}\n {usesTimezone && (\n <>\n <div className={styles.separator} />\n <TimezonepickerInput\n disabled={disabled}\n value={value.utcOffset}\n onChange={(utcOffset) => {\n setValue((value) => ({\n ...value,\n utcOffset,\n }));\n }}\n />\n </>\n )}\n {hasClear && (\n <>\n <div className={styles.separator} />\n <TextLink\n as=\"button\"\n isDisabled={disabled}\n testId=\"date-clear\"\n onClick={() => {\n setValue({\n date: undefined,\n time: undefined,\n ampm: getDefaultAMPM(),\n utcOffset: getDefaultUtcOffset(),\n });\n }}>\n Clear\n </TextLink>\n </>\n )}\n </div>\n );\n}\n\nexport function DateEditor(props: DateEditorProps) {\n const { field, parameters } = props;\n\n const formatParam = parameters?.instance?.format ?? 'timeZ';\n const ampmParam = parameters?.instance?.ampm ?? '24';\n\n const usesTime = formatParam !== 'dateonly';\n const usesTimezone = formatParam === 'timeZ';\n const uses12hClock = ampmParam === '12';\n\n return (\n <FieldConnector<string>\n field={field}\n isInitiallyDisabled={props.isInitiallyDisabled}\n throttle={0}>\n {({ value, disabled, setValue, externalReset }) => {\n const datetimeValue = userInputFromDatetime({\n value,\n uses12hClock,\n });\n return (\n <DateEditorContainer\n initialValue={datetimeValue}\n uses12hClock={uses12hClock}\n usesTimezone={usesTimezone}\n usesTime={usesTime}\n disabled={disabled}\n hasClear={Boolean(value)}\n onChange={(data) => {\n const fieldValue = buildFieldValue({ data, usesTime, usesTimezone });\n if (fieldValue.invalid) {\n return;\n }\n // if value is present - then override it with a new one\n // if value is not present - then set a new one if it's not nullable only\n if (Boolean(value) || (!value && Boolean(fieldValue.valid))) {\n setValue(fieldValue.valid);\n }\n }}\n key={`date-container-${externalReset}`}\n />\n );\n }}\n </FieldConnector>\n );\n}\n\nDateEditor.defaultProps = {\n isInitiallyDisabled: true,\n};\n"],"names":["ZONE_RX","startOfToday","format","moment","set","hours","minutes","fieldValueToMoment","datetimeString","datetime","test","utcOffset","timeFromUserInput","input","timeInput","time","utc","ampm","datetimeFromUserInput","date","valid","parseZone","toObject","isValid","invalid","formatDateDisplay","buildFieldValue","data","usesTime","usesTimezone","getDefaultAMPM","getDefaultUtcOffset","userInputFromDatetime","value","uses12hClock","timeFormat","I18N","previousMonth","nextMonth","months","weekdaysShort","weekdays","DEFAULTS","i18n","yearRange","createPikaday","opts","Pikaday","Object","assign","CalendarIcon","props","React","width","height","viewBox","onClick","xmlns","className","fill","fillRule","d","styles","datePickerWrapper","css","position","maxHeight","datePicker","zIndex","display","cursor","paddingRight","icon","top","right","DatepickerInput","createRef","datePickerNode","current","focus","pikaday","show","e","onBlur","el","contains","relatedTarget","hide","componentDidMount","onChange","defaultDate","toDate","undefined","field","setDefaultDate","reposition","theme","cx","toString","onSelect","getMoment","componentWillUnmount","destroy","render","TextInput","testId","isReadOnly","isDisabled","disabled","ref","onFocus","handleOpen","handleBlur","focusInput","Component","noop","validInputFormats","parseRawInput","raw","i","length","getDefaultTime","formatToString","TimepickerInput","useState","selectedTime","setSelectedTime","useEffect","handleChange","useCallback","currentTarget","handleFocus","preventDefault","target","select","parsedTime","Flex","placeholder","defaultZoneOffset","zoneOffsets","TimezonepickerInput","Select","map","offset","Option","key","root","alignItems","separator","marginLeft","tokens","spacingM","useEffectWithoutFirstRender","callback","deps","isFirstRun","DateEditorContainer","initialValue","hasClear","setValue","TextLink","as","DateEditor","parameters","formatParam","instance","ampmParam","FieldConnector","isInitiallyDisabled","throttle","externalReset","datetimeValue","Boolean","fieldValue","defaultProps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"field-editor-date.esm.js","sources":["../src/DatepickerInput.tsx","../src/TimepickerInput.tsx","../src/utils/zoneOffsets.ts","../src/TimezonePickerInput.tsx","../src/utils/date.ts","../src/DateEditor.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\n\nimport { Datepicker } from '@contentful/f36-components';\nimport { css } from 'emotion';\n// eslint-disable-next-line -- TODO: describe this disable no-restricted-imports\nimport moment from 'moment';\n\nconst YEAR_RANGE = 100;\n\nconst styles = {\n root: css({\n maxWidth: '270px',\n }),\n};\n\nexport type DatePickerProps = {\n value?: moment.Moment;\n onChange: (val: moment.Moment | undefined) => void;\n disabled?: boolean;\n};\n\nexport const DatepickerInput = (props: DatePickerProps) => {\n const [fromDate, toDate] = useMemo(() => {\n const fromDate = new Date();\n fromDate.setFullYear(fromDate.getFullYear() - YEAR_RANGE);\n const toDate = new Date();\n toDate.setFullYear(toDate.getFullYear() + YEAR_RANGE);\n\n return [fromDate, toDate];\n }, []);\n\n return (\n <Datepicker\n className={styles.root}\n selected={props.value?.toDate()}\n onSelect={(day) => {\n const momentDay = day ? moment(day) : undefined;\n props.onChange(momentDay);\n }}\n inputProps={{ isDisabled: props.disabled, placeholder: '' }}\n fromDate={fromDate}\n toDate={toDate}\n />\n );\n};\n","import React, { useState, useCallback, useEffect } from 'react';\n// eslint-disable-next-line -- TODO: describe this disable no-restricted-imports\nimport moment from 'moment';\nimport { css } from 'emotion';\n\nimport { TextInput, Flex } from '@contentful/f36-components';\n\nexport type TimepickerProps = {\n disabled: boolean;\n uses12hClock: boolean;\n onChange: (value: { time: string; ampm: string }) => void;\n time?: string;\n ampm?: string;\n};\n\nconst validInputFormats = [\n 'hh:mm a',\n 'hh:mm A',\n 'h:mm a',\n 'h:mm A',\n 'hh:mm',\n 'k:mm',\n 'kk:mm',\n 'h a',\n 'h A',\n 'h',\n 'hh',\n 'HH',\n];\n\nfunction parseRawInput(raw: string): moment.Moment | null {\n let time: moment.Moment | null = null;\n\n // eslint-disable-next-line -- TODO: describe this disable @typescript-eslint/prefer-for-of\n for (let i = 0; i < validInputFormats.length; i++) {\n const date = moment(raw, validInputFormats[i]);\n if (date.isValid()) {\n time = date;\n break;\n }\n }\n\n return time;\n}\n\nconst getDefaultTime = () => {\n return moment(`12:00 AM`, 'hh:mm A');\n};\n\nconst formatToString = (uses12hClock: boolean, value: moment.Moment): string => {\n return uses12hClock ? value.format('hh:mm A') : value.format('HH:mm');\n};\n\nexport const TimepickerInput = ({\n disabled,\n uses12hClock,\n time = '12:00',\n ampm = 'AM',\n onChange,\n}: TimepickerProps) => {\n const [selectedTime, setSelectedTime] = useState<string>(() => {\n return formatToString(uses12hClock, getDefaultTime());\n });\n\n useEffect(() => {\n setSelectedTime(formatToString(uses12hClock, moment(`${time} ${ampm}`, 'hh:mm A')));\n }, [time, ampm, uses12hClock]);\n\n const handleChange = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\n setSelectedTime(e.currentTarget.value);\n }, []);\n\n const handleFocus = useCallback((e) => {\n e.preventDefault();\n e.target.select();\n }, []);\n\n const handleBlur = () => {\n const parsedTime = parseRawInput(selectedTime);\n const value = parsedTime ?? getDefaultTime();\n setSelectedTime(formatToString(uses12hClock, value));\n onChange({ time: value.format('hh:mm'), ampm: value.format('A') });\n };\n\n return (\n <Flex className={css({ width: '145px' })}>\n <TextInput\n aria-label=\"Select time\"\n placeholder={uses12hClock ? '12:00 AM' : '00:00'}\n date-time-type={uses12hClock ? '12' : '24'}\n testId=\"time-input\"\n value={selectedTime}\n isDisabled={disabled}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onChange={handleChange}\n />\n </Flex>\n );\n};\n","export const defaultZoneOffset = '+00:00';\n\nexport const zoneOffsets = [\n '-12:00',\n '-11:00',\n '-10:00',\n '-09:30',\n '-09:00',\n '-08:00',\n '-07:00',\n '-06:00',\n '-05:00',\n '-04:30',\n '-04:00',\n '-03:30',\n '-03:00',\n '-02:00',\n '-01:00',\n '+00:00',\n '+01:00',\n '+02:00',\n '+03:00',\n '+03:30',\n '+04:00',\n '+04:30',\n '+05:00',\n '+05:30',\n '+05:45',\n '+06:00',\n '+06:30',\n '+07:00',\n '+08:00',\n '+08:45',\n '+09:00',\n '+09:30',\n '+10:00',\n '+10:30',\n '+11:00',\n '+11:30',\n '+12:00',\n '+12:45',\n '+13:00',\n '+14:00',\n];\n","import React, { ChangeEvent } from 'react';\nimport { zoneOffsets, defaultZoneOffset } from './utils/zoneOffsets';\n\nimport { Select } from '@contentful/f36-components';\n\nexport type TimezonepickerProps = {\n disabled: boolean;\n onChange: (value: string) => void;\n value?: string;\n};\nexport const TimezonepickerInput = ({\n disabled,\n onChange,\n value = defaultZoneOffset,\n}: TimezonepickerProps) => {\n return (\n <Select\n aria-label=\"Select timezone\"\n testId=\"timezone-input\"\n value={value}\n isDisabled={disabled}\n onChange={(e: ChangeEvent<HTMLSelectElement>) => {\n onChange(e.currentTarget.value);\n }}>\n {zoneOffsets.map((offset) => (\n <Select.Option key={offset} value={offset}>\n UTC{offset}\n </Select.Option>\n ))}\n </Select>\n );\n};\n","// eslint-disable-next-line -- TODO: describe this disable no-restricted-imports\nimport moment from 'moment';\nimport { TimeResult } from '../types';\n\nconst ZONE_RX = /(Z|[+-]\\d{2}[:+]?\\d{2})$/;\n\nfunction startOfToday(format: string) {\n return moment().set({ hours: 0, minutes: 0 }).format(format);\n}\n\nfunction fieldValueToMoment(datetimeString: string | null | undefined): moment.Moment | null {\n if (!datetimeString) {\n return null;\n }\n\n const datetime = moment(datetimeString);\n if (ZONE_RX.test(datetimeString)) {\n datetime.utcOffset(datetimeString);\n }\n return datetime;\n}\n\nfunction timeFromUserInput(input: TimeResult) {\n const timeInput = input.time || '00:00';\n return moment.utc(timeInput + '!' + input.ampm, 'HH:mm!A');\n}\n\n/**\n * Convert the user input object into either a 'moment' value or an\n * invalid symbol.\n *\n * Success is indicated by returning '{valid: value}' and failure is\n * indicated by returning '{invalid: true}'. If 'input.date' is\n * 'null' we return '{valid: null}'\n */\nfunction datetimeFromUserInput(input: TimeResult): {\n invalid?: boolean;\n valid: moment.Moment | null;\n} {\n if (!input.date) {\n return { valid: null };\n }\n\n const time = timeFromUserInput(input);\n\n const date = moment\n .parseZone(input.utcOffset, 'Z')\n .set(input.date.toObject())\n .set({ hours: time.hours(), minutes: time.minutes() });\n\n if (date.isValid()) {\n return { valid: date };\n } else {\n return { invalid: true, valid: null };\n }\n}\n\n/**\n * Parse user input into a string that is stored in the API.\n *\n * Returns a sum type with either the string as the `valid` property\n * or the `invalid` property set to `false`.\n */\nexport function buildFieldValue({\n data,\n usesTime,\n usesTimezone,\n}: {\n data: TimeResult;\n usesTime: boolean;\n usesTimezone: boolean;\n}) {\n const date = datetimeFromUserInput(data);\n if (date.invalid) {\n return {\n invalid: true,\n };\n }\n\n let format;\n if (usesTimezone) {\n format = 'YYYY-MM-DDTHH:mmZ';\n } else if (usesTime) {\n format = 'YYYY-MM-DDTHH:mm';\n } else {\n format = 'YYYY-MM-DD';\n }\n return { valid: date?.valid ? date.valid.format(format) : null, invalid: false };\n}\n\nexport function getDefaultAMPM() {\n return 'AM';\n}\n\nexport function getDefaultUtcOffset() {\n return startOfToday('Z');\n}\n\n/**\n * Create the user input object from the field value.\n */\nexport function userInputFromDatetime({\n value,\n uses12hClock,\n}: {\n value: string | undefined | null;\n uses12hClock: boolean;\n}): TimeResult {\n const datetime = fieldValueToMoment(value);\n\n if (datetime) {\n const timeFormat = uses12hClock ? 'hh:mm' : 'HH:mm';\n return {\n date: datetime,\n time: datetime.format(timeFormat),\n ampm: datetime.format('A'),\n utcOffset: datetime.format('Z'),\n };\n } else {\n return {\n ampm: getDefaultAMPM(),\n utcOffset: getDefaultUtcOffset(),\n };\n }\n}\n","import * as React from 'react';\nimport { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { FieldAPI, FieldConnector, ParametersAPI } from '@contentful/field-editor-shared';\nimport { DatepickerInput } from './DatepickerInput';\nimport { TimepickerInput } from './TimepickerInput';\nimport { TimezonepickerInput } from './TimezonePickerInput';\nimport {\n userInputFromDatetime,\n buildFieldValue,\n getDefaultAMPM,\n getDefaultUtcOffset,\n} from './utils/date';\nimport { TimeFormat, DateTimeFormat, TimeResult } from './types';\n\nimport { TextLink } from '@contentful/f36-components';\n\nexport interface DateEditorProps {\n /**\n * is the field disabled initially\n */\n isInitiallyDisabled: boolean;\n\n /**\n * sdk.field\n */\n field: FieldAPI;\n\n /**\n * sdk.parameters\n */\n parameters?: ParametersAPI & {\n instance?: {\n format?: DateTimeFormat;\n ampm?: TimeFormat;\n };\n };\n}\n\nconst styles = {\n root: css({\n display: 'flex',\n alignItems: 'center',\n }),\n separator: css({\n marginLeft: tokens.spacingM,\n }),\n};\n\nfunction useEffectWithoutFirstRender(callback: Function, deps: Array<any>) {\n const isFirstRun = React.useRef(true);\n React.useEffect(() => {\n if (isFirstRun.current) {\n isFirstRun.current = false;\n return;\n }\n callback();\n // eslint-disable-next-line react-hooks/exhaustive-deps -- TODO: Evaluate the dependencies\n }, deps);\n}\n\nfunction DateEditorContainer({\n initialValue,\n usesTime,\n usesTimezone,\n uses12hClock,\n disabled,\n hasClear,\n onChange,\n}: {\n initialValue: TimeResult;\n usesTime: boolean;\n usesTimezone: boolean;\n uses12hClock: boolean;\n disabled: boolean;\n hasClear: boolean;\n onChange: (value: TimeResult) => void;\n}) {\n const [value, setValue] = React.useState<TimeResult>(() => initialValue);\n\n useEffectWithoutFirstRender(() => {\n onChange(value);\n }, [value]);\n\n return (\n <div data-test-id=\"date-editor\" className={styles.root}>\n <DatepickerInput\n disabled={disabled}\n value={value.date}\n onChange={(date) => {\n setValue((value) => ({\n ...value,\n date,\n }));\n }}\n />\n {usesTime && (\n <>\n <div className={styles.separator} />\n <TimepickerInput\n disabled={disabled}\n time={value.time}\n ampm={value.ampm}\n onChange={({ time, ampm }) => {\n setValue((value) => ({\n ...value,\n time,\n ampm,\n }));\n }}\n uses12hClock={uses12hClock}\n />\n </>\n )}\n {usesTimezone && (\n <>\n <div className={styles.separator} />\n <TimezonepickerInput\n disabled={disabled}\n value={value.utcOffset}\n onChange={(utcOffset) => {\n setValue((value) => ({\n ...value,\n utcOffset,\n }));\n }}\n />\n </>\n )}\n {hasClear && (\n <>\n <div className={styles.separator} />\n <TextLink\n as=\"button\"\n isDisabled={disabled}\n testId=\"date-clear\"\n onClick={() => {\n setValue({\n date: undefined,\n time: undefined,\n ampm: getDefaultAMPM(),\n utcOffset: getDefaultUtcOffset(),\n });\n }}>\n Clear\n </TextLink>\n </>\n )}\n </div>\n );\n}\n\nexport function DateEditor(props: DateEditorProps) {\n const { field, parameters } = props;\n\n const formatParam = parameters?.instance?.format ?? 'timeZ';\n const ampmParam = parameters?.instance?.ampm ?? '24';\n\n const usesTime = formatParam !== 'dateonly';\n const usesTimezone = formatParam === 'timeZ';\n const uses12hClock = ampmParam === '12';\n\n return (\n <FieldConnector<string>\n field={field}\n isInitiallyDisabled={props.isInitiallyDisabled}\n throttle={0}>\n {({ value, disabled, setValue, externalReset }) => {\n const datetimeValue = userInputFromDatetime({\n value,\n uses12hClock,\n });\n return (\n <DateEditorContainer\n initialValue={datetimeValue}\n uses12hClock={uses12hClock}\n usesTimezone={usesTimezone}\n usesTime={usesTime}\n disabled={disabled}\n hasClear={Boolean(value)}\n onChange={(data) => {\n const fieldValue = buildFieldValue({ data, usesTime, usesTimezone });\n if (fieldValue.invalid) {\n return;\n }\n // if value is present - then override it with a new one\n // if value is not present - then set a new one if it's not nullable only\n if (Boolean(value) || (!value && Boolean(fieldValue.valid))) {\n setValue(fieldValue.valid);\n }\n }}\n key={`date-container-${externalReset}`}\n />\n );\n }}\n </FieldConnector>\n );\n}\n\nDateEditor.defaultProps = {\n isInitiallyDisabled: true,\n};\n"],"names":["YEAR_RANGE","styles","root","css","maxWidth","DatepickerInput","props","useMemo","fromDate","Date","setFullYear","getFullYear","toDate","React","Datepicker","className","selected","value","onSelect","day","momentDay","moment","undefined","onChange","inputProps","isDisabled","disabled","placeholder","validInputFormats","parseRawInput","raw","time","i","length","date","isValid","getDefaultTime","formatToString","uses12hClock","format","TimepickerInput","ampm","useState","selectedTime","setSelectedTime","useEffect","handleChange","useCallback","e","currentTarget","handleFocus","preventDefault","target","select","handleBlur","parsedTime","Flex","width","TextInput","testId","onFocus","onBlur","defaultZoneOffset","zoneOffsets","TimezonepickerInput","Select","map","offset","Option","key","ZONE_RX","startOfToday","set","hours","minutes","fieldValueToMoment","datetimeString","datetime","test","utcOffset","timeFromUserInput","input","timeInput","utc","datetimeFromUserInput","valid","parseZone","toObject","invalid","buildFieldValue","data","usesTime","usesTimezone","getDefaultAMPM","getDefaultUtcOffset","userInputFromDatetime","timeFormat","display","alignItems","separator","marginLeft","tokens","spacingM","useEffectWithoutFirstRender","callback","deps","isFirstRun","current","DateEditorContainer","initialValue","hasClear","setValue","TextLink","as","onClick","DateEditor","field","parameters","formatParam","instance","ampmParam","FieldConnector","isInitiallyDisabled","throttle","externalReset","datetimeValue","Boolean","fieldValue","defaultProps"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/utils/date.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contentful/field-editor-date",
|
|
3
|
-
"version": "1.1
|
|
3
|
+
"version": "1.2.1",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"module": "dist/field-editor-date.esm.js",
|
|
6
6
|
"typings": "dist/index.d.ts",
|
|
7
7
|
"style": "styles/styles.css",
|
|
8
8
|
"files": [
|
|
9
|
-
"dist"
|
|
10
|
-
"styles"
|
|
9
|
+
"dist"
|
|
11
10
|
],
|
|
12
11
|
"author": "Contentful GmbH",
|
|
13
12
|
"license": "MIT",
|
|
@@ -23,19 +22,15 @@
|
|
|
23
22
|
"test:ci": "tsdx test --env=jsdom --ci"
|
|
24
23
|
},
|
|
25
24
|
"dependencies": {
|
|
26
|
-
"@contentful/f36-components": "^4.
|
|
25
|
+
"@contentful/f36-components": "^4.20.1",
|
|
27
26
|
"@contentful/f36-tokens": "^4.0.0",
|
|
28
27
|
"@contentful/field-editor-shared": "^1.1.3",
|
|
29
28
|
"emotion": "^10.0.17",
|
|
30
|
-
"
|
|
31
|
-
"lodash-es": "^4.17.15",
|
|
32
|
-
"moment": "^2.20.0",
|
|
33
|
-
"pikaday": "^1.8.2"
|
|
29
|
+
"moment": "^2.20.0"
|
|
34
30
|
},
|
|
35
31
|
"devDependencies": {
|
|
36
32
|
"@babel/core": "^7.7.4",
|
|
37
|
-
"@contentful/field-editor-test-utils": "^1.2.2"
|
|
38
|
-
"@types/pikaday": "^1.7.4"
|
|
33
|
+
"@contentful/field-editor-test-utils": "^1.2.2"
|
|
39
34
|
},
|
|
40
35
|
"peerDependencies": {
|
|
41
36
|
"react": ">=16.8.0"
|
|
@@ -50,5 +45,5 @@
|
|
|
50
45
|
}
|
|
51
46
|
}
|
|
52
47
|
},
|
|
53
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "0873b2fd607d5dd32b6012014d8747ccdddac18e"
|
|
54
49
|
}
|
package/styles/styles.css
DELETED
|
@@ -1,213 +0,0 @@
|
|
|
1
|
-
.pika-single.is-hidden {
|
|
2
|
-
display: none;
|
|
3
|
-
}
|
|
4
|
-
.pika-single {
|
|
5
|
-
font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif,
|
|
6
|
-
Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;
|
|
7
|
-
z-index: 200;
|
|
8
|
-
min-width: 19ex;
|
|
9
|
-
position: absolute;
|
|
10
|
-
padding: 0.3rem 0;
|
|
11
|
-
border: 1px solid #d3dce0;
|
|
12
|
-
border-radius: 4px;
|
|
13
|
-
background: #fff;
|
|
14
|
-
-webkit-box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.1);
|
|
15
|
-
box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.1);
|
|
16
|
-
width: 230px;
|
|
17
|
-
padding: 8px;
|
|
18
|
-
margin-top: 13px;
|
|
19
|
-
position: relative;
|
|
20
|
-
}
|
|
21
|
-
.pika-single:after,
|
|
22
|
-
.pika-single:before {
|
|
23
|
-
content: '';
|
|
24
|
-
left: 50%;
|
|
25
|
-
border: solid transparent;
|
|
26
|
-
height: 0;
|
|
27
|
-
width: 0;
|
|
28
|
-
position: absolute;
|
|
29
|
-
pointer-events: none;
|
|
30
|
-
}
|
|
31
|
-
.pika-single:after {
|
|
32
|
-
border-width: 9px 5px;
|
|
33
|
-
margin-left: -5px;
|
|
34
|
-
}
|
|
35
|
-
.pika-single:before {
|
|
36
|
-
border-width: 11px 7px;
|
|
37
|
-
margin-left: -7px;
|
|
38
|
-
}
|
|
39
|
-
.pika-single:after,
|
|
40
|
-
.pika-single:before {
|
|
41
|
-
bottom: 100%;
|
|
42
|
-
}
|
|
43
|
-
.pika-single:after {
|
|
44
|
-
border-bottom-color: #fff;
|
|
45
|
-
}
|
|
46
|
-
.pika-single:before {
|
|
47
|
-
border-bottom-color: #d3dce0;
|
|
48
|
-
}
|
|
49
|
-
.hide-carret {
|
|
50
|
-
margin-top: 5px;
|
|
51
|
-
}
|
|
52
|
-
.hide-carret:after,
|
|
53
|
-
.hide-carret:before {
|
|
54
|
-
display: none;
|
|
55
|
-
}
|
|
56
|
-
.pika-title {
|
|
57
|
-
display: -webkit-box;
|
|
58
|
-
display: -ms-flexbox;
|
|
59
|
-
display: flex;
|
|
60
|
-
-ms-flex-align: baseline;
|
|
61
|
-
-webkit-box-align: baseline;
|
|
62
|
-
align-items: baseline;
|
|
63
|
-
margin-bottom: 6px;
|
|
64
|
-
}
|
|
65
|
-
.pika-label {
|
|
66
|
-
display: inline-block;
|
|
67
|
-
overflow: hidden;
|
|
68
|
-
font-size: 14px;
|
|
69
|
-
padding: 5px 3px 0 3px;
|
|
70
|
-
margin-bottom: 5px;
|
|
71
|
-
line-height: 20px;
|
|
72
|
-
position: relative;
|
|
73
|
-
border-width: 0 0 1px 0;
|
|
74
|
-
border-style: solid;
|
|
75
|
-
border-color: transparent;
|
|
76
|
-
}
|
|
77
|
-
.pika-label > select {
|
|
78
|
-
cursor: pointer;
|
|
79
|
-
position: absolute;
|
|
80
|
-
margin: 0;
|
|
81
|
-
left: 0;
|
|
82
|
-
top: 5px;
|
|
83
|
-
opacity: 0;
|
|
84
|
-
-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=0)';
|
|
85
|
-
filter: alpha(opacity=0);
|
|
86
|
-
}
|
|
87
|
-
.pika-prev,
|
|
88
|
-
.pika-next {
|
|
89
|
-
color: inherit;
|
|
90
|
-
font: inherit;
|
|
91
|
-
font-size: inherit;
|
|
92
|
-
line-height: normal;
|
|
93
|
-
vertical-align: baseline;
|
|
94
|
-
padding: 0;
|
|
95
|
-
margin: 0;
|
|
96
|
-
border: 0;
|
|
97
|
-
background: none;
|
|
98
|
-
overflow: visible;
|
|
99
|
-
-webkit-user-select: none;
|
|
100
|
-
-moz-user-select: none;
|
|
101
|
-
-ms-user-select: none;
|
|
102
|
-
user-select: none;
|
|
103
|
-
cursor: pointer;
|
|
104
|
-
cursor: pointer;
|
|
105
|
-
width: 20px;
|
|
106
|
-
text-indent: 20px;
|
|
107
|
-
white-space: nowrap;
|
|
108
|
-
overflow: hidden;
|
|
109
|
-
background-position: center;
|
|
110
|
-
background-repeat: no-repeat;
|
|
111
|
-
background-size: 60%;
|
|
112
|
-
}
|
|
113
|
-
.pika-prev::-moz-focus-inner,
|
|
114
|
-
.pika-next::-moz-focus-inner {
|
|
115
|
-
border: 0;
|
|
116
|
-
padding: 0;
|
|
117
|
-
}
|
|
118
|
-
.pika-prev {
|
|
119
|
-
-ms-flex-order: -1;
|
|
120
|
-
-webkit-box-ordinal-group: 0;
|
|
121
|
-
order: -1;
|
|
122
|
-
margin-right: auto;
|
|
123
|
-
background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMS4yNDEiIGhlaWdodD0iNy4yMTYiIHZpZXdCb3g9Ii0xIC0xIDEzIDkiPjxwYXRoIGQ9Ik0uMTMgNS4zYS40NS40NSAwIDAwMCAuNjM0bDEuMTYgMS4xNTFhLjQ0Mi40NDIgMCAwMC42MjggMEw1LjYyIDMuMzgxbDMuNzA0IDMuNzA0YS40NDIuNDQyIDAgMDAuNjI4IDBsMS4xNTgtMS4xNWEuNDUuNDUgMCAwMDAtLjYzNUw1LjkzNC4xM2EuNDQyLjQ0MiAwIDAwLS42MjcgMEwuMTMgNS4zeiIgZmlsbD0iIzViOWZlZiIvPjwvc3ZnPg==);
|
|
124
|
-
-webkit-transform: rotate(-90deg);
|
|
125
|
-
transform: rotate(-90deg);
|
|
126
|
-
}
|
|
127
|
-
.pika-next {
|
|
128
|
-
margin-left: auto;
|
|
129
|
-
background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMS4yNDEiIGhlaWdodD0iNy4yMTYiIHZpZXdCb3g9Ii0xIC0xIDEzIDkiPjxwYXRoIGQ9Ik0uMTMgNS4zYS40NS40NSAwIDAwMCAuNjM0bDEuMTYgMS4xNTFhLjQ0Mi40NDIgMCAwMC42MjggMEw1LjYyIDMuMzgxbDMuNzA0IDMuNzA0YS40NDIuNDQyIDAgMDAuNjI4IDBsMS4xNTgtMS4xNWEuNDUuNDUgMCAwMDAtLjYzNUw1LjkzNC4xM2EuNDQyLjQ0MiAwIDAwLS42MjcgMEwuMTMgNS4zeiIgZmlsbD0iIzViOWZlZiIvPjwvc3ZnPg==);
|
|
130
|
-
-webkit-transform: rotate(90deg);
|
|
131
|
-
transform: rotate(90deg);
|
|
132
|
-
}
|
|
133
|
-
.pika-select {
|
|
134
|
-
display: inline-block;
|
|
135
|
-
}
|
|
136
|
-
.pika-table {
|
|
137
|
-
width: 100%;
|
|
138
|
-
border-collapse: collapse;
|
|
139
|
-
border-spacing: 0;
|
|
140
|
-
border: 0;
|
|
141
|
-
}
|
|
142
|
-
.pika-table th,
|
|
143
|
-
.pika-table td {
|
|
144
|
-
width: 14.285714285714286%;
|
|
145
|
-
padding: 0;
|
|
146
|
-
}
|
|
147
|
-
.pika-table th {
|
|
148
|
-
font-weight: normal;
|
|
149
|
-
}
|
|
150
|
-
.pika-table {
|
|
151
|
-
font-size: 12px;
|
|
152
|
-
}
|
|
153
|
-
.pika-table thead {
|
|
154
|
-
line-height: 25px;
|
|
155
|
-
text-align: center;
|
|
156
|
-
}
|
|
157
|
-
.pika-table thead th {
|
|
158
|
-
background: #e5ebed;
|
|
159
|
-
}
|
|
160
|
-
.pika-table thead th:first-child {
|
|
161
|
-
border-radius: 4px 0 0 4px;
|
|
162
|
-
}
|
|
163
|
-
.pika-table thead th:last-child {
|
|
164
|
-
border-radius: 0 4px 4px 0;
|
|
165
|
-
}
|
|
166
|
-
.pika-table thead abbr {
|
|
167
|
-
border-bottom: none;
|
|
168
|
-
cursor: help;
|
|
169
|
-
}
|
|
170
|
-
.pika-table .is-today {
|
|
171
|
-
font-weight: bold;
|
|
172
|
-
}
|
|
173
|
-
.pika-button {
|
|
174
|
-
color: inherit;
|
|
175
|
-
font: inherit;
|
|
176
|
-
font-size: inherit;
|
|
177
|
-
line-height: normal;
|
|
178
|
-
vertical-align: baseline;
|
|
179
|
-
padding: 0;
|
|
180
|
-
margin: 0;
|
|
181
|
-
border: 0;
|
|
182
|
-
background: none;
|
|
183
|
-
overflow: visible;
|
|
184
|
-
-webkit-user-select: none;
|
|
185
|
-
-moz-user-select: none;
|
|
186
|
-
-ms-user-select: none;
|
|
187
|
-
user-select: none;
|
|
188
|
-
cursor: pointer;
|
|
189
|
-
-webkit-box-sizing: border-box;
|
|
190
|
-
box-sizing: border-box;
|
|
191
|
-
padding: 5px;
|
|
192
|
-
width: 100%;
|
|
193
|
-
font-size: 12px;
|
|
194
|
-
line-height: 15px;
|
|
195
|
-
text-align: center;
|
|
196
|
-
border-radius: 4px;
|
|
197
|
-
}
|
|
198
|
-
.pika-button::-moz-focus-inner {
|
|
199
|
-
border: 0;
|
|
200
|
-
padding: 0;
|
|
201
|
-
}
|
|
202
|
-
.is-selected .pika-button {
|
|
203
|
-
background: #e5ebed;
|
|
204
|
-
}
|
|
205
|
-
.pika-button:hover {
|
|
206
|
-
color: #fff;
|
|
207
|
-
background: #5b9fef;
|
|
208
|
-
}
|
|
209
|
-
.pika-row .is-disabled {
|
|
210
|
-
opacity: 0.3;
|
|
211
|
-
-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=30)';
|
|
212
|
-
filter: alpha(opacity=30);
|
|
213
|
-
}
|