UNPKG

@vimeo/iris

Version:
69 lines (64 loc) 2.69 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var tslib_es6 = require('../../../tslib.es6-3ec409b7.js'); var polished = require('polished'); var color_colorUtils = require('../../../color/colorUtils.js'); function reducer(state, _a) { var type = _a.type, _b = _a.payload, payload = _b === void 0 ? null : _b; switch (type) { case 'TOGGLE': return tslib_es6.__assign(tslib_es6.__assign({}, state), { open: !state.open }); case 'CLOSE': return tslib_es6.__assign(tslib_es6.__assign({}, state), { open: false }); case 'DRAG_START': return tslib_es6.__assign(tslib_es6.__assign({}, state), { dragging: true }); case 'DRAG_END': return tslib_es6.__assign(tslib_es6.__assign({}, state), { dragging: false }); case 'SET_COORDS': return tslib_es6.__assign(tslib_es6.__assign({}, state), { coords: payload }); case 'SET_COLORSPACE': return tslib_es6.__assign(tslib_es6.__assign({}, state), { colorSpace: payload }); case 'SET_ERROR': return tslib_es6.__assign(tslib_es6.__assign({}, state), { error: payload }); case 'SET_EDITING': return tslib_es6.__assign(tslib_es6.__assign({}, state), { editing: payload }); case 'SET_LAST': return state; case 'SET_HEX': try { var colorMeta = reduceColorMeta(payload); return tslib_es6.__assign(tslib_es6.__assign({}, state), { colorMeta: colorMeta }); } catch (_c) { return state; } case 'SET_RGB': try { var colorMeta = reduceColorMeta(payload); return tslib_es6.__assign(tslib_es6.__assign({}, state), { colorMeta: colorMeta }); } catch (_d) { return state; } case 'SET_HSL': try { var colorMeta = reduceColorMeta(payload); return tslib_es6.__assign(tslib_es6.__assign({}, state), { colorMeta: colorMeta }); } catch (_e) { return state; } default: throw new Error(); } } function reduceColorMeta(payload) { if (typeof payload === 'string') payload = polished.parseToHsl(payload); if (payload.red) payload = polished.parseToHsl(polished.rgb(payload)); var _a = color_colorUtils.colorSpaces(payload), HSL = _a.HSL, HSV = _a.HSV, HEX = _a.HEX, RGB = _a.RGB; var colorMeta = { HSL: HSL, HSV: HSV, HEX: HEX, RGB: RGB }; return colorMeta; } exports.reducer = reducer;