enum-plus
Version:
A drop-in replacement for native enum. Like native enum but much better!
10 lines • 15.6 kB
JavaScript
/**
* enum-plus (ES2015 compatible})
* A drop-in replacement for native enum. Like native enum but much better!
*
* @version: 3.1.6
* @author: 李凤宝(Leo) <shijistar@gmail.com>
* @link https://github.com/shijistar/enum-plus
*/
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.EnumPlus=t():e.EnumPlus=t()}(self,(function(){return function(){var e={760:function(e){e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e},e.exports.__esModule=!0,e.exports.default=e.exports},608:function(e){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},e.exports.__esModule=!0,e.exports.default=e.exports},218:function(e,t,r){var n=r(108);function o(e,t){for(var r=0;r<t.length;r++){var o=t[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,n(o.key),o)}}e.exports=function(e,t,r){return t&&o(e.prototype,t),r&&o(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e},e.exports.__esModule=!0,e.exports.default=e.exports},680:function(e,t,r){var n=r(569),o=r(856),i=r(460);e.exports=function(e){var t=o();return function(){var r,o=n(e);if(t){var u=n(this).constructor;r=Reflect.construct(o,arguments,u)}else r=o.apply(this,arguments);return i(this,r)}},e.exports.__esModule=!0,e.exports.default=e.exports},51:function(e,t,r){var n=r(108);e.exports=function(e,t,r){return(t=n(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e},e.exports.__esModule=!0,e.exports.default=e.exports},569:function(e){function t(r){return e.exports=t=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},e.exports.__esModule=!0,e.exports.default=e.exports,t(r)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},590:function(e,t,r){var n=r(857);e.exports=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&n(e,t)},e.exports.__esModule=!0,e.exports.default=e.exports},856:function(e){function t(){try{var r=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(r){}return(e.exports=t=function(){return!!r},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},402:function(e,t,r){var n=r(51);function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}e.exports=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e},e.exports.__esModule=!0,e.exports.default=e.exports},460:function(e,t,r){var n=r(191).default,o=r(760);e.exports=function(e,t){if(t&&("object"==n(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return o(e)},e.exports.__esModule=!0,e.exports.default=e.exports},857:function(e){function t(r,n){return e.exports=t=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},e.exports.__esModule=!0,e.exports.default=e.exports,t(r,n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},875:function(e,t,r){var n=r(191).default;e.exports=function(e,t){if("object"!=n(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var o=r.call(e,t||"default");if("object"!=n(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)},e.exports.__esModule=!0,e.exports.default=e.exports},108:function(e,t,r){var n=r(191).default,o=r(875);e.exports=function(e){var t=o(e,"string");return"symbol"==n(t)?t:t+""},e.exports.__esModule=!0,e.exports.default=e.exports},191:function(e){function t(r){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(r)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={exports:{}};return e[n](i,i.exports,r),i.exports}r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,{a:t}),t},r.d=function(e,t){for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return function(){"use strict";r.r(n),r.d(n,{ENUM_OPTIONS:function(){return a},Enum:function(){return R},IS_ENUM:function(){return p},IS_ENUM_ITEM:function(){return s},IS_ENUM_ITEMS:function(){return v},ITEMS:function(){return o},KEYS:function(){return i},LABELS:function(){return l},META:function(){return f},NAMED:function(){return c},VALUES:function(){return u},defaultLocalize:function(){return b},version:function(){return t}});var e,t="3.1.6",o=Symbol.for("[items]"),i=Symbol.for("[keys]"),u=Symbol.for("[values]"),l=Symbol.for("[labels]"),a=(Symbol.for("[raw]"),Symbol.for("[EnumOptions]")),f=Symbol.for("[meta]"),c=Symbol.for("[named]"),s=Symbol.for("[IsEnumItem]"),p=Symbol.for("[IsEnum]"),v=Symbol.for("[IsEnumItems]"),b=function(e){return e},y=r(402),d=r.n(y),_=r(191),m=r.n(_),h=r(760),x=r.n(h),O=r(590),j=r.n(O),g=r(680),w=r.n(g),k=r(51),S=r.n(k),P=r(218),E=r.n(P),M=r(608),T=r.n(M),z={localize:b},I={autoLabel:!0};e=Symbol.toPrimitive;var L,A=function(){function t(e,r,n,o,i){T()(this,t),S()(this,"_options",void 0),S()(this,"_label",void 0),S()(this,"_localize",void 0),S()(this,"value",void 0),S()(this,"label",void 0),S()(this,"key",void 0),S()(this,"raw",void 0),this.key=e,this.value=r,this.label=n,this.raw=o,Object.defineProperty(this,"_label",{value:n,writable:!1,enumerable:!1,configurable:!1}),Object.defineProperties(this,{value:{value:r,writable:!1,enumerable:!0,configurable:!1},label:{get:function(){var e,t,r,n,o=null===(e=this._options)||void 0===e?void 0:e.labelPrefix,i=null!==(t=null===(r=this._options)||void 0===r?void 0:r.autoLabel)&&void 0!==t?t:I.autoLabel,u=this._label;return"function"==typeof u?u(this):(i&&null!=o&&(u="function"==typeof i?i({item:this,labelPrefix:o}):"".concat(o).concat(this._label)),null!==(n=this._localize(u))&&void 0!==n?n:u)},enumerable:!0,configurable:!1},key:{value:e,writable:!1,enumerable:!0,configurable:!1},raw:{value:o,writable:!1,enumerable:!0,configurable:!1}}),Object.defineProperty(this,"_options",{value:i,writable:!1,enumerable:!1,configurable:!1}),this._localize=void 0,Object.defineProperty(this,"_localize",{value:function(e){var t,r,n=null!==(t=null===(r=this._options)||void 0===r?void 0:r.localize)&&void 0!==t?t:z.localize;return"function"==typeof n?n(e):e},writable:!1,enumerable:!1,configurable:!1}),Object.freeze(this)}return E()(t,[{key:s,get:function(){return!0}},{key:e,value:function(e){return"number"===e?this.valueOf():"string"===e?this.toString():this.valueOf()}},{key:"toString",value:function(){return this.label}},{key:"toLocaleString",value:function(){return this.toString()}},{key:"valueOf",value:function(){return this.value}}]),t}();L=Symbol.hasInstance;var N,B=function(e){j()(r,e);var t=w()(r);function r(e,n){var o;T()(this,r),o=t.call(this),S()(x()(o),"__raw__",void 0),S()(x()(o),i,void 0),S()(x()(o),u,void 0),S()(x()(o),"labels",void 0),S()(x()(o),"named",void 0),S()(x()(o),"meta",void 0),S()(x()(o),"_runtimeError",void 0),Object.defineProperty(x()(o),"__raw__",{value:e,enumerable:!1,writable:!1,configurable:!1});var l=function(e){return Object.keys(e).filter((function(t){var r;return!(/^-?\d+$/.test(t)&&t==="".concat(null!==(r=e[e[t]])&&void 0!==r?r:""))}))}(e),a=l.map((function(t){return function(e,t){var r,n;if(null!=e)if("number"==typeof e||"string"==typeof e||"symbol"===m()(e))r=e,n=t;else{if("object"!==m()(e))throw new Error("Invalid enum item: ".concat(JSON.stringify(e)));var o;if("[object Object]"===Object.prototype.toString.call(e))if("value"in e&&Object.keys(e).some((function(e){return"value"===e})))r=null!==(o=e.value)&&void 0!==o?o:t,n="label"in e&&Object.keys(e).some((function(e){return"label"===e}))?e.label:t;else if("label"in e&&Object.keys(e).some((function(e){return"label"===e}))){var i;r=t,n=null!==(i=e.label)&&void 0!==i?i:t}else r=t,n=t;else r=e,n=t}else r=t,n=t;return{value:r,label:n}}(e[t],t)}));o[i]=l,Object.freeze(l);var f=[],c={};o.meta=c;var s={};o.named=s,l.forEach((function(t,r){var i=a[r],u=i.value,l=i.label,p=new A(t,u,l,e[t],n);f.push(p),o.push(p),s[t]=p;var v=e[t];v&&"object"===m()(v)&&Object.keys(v).forEach((function(e){var t=e;if("key"!==t&&"value"!==t&&"label"!==t){null==c[t]&&(c[t]=[]);var r=v[t];null!=r&&c[t].push(r)}}))})),Object.keys(c).forEach((function(e){Object.freeze(c[e])}));var p=a.map((function(e){return e.value}));return o[u]=p,Object.freeze(p),Object.defineProperty(x()(o),"labels",{get:function(){return Array.from(this).map((function(e){return e.label}))},enumerable:!0,configurable:!1}),o._runtimeError=void 0,Object.defineProperty(x()(o),"_runtimeError",{value:function(e){return"The ".concat(e," property of the enumeration is only allowed to be used to declare the ts type, and cannot be accessed at runtime! Please use the typeof operator in the ts type, for example: typeof Week.").concat(e)},writable:!1,enumerable:!1,configurable:!1}),o}return E()(r,[{key:v,get:function(){return!0}},{key:L,value:function(e){return this.some((function(t){return e==t.value||e===t.key}))}},{key:"label",value:function(e){var t,r;return null===(t=null!==(r=this.find((function(t){return t.value===e})))&&void 0!==r?r:this.find((function(t){return t.key===e})))||void 0===t?void 0:t.label}},{key:"key",value:function(e){var t;return null===(t=this.find((function(t){return t.value===e})))||void 0===t?void 0:t.key}},{key:"raw",value:function(e){if(null==e)return this.__raw__;if(Object.keys(this.__raw__).some((function(t){return t===e})))return this.__raw__[e];var t=this.find((function(t){return t.value===e}));return t?t.raw:void 0}},{key:"has",value:function(e){return this.some((function(t){return t.value===e||t.key===e}))}},{key:"findBy",value:function(e,t){return this.find((function(r){return"key"===e||"value"===e?r[e]===t:"label"===e?(null===(n=r.raw)||void 0===n?void 0:n.label)===t||r.label===t:(null===(o=r.raw)||void 0===o?void 0:o[e])===t;var n,o}))}},{key:"toList",value:function(e){var t=null!=e?e:{},r=t.valueField,n=void 0===r?"value":r,o=t.labelField,i=void 0===o?"label":o,u=t.extra;return Array.from(this).map((function(e){var t="function"==typeof n?n(e):n,r="function"==typeof i?i(e):i,o=u?u(e):{};return d()(S()(S()({},t,e.value),r,e.label),o)}))}},{key:"toMap",value:function(e){if(!e)return this.reduce((function(e,t){return e[t.value]=t.label,e}),{});var t=e.keySelector,r=void 0===t?"value":t,n=e.valueSelector,o=void 0===n?"label":n;return this.reduce((function(e,t){var n,i;return n="function"==typeof r?r(t):t[r],i="function"==typeof o?o(t):t[o],e[n]=i,e}),{})}},{key:"valueType",get:function(){throw new Error(this._runtimeError("valueType"))}},{key:"keyType",get:function(){throw new Error(this._runtimeError("keyType"))}},{key:"rawType",get:function(){throw new Error(this._runtimeError("rawType"))}}]),r}(Array);var D=E()((function e(){T()(this,e)}));N=Symbol.hasInstance;var U=function(e){j()(r,e);var t=w()(r);function r(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=arguments.length>1?arguments[1]:void 0;T()(this,r),e=t.call(this),S()(x()(e),"__options__",void 0),S()(x()(e),"__items__",void 0),Object.defineProperty(x()(e),"__options__",{value:a,writable:!1,enumerable:!1,configurable:!1});var s=Object.keys(n),p=new B(n,a);return Object.freeze(p),e[s.includes("items")?o:"items"]=p,Object.defineProperty(x()(e),"__items__",{value:p,writable:!1,enumerable:!1,configurable:!1}),e[s.includes("keys")?i:"keys"]=p[i],e[s.includes("values")?u:"values"]=p[u],e[s.includes("named")?c:"named"]=p.named,e[s.includes("meta")?f:"meta"]=p.meta,p.forEach((function(t){e[t.key]=t.value})),Object.defineProperty(x()(e),s.includes("labels")?l:"labels",{enumerable:!0,configurable:!1,get:function(){return this.__items__.labels}}),Object.freeze(x()(e)),e}return E()(r,[{key:p,get:function(){return!0}},{key:a,get:function(){return this.__options__}},{key:N,value:function(e){return e instanceof this.__items__}},{key:"name",get:function(){var e,t,r,n;if("function"==typeof(null===(e=this.__options__)||void 0===e?void 0:e.name))return this.__options__.name(void 0);var o,i=null!==(t=null===(r=this.__options__)||void 0===r?void 0:r.localize)&&void 0!==t?t:z.localize;return"function"==typeof i?i(null===(o=this.__options__)||void 0===o?void 0:o.name):null===(n=this.__options__)||void 0===n?void 0:n.name}},{key:"label",value:function(e){return this.__items__.label(e)}},{key:"key",value:function(e){return this.__items__.key(e)}},{key:"raw",value:function(e){return null!=e?this.__items__.raw(e):this.__items__.raw()}},{key:"has",value:function(e){return this.__items__.has(e)}},{key:"findBy",value:function(){var e;return(e=this.__items__).findBy.apply(e,arguments)}},{key:"toList",value:function(e){return this.__items__.toList(e)}},{key:"toMap",value:function(e){return this.__items__.toMap(e)}},{key:"valueType",get:function(){return this.__items__.valueType}},{key:"keyType",get:function(){return this.__items__.keyType}},{key:"rawType",get:function(){return this.__items__.rawType}}]),r}(D),R=function(e,t){if(Array.isArray(e)){var r=function(e,t){var r=null!=t?t:{},n=r.getValue,o=void 0===n?"value":n,i=r.getLabel,u=void 0===i?"label":i,l=r.getKey,a=void 0===l?"key":l;return e.reduce((function(e,t){var r,n,i="function"==typeof o?o(t):t[o],l="function"==typeof u?u(t):t[u],f=void 0;return a&&(f="function"==typeof a?a(t):t[a]),e[null!==(r=f)&&void 0!==r?r:i]=d()(d()({},t),{},{label:l||(null!==(n=f)&&void 0!==n?n:"")||(null!=i?i.toString():i),value:i}),e}),{})}(e,t);return new U(r,t)}return new U(e,t)};Object.defineProperty(R,"config",{get:function(){return I},enumerable:!0,configurable:!1}),Object.defineProperty(R,"localize",{get:function(){return z.localize},set:function(e){z.localize=e},enumerable:!0,configurable:!1}),R.extends=function(e){if(void 0!==e&&"[object Object]"!==Object.prototype.toString.call(e))throw new Error("The extension of Enum must be an object");Object.defineProperties(D.prototype,Object.getOwnPropertyDescriptors(e))},R.install=function(e,t){e(t,R)},R.isEnum=function(e){return Boolean(e&&"object"===m()(e)&&!0===e[p])},Object.defineProperty(R,Symbol.hasInstance,{value:function(e){return R.isEnum(e)},writable:!1,enumerable:!1,configurable:!0})}(),n}()}));
//# sourceMappingURL=enum-plus-legacy.min.js.map