UNPKG

redshift

Version:

A JavaScript UX framework. Handles animation, UI physics and user input tracking.

81 lines (60 loc) 1.77 kB
"use strict"; var utils = require('../utils/utils.js'), generateKeys = function (key) { var keys = key.split(DOT), keysLength = keys.length, lastKey = keys[0], i = 1; for (; i < keysLength; i++) { keys[i] = lastKey += DOT + keys[i]; } return keys; }, presetStore = {}, DOT = '.', Presets = function () {}; Presets.prototype = { /* Define a new Action preset Syntax .define(name, preset) @param [string]: Name of preset @param [object]: Preset options/properties .define(presets) @param [object]: Multiple presets as named object @return [Redshift] */ add: function (name, preset) { var presets = {}, key = ''; if (utils.isObj(name)) { presets = name; } else { presets[name] = preset; } for (key in presets) { if (presets.hasOwnProperty(key)) { presetStore[key] = presets[key]; } } }, /* Get defined action @param [string]: The name of the predefined action */ getDefined: function (key) { var props = {}, thisProp = {}, keys = generateKeys(key), keysLength = keys.length, i = 0; for (; i < keysLength; i++) { thisProp = presetStore[keys[i]]; if (thisProp) { props = utils.merge(props, thisProp); } } return props; } }; module.exports = new Presets();