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.2.1
* @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,n){var r=n(108);function o(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,r(o.key),o)}}e.exports=function(e,t,n){return t&&o(e.prototype,t),n&&o(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e},e.exports.__esModule=!0,e.exports.default=e.exports},680:function(e,t,n){var r=n(569),o=n(856),u=n(460);e.exports=function(e){var t=o();return function(){var n,o=r(e);if(t){var i=r(this).constructor;n=Reflect.construct(o,arguments,i)}else n=o.apply(this,arguments);return u(this,n)}},e.exports.__esModule=!0,e.exports.default=e.exports},51:function(e,t,n){var r=n(108);e.exports=function(e,t,n){return(t=r(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e},e.exports.__esModule=!0,e.exports.default=e.exports},569:function(e){function t(n){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(n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},590:function(e,t,n){var r=n(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&&r(e,t)},e.exports.__esModule=!0,e.exports.default=e.exports},856:function(e){function t(){try{var n=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(n){}return(e.exports=t=function(){return!!n},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,n){var r=n(51);function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}e.exports=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e},e.exports.__esModule=!0,e.exports.default=e.exports},460:function(e,t,n){var r=n(191).default,o=n(760);e.exports=function(e,t){if(t&&("object"==r(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(n,r){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(n,r)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},875:function(e,t,n){var r=n(191).default;e.exports=function(e,t){if("object"!=r(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t||"default");if("object"!=r(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,n){var r=n(191).default,o=n(875);e.exports=function(e){var t=o(e,"string");return"symbol"==r(t)?t:t+""},e.exports.__esModule=!0,e.exports.default=e.exports},191:function(e){function t(n){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(n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var u=t[r]={exports:{}};return e[r](u,u.exports,n),u.exports}n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};return function(){"use strict";n.r(r),n.d(r,{ENUM_OPTIONS:function(){return a},Enum:function(){return K},IS_ENUM:function(){return v},IS_ENUM_ITEM:function(){return c},IS_ENUM_ITEMS:function(){return p},ITEMS:function(){return o},KEYS:function(){return u},LABELS:function(){return l},META:function(){return s},NAMED:function(){return f},VALUES:function(){return i},defaultLocalize:function(){return y},version:function(){return t}});var e,t="3.2.1",o=Symbol.for("[items]"),u=Symbol.for("[keys]"),i=Symbol.for("[values]"),l=Symbol.for("[labels]"),a=(Symbol.for("[raw]"),Symbol.for("[EnumOptions]")),s=Symbol.for("[meta]"),f=Symbol.for("[named]"),c=Symbol.for("[IsEnumItem]"),v=Symbol.for("[IsEnum]"),p=Symbol.for("[IsEnumItems]"),y=function(e){return e},d=n(191),b=n.n(d),_=n(760),m=n.n(_),h=n(590),x=n.n(h),k=n(680),O=n.n(k),g=n(51),j=n.n(g),w=n(218),S=n.n(w),E=n(608),P=n.n(E),M=n(402),T=n.n(M),z={localize:y},I={autoLabel:!0};e=Symbol.toPrimitive;var L,A=function(){function t(e,n,r,o,u){var i=this;P()(this,t),j()(this,"_options",void 0),j()(this,"_label",void 0),j()(this,"value",void 0),j()(this,"label",void 0),j()(this,"key",void 0),j()(this,"raw",void 0),this.key=e,this.value=n,this.label=r,this.raw=o;var l=Object.defineProperties,a=Object.freeze;l(this,{_label:{value:r},_options:{value:u}});var s={};if("object"===b()(o)){var f=null==u?void 0:u.autoLocalizeMeta;Object.keys(o).forEach((function(e){if(!["value","label"].includes(e))if(!0===f||Array.isArray(f)&&f.includes(e)){var t={get:function e(){var t=e._metaKey;return this._localizeResource(this.raw[t])},enumerable:!0};s[e]=t,t.get._metaKey=e}else i[e]=o[e]}))}l(this,T()(T()({},s),{},{label:{get:function(){return this._localizeResource(this._label)},enumerable:!0}})),a(this),a(t.prototype)}return S()(t,[{key:c,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}},{key:"_localize",value:function(e){var t,n,r=null!==(t=null===(n=this._options)||void 0===n?void 0:n.localize)&&void 0!==t?t:z.localize;return"function"==typeof r?r(e):e}},{key:"_localizeResource",value:function(e){var t,n,r,o,u=null===(t=this._options)||void 0===t?void 0:t.labelPrefix,i=null!==(n=null===(r=this._options)||void 0===r?void 0:r.autoLabel)&&void 0!==n?n:I.autoLabel,l=e;return"function"==typeof l?l(this):(i&&null!=u&&(l="function"==typeof i?i({item:this,labelPrefix:u}):"".concat(u).concat(e)),null!==(o=this._localize(l))&&void 0!==o?o:l)}}]),t}();L=Symbol.hasInstance;var N,B=function(e){x()(n,e);var t=O()(n);function n(e,r){var o;P()(this,n),o=t.call(this),j()(m()(o),"__raw__",void 0),j()(m()(o),u,void 0),j()(m()(o),i,void 0),j()(m()(o),"labels",void 0),j()(m()(o),"named",void 0),j()(m()(o),"meta",void 0),j()(m()(o),"_runtimeError",void 0);var l=Object.defineProperty,a=Object.freeze,s=function(e){return Object.keys(e).filter((function(t){var n;return!(/^-?\d+$/.test(t)&&t==="".concat(null!==(n=e[e[t]])&&void 0!==n?n:""))}))}(e),f=s.map((function(t){return function(e,t){var n,r;if(null!=e)if("number"==typeof e||"string"==typeof e||"symbol"===b()(e))n=e,r=t;else{if("object"!==b()(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})))n=null!==(o=e.value)&&void 0!==o?o:t,r="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 u;n=t,r=null!==(u=e.label)&&void 0!==u?u:t}else n=t,r=t;else n=e,r=t}else n=t,r=t;return{value:n,label:r}}(e[t],t)}));l(m()(o),u,{value:s}),a(s);var c=[],v={};o.named=v;var p={};o.meta=p,s.forEach((function(t,n){var u=f[n],i=u.value,l=u.label,a=new A(t,i,l,e[t],r);c.push(a),o.push(a),v[t]=a;var s=e[t];s&&"object"===b()(s)&&Object.keys(s).forEach((function(e){var t=e;if(!["value","label"].includes(e)){null==p[t]&&(p[t]=[]);var n=a[e];null!=n&&p[t].push(n)}}))}));var y=null==r?void 0:r.autoLocalizeMeta;Object.keys(p).forEach((function(e){if(y&&(!0===y||y.includes(e))){var t={get:function e(){return Array.from(this._items).map((function(t){return t[e._key]})).filter((function(e){return null!=e}))},enumerable:!0,configurable:!1};t.get._key=e,l(p,e,t)}else a(p[e])})),y&&l(p,"_items",{value:m()(o)});var d=f.map((function(e){return e.value}));return l(m()(o),i,{value:d}),Object.freeze(d),l(m()(o),"labels",{get:function(){return Array.from(this).map((function(e){return e.label}))},enumerable:!0}),l(m()(o),"__raw__",{value:e}),o._runtimeError=void 0,l(m()(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)},enumerable:!1}),a(n.prototype),o}return S()(n,[{key:p,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,n;return null===(t=null!==(n=this.find((function(t){return t.value===e})))&&void 0!==n?n:this.find((function(t){return t.key===e})))||void 0===t?void 0:t.label}},{key:"item",value:function(e){var t;return null!==(t=this.find((function(t){return t.value===e})))&&void 0!==t?t:this.find((function(t){return t.key===e}))}},{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(n){return"key"===e||"value"===e?n[e]===t:"label"===e?(null===(r=n.raw)||void 0===r?void 0:r.label)===t||n.label===t:(null===(o=n.raw)||void 0===o?void 0:o[e])===t;var r,o}))}},{key:"toList",value:function(e){var t=null!=e?e:{},n=t.valueField,r=void 0===n?"value":n,o=t.labelField,u=void 0===o?"label":o,i=t.extra;return Array.from(this).map((function(e){var t="function"==typeof r?r(e):r,n="function"==typeof u?u(e):u,o=i?i(e):{};return T()(j()(j()({},t,e.value),n,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,n=void 0===t?"value":t,r=e.valueSelector,o=void 0===r?"label":r;return this.reduce((function(e,t){var r,u;return r="function"==typeof n?n(t):t[n],u="function"==typeof o?o(t):t[o],e[r]=u,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"))}}]),n}(Array);var D=S()((function e(){P()(this,e)}));N=Symbol.hasInstance;var R=function(e){x()(n,e);var t=O()(n);function n(){var e,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=arguments.length>1?arguments[1]:void 0;P()(this,n),e=t.call(this),j()(m()(e),"__options__",void 0),j()(m()(e),"_ds",void 0);var c=Object.defineProperty,v=Object.freeze;c(m()(e),"__options__",{value:a});var p=Object.keys(r),y=new B(r,a);return v(y),e[p.includes("items")?o:"items"]=y,c(m()(e),"_ds",{value:y}),e[p.includes("keys")?u:"keys"]=y[u],e[p.includes("values")?i:"values"]=y[i],e[p.includes("named")?f:"named"]=y.named,e[p.includes("meta")?s:"meta"]=y.meta,y.forEach((function(t){e[t.key]=t.value})),c(m()(e),p.includes("labels")?l:"labels",{get:function(){return this._ds.labels},enumerable:!0}),v(m()(e)),e}return S()(n,[{key:v,get:function(){return!0}},{key:a,get:function(){return this.__options__}},{key:N,value:function(e){return e instanceof this._ds}},{key:"name",get:function(){var e,t=this.__options__;if("function"==typeof(null==t?void 0:t.name))return t.name(void 0);var n=null!==(e=null==t?void 0:t.localize)&&void 0!==e?e:z.localize;return"function"==typeof n?n(null==t?void 0:t.name):null==t?void 0:t.name}},{key:"label",value:function(e){return this._ds.label(e)}},{key:"key",value:function(e){return this._ds.key(e)}},{key:"item",value:function(e){return this._ds.item(e)}},{key:"raw",value:function(e){return null!=e?this._ds.raw(e):this._ds.raw()}},{key:"has",value:function(e){return this._ds.has(e)}},{key:"findBy",value:function(){var e;return(e=this._ds).findBy.apply(e,arguments)}},{key:"toList",value:function(e){return this._ds.toList(e)}},{key:"toMap",value:function(e){return this._ds.toMap(e)}},{key:"valueType",get:function(){return this._ds.valueType}},{key:"keyType",get:function(){return this._ds.keyType}},{key:"rawType",get:function(){return this._ds.rawType}}]),n}(D),U=Object.defineProperty,K=function(e,t){if(Array.isArray(e)){var n=function(e,t){var n=null!=t?t:{},r=n.getValue,o=void 0===r?"value":r,u=n.getLabel,i=void 0===u?"label":u,l=n.getKey,a=void 0===l?"key":l;return e.reduce((function(e,t){var n,r,u="function"==typeof o?o(t):t[o],l="function"==typeof i?i(t):t[i],s=void 0;a&&(s="function"==typeof a?a(t):t[a]);var f=Object.assign({},t,{label:l||(null!==(n=s)&&void 0!==n?n:"")||(null!=u?u.toString():u),value:u});return delete f.key,e[null!==(r=s)&&void 0!==r?r:u]=f,e}),{})}(e,t);return new R(n,t)}return new R(e,t)};U(K,"config",{get:function(){return I},enumerable:!0,configurable:!1}),U(K,"localize",{get:function(){return z.localize},set:function(e){z.localize=e},enumerable:!0,configurable:!1}),K.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))},K.install=function(e,t){e(t,K)},K.isEnum=function(e){return Boolean(e&&"object"===b()(e)&&!0===e[v])},U(K,Symbol.hasInstance,{value:function(e){return K.isEnum(e)},writable:!1,configurable:!0})}(),r}()}));
//# sourceMappingURL=enum-plus-legacy.min.js.map