UNPKG

@gsretail.com/gui-core

Version:

A skeleton to create your own React component library using Rollup, TypeScript, Sass and Storybook

2 lines (1 loc) 1.24 kB
import{isString as e,isObject as s,pick as a}from"../core/utils.js";import r from"../core/holder.js";function n(s){if(null==s)throw new Error("mask property should be defined");return s instanceof RegExp?r.MaskedRegExp:e(s)?r.MaskedPattern:s===Date?r.MaskedDate:s===Number?r.MaskedNumber:Array.isArray(s)||s===Array?r.MaskedDynamic:r.Masked&&s.prototype instanceof r.Masked?s:r.Masked&&s instanceof r.Masked?s.constructor:s instanceof Function?r.MaskedFunction:(console.warn("Mask not found for mask",s),r.Masked)}function t(e){if(!e)throw new Error("Options in not defined");if(r.Masked){if(e.prototype instanceof r.Masked)return{mask:e};const{mask:n,...t}=e instanceof r.Masked?{mask:e}:s(e)&&e.mask instanceof r.Masked?e:{};if(n){const e=n.mask;return{...a(n,((e,s)=>!s.startsWith("_"))),mask:n.constructor,_mask:e,...t}}}return s(e)?{...e}:{mask:e}}function o(e){if(r.Masked&&e instanceof r.Masked)return e;const s=t(e),a=n(s.mask);if(!a)throw new Error(`Masked class is not found for provided mask ${s.mask}, appropriate module needs to be imported manually before creating mask.`);return s.mask===a&&delete s.mask,s._mask&&(s.mask=s._mask,delete s._mask),new a(s)}r.createMask=o;export{o as default,n as maskedClass,t as normalizeOpts};