UNPKG

@servicenow/library-enhanced-element

Version:

Base element for Now Design System components

42 lines (35 loc) 1.55 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.extendWithLocals = exports.localsSetEffectHandler = undefined; var _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; }; var _uiEffectUpdateState = require('@servicenow/ui-effect-update-state'); const localsSetEffectHandler = exports.localsSetEffectHandler = (0, _uiEffectUpdateState.createUpdateStateEffect)((state, action) => { /* eslint-disable-next-line no-undef */ if (process.env.NODE_ENV === 'development') { /* eslint-disable-next-line no-console */ console.warn('`locals` from @devsnc/library-enhanced-element is deprecated. Please migrate to using `updateState` helper method from @servicenow/ui-core.'); } const { payload } = action; return _extends({}, state, { locals: _extends({}, state.locals, payload) }); }); const extendWithLocals = exports.extendWithLocals = baseConfig => { const localsConfig = baseConfig.locals || {}; const locals = Object.keys(localsConfig).reduce((acc, key) => _extends({}, acc, { [key]: localsConfig[key].default }), {}); return _extends({}, baseConfig, { actionHandlers: _extends({ LOCALS_SET: _extends({}, localsSetEffectHandler, { stopPropagation: true }) }, baseConfig.actionHandlers), initialState: _extends({ locals, properties: {} }, baseConfig.initialState) }); };