Class: Clock

Clock(params)

World Clock API component.

Constructor

new Clock(params)

Parameters:
Name Type Description
params Object Object containing all configurable parameters.
Properties
Name Type Attributes Default Description
container String container element ID.
theme String <optional>
widget color theme. Defaul value = "light". Available values = ["light", "dark"].
showSeconds Boolean <optional>
true show seconds in the clocks? Default value = true.
showDate Boolean <optional>
true show date in the widget? Default value = true.
Source:

Members

Theme

User Convenience theme selection property.
Source:

(readonly) timezoneGroups

Get all currently available timezone parts. Returns a product of *this.getAllAvailableTimezones()*, because that is saved to the Clock at the initialization time.
Source:

Methods

(private) _checkMomentDependancies() → {Boolean}

Widget checks if website already has necessary dependancies - **moment.js**, **moment-timezone.js**.
Source:
Returns:
are dependancies fulfilled.
Type
Boolean

(private) _createWidget()

Method generates HTML for the widget and then calls *this._showWidget*, which updates time and date text.
Source:

(private) _findReconstructedTimezoneObject(reconstructedTimezoneObject) → {null|TimezoneObject}

Allows to verify if reconstructed TimezoneObject from LocalStorage (or user input) is valid or not.
Parameters:
Name Type Description
reconstructedTimezoneObject TimezoneObject TimezoneObject which is constructed from storage or user input.
Source:
Returns:
null - if TimezoneObject was not recognized. TimezoneObject - otherwise.
Type
null | TimezoneObject

(private) _importMomentDependancies() → {Promise}

Dinamically import dependancies - **moment.js**, **moment-timezone.js**, if they were not found in the website. This method is called after *this._checkMomentDependancies()*.
Source:
Returns:
fulfilled or rejected Promise, which is being waited in the initialization of the widget.
Type
Promise

(private) _importOtherDependancies()

Dinamically import CSS of the widget.
Source:

(async, private) _init()

Initialize widget.
Source:
Throws:
if initialization has failed.
Type
WorldClockError

(private) _parseParams(params)

Method to parse all given by user parameters.
Parameters:
Name Type Description
params Object Object containing all configurable parameters.
Properties
Name Type Attributes Default Description
container String container element ID.
theme String <optional>
widget color theme. Defaul value = "light". Available values = ["light", "dark"].
showSeconds Boolean <optional>
true show seconds in the clocks? Default value = true.
showDate Boolean <optional>
true show date in the widget? Default value = true.
Source:
Throws:
if required parameter was wrong (not defined, not a String).
Type
WorldClockError

(private) _render(timestamp)

Every second updates widget text (time, date, timezone).
Parameters:
Name Type Description
timestamp DOMHighResTimeStamp used to track render time from requestAnimationFrame.
Source:

(private) _setContainer(params)

Method to parse all given by user parameters.
Parameters:
Name Type Description
params Object Object containing all configurable parameters.
Properties
Name Type Attributes Default Description
container String container element ID.
theme String <optional>
widget color theme. Defaul value = "light". Available values = ["light", "dark"].
showSeconds Boolean <optional>
true show seconds in the clocks? Default value = true.
showDate Boolean <optional>
true show date in the widget? Default value = true.
Source:
Throws:
if required parameter - 'container' was wrong (not defined, not a String or no element exist in DOM).
Type
WorldClockError

(private) _showWidget()

Display current time and date in the widget.
Source:

(private) _updateClock()

Updates widget text (time, date, timezone) with the current widget configuration.
Source:

(private) _updateWidgetDateTime(timeFrame)

Invokes widget to update text (time, date) from a specified moment timeframe.
Parameters:
Name Type Description
timeFrame moment equivalent to *moment()* timeframe.
Source:

findCity(name) → {null|TimezoneCity}

Search for a TimezoneCity in all available timezones.
Parameters:
Name Type Description
name String TimezoneCity name, which is being searched.
Source:
Returns:
null - if city was not found, TimezoneCity - otherwise.
Type
null | TimezoneCity

findGroup(name) → {null|TimezoneGroup}

Search for a TimezoneGroup in all available timezones.
Parameters:
Name Type Description
name String TimezoneGroup name, which is being searched.
Source:
Returns:
null - if group was not found, TimezoneGroup - otherwise.
Type
null | TimezoneGroup

findRegion(name) → {null|TimezoneRegion}

Search for a TimezoneRegion in all available timezones.
Parameters:
Name Type Description
name String TimezoneRegion name, which is being searched.
Source:
Returns:
null - if region was not found, TimezoneRegion - otherwise.
Type
null | TimezoneRegion

findTimezonePart(type, name) → {null|TimezoneObject}

Find TimezoneObject within the available timezones given by *type* and *name*.
Parameters:
Name Type Description
type String one of the types from ["group", "region", "city"].
name String name of the part that is being searched. For example - "Vilnius".
Source:
Returns:
null - if part was not found. TimezoneObject - otherwise.
Type
null | TimezoneObject

getAllAvailableTimezones() → {Object}

Show all available timezones, which are hierarchically related. At the top of hierarchy lies TimezoneGroup Objects. Returns this data structure:

{
     'timezone_group_name': TimezoneGroup()
     ...
}
TimezoneRegion Objects are included into TimezoneGroup. TimezoneCity Objects are included into TimezoneRegion.
Source:
Returns:
hierarchical object.
Type
Object

getTimezoneGroups() → {Array}

Get all available timezone groups from moment-timezone. In moment-timezone group, region, city is marked in this format: "Group/Region/City". Method splits all strings by "/" and then collects all parts at index 0. So we get a list of timezone group names.
Source:
Returns:
array of timezone group names.
Type
Array

selectCurrentTimezone(part)

In order to set current timezone one of the timezone parts must be passed. We automatically detect type of timezone part, then detect if input is recognized. If input is recognized current selected timezone is updated. Otherwise we throw WorldClockError.
Parameters:
Name Type Description
part TimezoneObject TimezoneObject part, which should be selected.
Source:

setDateShow(value)

Validate and set flag, which controls if widget should show date field. Default value = true.
Parameters:
Name Type Description
value Boolean controls if widget should show date field.
Source:

setTheme(themeValue)

Validate and set widget theme. If given value is not valid, light theme will be selected.
Parameters:
Name Type Description
themeValue String controls which widget theme should be selected.
Source:

setTimeSecondsShow(value)

Validate and set flag, which controls if widget should show seconds. Default = true.
Parameters:
Name Type Description
value Boolean controls if widget should show seconds.
Source: