UNPKG

nornj-react

Version:

React bindings for NornJ template engine.

7 lines (6 loc) 4.11 kB
/*! * NornJ-React v5.3.5 * (c) Joe_Sky * Released under the MIT License. */ !function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("nornj"),require("react")):"function"==typeof define&&define.amd?define(["exports","nornj","react"],n):n((e=e||self).NornJReact={},e.NornJ,e.React)}(this,function(e,n,t){"use strict";var c="default"in n?n.default:n,o="default"in t?t.default:t,r={};function i(e,n){null!=e&&c.registerComponent(e,n)}function a(n){return c.isString(n)?function(e){return i(n,e),e}:(n.name&&i(n.name,n),n)}function f(e,n){for(var t=0;t<n.length;t++){var r=n[t];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function s(){return(s=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e}).apply(this,arguments)}function l(e){return(l=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function p(e,n){return(p=Object.setPrototypeOf||function(e,n){return e.__proto__=n,e})(e,n)}function g(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)~n.indexOf(t=i[r])||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)~n.indexOf(t=i[r])||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}function b(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function h(t,r){var o=null;return function(){var e=arguments,n=this;clearTimeout(o),o=setTimeout(function(){t.apply(n,e)},r)}}c.assign(c,{debounce:h});var u=function(){function u(e){var n;!function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}(this,u),(n=function(e,n){return!n||"object"!=typeof n&&"function"!=typeof n?b(e):n}(this,l(u).call(this,e))).componentConfig=void 0,n.changeEventName=void 0,n.$this=void 0,n.emitChangeDebounced=void 0,n.emitChange=function(e){n.props[n.changeEventName].apply(n.$this,e)},n.handleChange=n.handleChange.bind(b(n));var t=n.props.debounceDirectiveOptions,r=t.context.$this,o=t.props,i=t.value,a=o&&o.arguments;return n.componentConfig=c.getComponentConfig(t.tagName)||{},n.changeEventName=a&&a[0].name||n.componentConfig.changeEventName||"onChange",n.$this=r,n.emitChangeDebounced=h(n.emitChange,i()||100),n}return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(n&&n.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),n&&p(e,n)}(u,t.Component),function(e,n,t){n&&f(e.prototype,n),t&&f(e,t)}(u,[{key:"componentDidUpdate",value:function(e){var n=e.debounceDirectiveOptions.value,t=(0,this.props.debounceDirectiveOptions.value)();null!=t&&t!=n()&&(this.emitChangeDebounced=h(this.emitChange,t))}},{key:"handleChange",value:function(e){e&&e.persist&&e.persist(),this.emitChangeDebounced(arguments)}},{key:"render",value:function(){var e=this.props,n=e.DebounceTag,t=e.innerRef,r=g(e,["DebounceTag","debounceDirectiveOptions","innerRef"]);return o.createElement(n,s({ref:t},r,function(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}({},this.changeEventName,this.handleChange)))}}]),u}(),d=o.forwardRef(function(e,n){return o.createElement(u,s({innerRef:n},e))});n.registerExtension("debounce",function(e){var n=e.tagName,t=e.tagProps;(0,e.setTagName)(d),t.DebounceTag=n,t.debounceDirectiveOptions=e},{useExpressionInProps:!0,onlyGlobal:!0,isDirective:!0}),c.assign(r,{bindTemplate:a,registerTmpl:a}),c.config({createElement:o.createElement,outputH:!0,delimiters:{start:"{",end:"}",comment:""}});var m={hasEventObject:!0},v=c.componentConfig;v.set("input",m),v.set("select",m),v.set("textarea",m);var y=c.global;y.NornJReact=y.njr=r,e.bindTemplate=a,e.default=r,e.registerTmpl=a,Object.defineProperty(e,"__esModule",{value:!0})});