@servicestack/react
Version:
React controls for ServiceStack Apps
1 lines • 10.2 kB
JavaScript
var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(e){for(var t,a=1,n=arguments.length;a<n;a++)for(var l in t=arguments[a])Object.prototype.hasOwnProperty.call(t,l)&&(e[l]=t[l]);return e}).apply(this,arguments)},__rest=this&&this.__rest||function(e,t){var a={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(a[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var l=0;for(n=Object.getOwnPropertySymbols(e);l<n.length;l++)t.indexOf(n[l])<0&&Object.prototype.propertyIsEnumerable.call(e,n[l])&&(a[n[l]]=e[n[l]])}return a};!function(e){if("object"==typeof module&&"object"==typeof module.exports){var t=e(require,exports);void 0!==t&&(module.exports=t)}else"function"==typeof define&&define.amd?define(["require","exports","react","react-router-dom","@servicestack/client"],e):"undefined"!=typeof window&&e(window.require||function(){},window["@servicestack/react"]={})}(function(e,h){"use strict";Object.defineProperty(h,"__esModule",{value:!0});var g=e("react")||window.React,s=e("react-router-dom")||window.ReactRouterDOM,y=e("@servicestack/client")||window["@servicestack/client"];h.ErrorSummary=function(e){var t=e.responseStatus,a=e.except,n={responseStatus:t},l=y.errorResponseExcept.call(n,a);return l?g.createElement("div",{className:"alert alert-danger mt-2"},l):null},h.Input=function(e){var t=e.responseStatus,a=e.type,n=e.id,l=e.placeholder,s=e.label,r=e.help,i=e.inputClass,c=e.inline,o=e.value,u=e.values,m=e.onChange,v=__rest(e,["responseStatus","type","id","placeholder","label","help","inputClass","inline","value","values","onChange"]);a||(a="text"),i||(i="form-control-lg");function d(e){k&&k(e.target.value)}function h(e){k&&k(function(e){if(null==e.form)throw new Error("multiple values must be within a <form> element");for(var t=[],a=e.form.elements,n=0;n<a.length;n++){var l=a[n];l.name==e.name&&l.checked&&t.push(l.value)}return t}(e.target))}var p="radio"==a||"checkbox"==a,f={responseStatus:t},N=n&&y.errorResponse.call(f,n),b=!!N,k=m,E=(u||[]).map(function(e){return"string"==typeof e?{key:e,value:e}:e});return g.createElement("div",null,s?g.createElement("label",{className:p?"form-check-label":"form-label",htmlFor:n},s):null,p?g.createElement("div",{className:y.classNames("form-check",{"is-invalid":b,"form-control":b})},"radio"==a?E.map(function(e){return g.createElement("div",{key:n+"-"+e.key,className:y.classNames("custom-control","custom-radio",{"custom-control-inline":c})},g.createElement("input",{type:"radio",id:n+"-"+e.key,name:n,value:e.key,className:y.classNames("custom-control-input",i),checked:o==e.key,onChange:d}),g.createElement("label",{className:"custom-control-label",htmlFor:n+"-"+e.key},e.value))}):null,"checkbox"==a?E.map(function(e){return g.createElement("div",{key:n+"-"+e.key,className:y.classNames("custom-control","custom-checkbox",{"custom-control-inline":c})},g.createElement("input",{type:"checkbox",id:n+"-"+e.key,name:n,value:e.key,className:"form-check-input",checked:function(e){return"checkbox"==a?o instanceof Array&&0<=o.indexOf(e):o==e}(e.key),onChange:h}),g.createElement("label",{className:"form-check-label",htmlFor:n+"-"+e.key},e.value))}):null,r?g.createElement("small",{className:"text-muted"},r):null):null,p?null:g.createElement("input",__assign({type:a,id:n,name:n,value:o,className:y.classNames("form-control",{"is-invalid":N},i),onChange:function(e){k&&k(e.target.value)},placeholder:l},v)),!p&&r?g.createElement("small",{className:"text-muted"},r):null,N?g.createElement("div",{className:"invalid-feedback"},N):null)},h.Select=function(e){var t=e.responseStatus,a=e.id,n=e.label,l=e.help,s=e.selectClass,r=e.multiple,i=e.value,c=e.values,o=e.onChange,u={responseStatus:t},m=a&&y.errorResponse.call(u,a),v=(c||[]).map(function(e){return"string"==typeof e?{key:e,value:e}:e}),d=o;return g.createElement("div",null,n?g.createElement("label",{className:"form-label",htmlFor:a},n):null,g.createElement("select",{id:a,name:a,className:y.classNames("form-control",{"is-invalid":m},s),multiple:r,value:i,onChange:function(e){d&&d(r?function(e){for(var t=[],a=0;a<e.options.length;a++)e.options[a].selected&&t.push(e.options[a].value);return t}(e.target):e.target.value)}},v.map(function(e){return g.createElement("option",{key:e.key,value:e.key},e.value)})),l?g.createElement("small",{className:"text-muted"},l):null,m?g.createElement("div",{className:"invalid-feedback"},m):null)},h.CheckBox=function(e){var t=e.responseStatus,a=e.id,n=e.value,l=e.help,s=e.onChange,r=e.inputClass,i={responseStatus:t},c=a&&y.errorResponse.call(i,a),o=s;return g.createElement("div",null,g.createElement("div",{className:y.classNames("form-check",{"is-invalid":c,"form-control":c})},g.createElement("input",{type:"checkbox",id:a,name:a,onChange:function(e){o&&o(e.target.checked)},checked:n,value:"true",className:y.classNames("form-check-input",{"is-invalid":c},r)}),g.createElement("label",{className:"form-check-label",htmlFor:a},e.children)),l?g.createElement("small",{className:"text-muted"},l):null,c?g.createElement("div",{className:"invalid-feedback"},c):null)},h.Nav=s.withRouter(function(e){var t=e.items,a=e.options,n=__rest(e,["items","options"]);return null==t||0===t.length?null:(a=Object.assign(y.NavDefaults.forNav(a),n),g.createElement("ul",{className:a.navClass},t.map(function(e){return g.createElement(h.NavLink,{key:e.href||e.label,item:e,options:a})})))}),h.Navbar=s.withRouter(function(e){var t=e.items,a=e.options,n=__rest(e,["items","options"]);return null==t||0===t.length?null:(a=Object.assign(y.NavbarDefaults.forNavbar(a),n),g.createElement(h.Nav,{items:t,options:a}))}),h.ALink=function(e){var t=e.to,a=e.onClick,n=e.children,l=__rest(e,["to","onClick","children"]);return null!=a?g.createElement("a",__assign({href:"#",onClick:function(e){e.preventDefault(),a&&a(e)}},l),n):t.startsWith("http://")||t.startsWith("https://")||t.startsWith("//")?g.createElement("a",__assign({href:t},l),n):g.createElement(s.Link,__assign({to:t},l),n)},h.NavLink=s.withRouter(function(e){var t=e.item,a=e.options,n=e.activePath,l=e.navItemClass,s=e.navLinkClass,r=e.history;if(a=a||y.NavDefaults.forNav(),null==t||!y.NavDefaults.showNav(t,a.attributes))return null;a.activePath=n||a.activePath||r.location.pathname,a.navItemClass=l||a.navItemClass,a.navLinkClass=s||a.navLinkClass;var i=t.children||[],c=0<i.length,o=c?a.childNavItemClass:a.navItemClass,u=c?a.childNavLinkClass:a.navLinkClass,m={},v=t.id;c&&(null==v&&(v=y.safeVarName(t.label)),m.role="button",m["data-toggle"]="dropdown",m["aria-haspopup"]="true",m["aria-expanded"]="false");var d=y.trimEnd(a.baseHref||"","/");return g.createElement("li",{className:y.classNames(t.className,o)},g.createElement(h.ALink,__assign({to:d+t.href,className:y.classNames(u,y.activeClassNav(t,a.activePath)),id:v},m),t.label),g.createElement("div",{className:a.childNavMenuClass,"aria-labelledby":v},i.map(function(e){return"-"===e.label?g.createElement("div",{className:"dropdown-divider"}):g.createElement(h.ALink,{to:d+e.href,className:y.classNames(a.childNavMenuItemClass,y.activeClassNav(e,a.activePath))},e.label)})))}),h.NavButtonGroup=s.withRouter(function(e){var t=e.items,a=e.options,n=__rest(e,["items","options"]);return null==t||0===t.length?null:(a=Object.assign(y.NavButtonGroupDefaults.forNavButtonGroup(a),n),g.createElement("div",{className:y.classNames(n.block?null:n.vertical?"btn-group-vertical":a.navClass)},t.map(function(e){return g.createElement(h.NavLinkButton,__assign({key:e.href||e.label,item:e,options:a},n))})))}),h.NavLinkButton=s.withRouter(function(e){var t=e.item,a=e.options,n=e.activePath,l=e.navItemClass,s=e.history,r=__rest(e,["item","options","activePath","navItemClass","history"]);if(a=Object.assign(y.NavLinkDefaults.forNavLink(a),r),null==t||!y.NavDefaults.showNav(t,a.attributes))return null;a.activePath=n||a.activePath||s.location.pathname,a.navItemClass=l||a.navItemClass;var i=y.trimEnd(a.baseHref||"","/");return g.createElement(h.ALink,{to:i+t.href,id:t.id,className:y.classNames(t.className,a.navItemClass,y.activeClassNav(t,a.activePath),y.btnClasses(r))},t.iconClass?g.createElement("i",{className:t.iconClass}):null,t.label)}),h.LinkButton=s.withRouter(function(e){var t=e.href,a=e.exact,n=e.className,l=e.options,s=e.history,r=e.children,i=__rest(e,["href","exact","className","options","history","children"]),c=null!=l?l.activePath:"";c||(c=s.location.pathname),l=Object.assign(y.LinkButtonDefaults.forLinkButton(l),i);var o=y.trimEnd(l.baseHref||"","/"),u=y.pick(i,["id","type","name","autofocus","disabled","value","onClick"]);return g.createElement(h.ALink,__assign({to:o+t},u,{className:y.classNames(n,l.navItemClass,y.activeClass(t||null,c,a),y.btnClasses(i))}),r)}),h.Button=function(e){e.type,e.id;var t=e.className,a=e.children,n=__rest(e,["type","id","className","children"]),l=y.pick(n,["id","type","name","autofocus","disabled","value","onClick"]);return g.createElement("button",__assign({},l,{className:y.classNames("btn",t,y.btnClasses(n))}),a)},h.Fallback=s.withRouter(function(e){var t=e.location;return g.useEffect(function(){0<=t.pathname.indexOf("://")&&(window.location.href=t.pathname.substring(1))},[]),g.createElement("div",{className:"fallback"},g.createElement("h3",null,"No matching ",g.createElement("code",null,"Route")," found for ",g.createElement("code",null,t.pathname)))}),h.Forbidden=function(e){var t=e.message,a=e.path,n=e.role,l=e.permission;__rest(e,["message","path","role","permission"]);return g.createElement("div",{className:"forbidden"},g.createElement("h3",null,"You are not authorized to access ",a?g.createElement("code",null,a):g.createElement("span",null,"this page")),null!=t?g.createElement("p",null,t):n?g.createElement("p",null,"Missing role ",g.createElement("code",null,n)):l?g.createElement("p",null,"Missing permission ",g.createElement("code",null,l)):null)},h.SvgImage=function(e){var t=e.id,a=e.fill,n=e.className,l=e.style,s=e.width,r=e.height,i=e.baseUrl,c="/metadata/svg/"+t+".svg";a&&(c+="?fill="+encodeURIComponent(a)),l=l||{},s&&(l.width=s),r&&(l.height=r);var o=i?y.combinePaths(i,c):c;return g.createElement("img",{src:o,className:n,style:l})}});