UNPKG

@snappmarket/config

Version:
190 lines (166 loc) • 6.93 kB
(function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react'), require('prop-types'), require('styled-components'), require('@snappmarket/helpers')) : typeof define === 'function' && define.amd ? define(['exports', 'react', 'prop-types', 'styled-components', '@snappmarket/helpers'], factory) : (global = global || self, factory(global.SnappMarketConfigs = {}, global.React, global.propTypes, global.styledComponents, global.snappmarketHelpers)); }(this, (function (exports, React, PropTypes, styledComponents, helpers) { 'use strict'; var React__default = 'default' in React ? React['default'] : React; PropTypes = PropTypes && Object.prototype.hasOwnProperty.call(PropTypes, 'default') ? PropTypes['default'] : PropTypes; var global$1 = (typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}); // from https://github.com/kumavis/browser-process-hrtime/blob/master/index.js var performance = global$1.performance || {}; var performanceNow = performance.now || performance.mozNow || performance.msNow || performance.oNow || performance.webkitNow || function(){ return (new Date()).getTime() }; function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } var defaultTheme = { defaultRem: '1rem', defaultFont: 'IRANSans', containerWidth: '1628px', colors: { blue: { bright: '#f2f7ff', 'ultra-light': '#a5c8fc', light: '#556ff7', normal: '#2446f5', dark: '#0a2cdc' }, green: { bright: '#e7feea', 'ultra-light': '#aef0b8', light: '#10e02c', normal: '#07bc20', dark: '#058b18' }, red: { bright: '#fff6f5', 'ultra-light': '#ffbfc3', light: '#ff6973', normal: '#ff3643', dark: '#ff0313' }, orange: { bright: '#fff8f2', 'ultra-light': '#fcd0a5', light: '#ff9747', normal: '#ff7a14', dark: '#e06100' }, yellow: { bright: '#fffcef', 'ultra-light': '#ffeb98', light: '#ffdc47', normal: '#b7963a', dark: '#af8b28' }, gray: { bright: '#fafafa', 'ultra-light': '#eeeeee', light: '#bdbdbd', normal: '#757575', dark: '#424242' }, white: '#ffffff', taupe: '#292929', black: '#000000', transparent: 'transparent' }, viewports: { xs: 0, sm: 576, md: 768, lg: 992, xl: 1200 } }; var makeTheme = function makeTheme() { var theme = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; return helpers.deepMerge(defaultTheme, theme); }; var ToolboxContext = /*#__PURE__*/React.createContext({}); var faIR = { currencySign: "تومان" }; var GlobalConfig = { options: { publicPath: '/', importSpriteSVG: false, useSpriteFile: true, SSR: false, spriteSvgName: 'sprite.svg' }, theme: {}, language: {} }; var Provider = function Provider(_ref) { var theme = _ref.theme, language = _ref.language, options = _ref.options, children = _ref.children; var unifiedOptions = _extends({}, GlobalConfig.options, options); var unifiedTheme = makeTheme(theme); GlobalConfig.language = language; GlobalConfig.theme = unifiedTheme; GlobalConfig.options = unifiedOptions; return /*#__PURE__*/React__default.createElement(ToolboxContext.Provider, { value: GlobalConfig }, /*#__PURE__*/React__default.createElement(styledComponents.ThemeProvider, { theme: unifiedTheme }, children)); }; Provider.propTypes = { theme: PropTypes.object, language: PropTypes.object, options: PropTypes.shape({ SSR: PropTypes.bool, importSpriteSVG: PropTypes.bool, useSpriteFile: PropTypes.bool, publicPath: PropTypes.string, spriteSvgName: PropTypes.string }), children: PropTypes.node } ; Provider.defaultProps = { language: faIR, options: {}, theme: {} }; var useLanguage = function useLanguage() { var _useContext = React.useContext(ToolboxContext), language = _useContext.language; return language; }; var useOptions = function useOptions() { var _useContext = React.useContext(ToolboxContext), options = _useContext.options; if (!options) { return GlobalConfig.options; } return options; }; exports.GlobalConfig = GlobalConfig; exports.ToolboxProvider = Provider; exports.makeTheme = makeTheme; exports.theme = defaultTheme; exports.useLanguage = useLanguage; exports.useOptions = useOptions; Object.defineProperty(exports, '__esModule', { value: true }); })));