UNPKG

react-link-group

Version:

A ReactJS component for rendering a grouping of clickable links. Clicking a link executes a callback function, passing it the id of the selected link

6 lines 16.5 kB
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("prop-types"),require("react")):"function"==typeof define&&define.amd?define(["prop-types","react"],t):"object"==typeof exports?exports.reactLinkGroup=t(require("prop-types"),require("react")):e.reactLinkGroup=t(e.PropTypes,e.React)}(window,(function(e,t){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="/",r(r.s=10)}([function(t,r){t.exports=e},function(e,r){e.exports=t},function(e,t,r){!function(e,t){"use strict";var r=function(e,r,n){void 0===n&&(n={});var o=[{theme:e,prefix:n.prefix,compose:n.compose,noCache:n.noCache,noParseComposes:n.noParseComposes}];if(Array.isArray(r)){var i=r,a=Array.isArray(i),s=0;for(i=a?i:i[Symbol.iterator]();;){var c;if(a){if(s>=i.length)break;c=i[s++]}else{if((s=i.next()).done)break;c=s.value}var f=c;"object"==typeof f&&"object"==typeof f.theme&&o.push({theme:f.theme,prefix:f.themePrefix,compose:f.themeCompose,noCache:f.themeNoCache,noParseComposes:f.themeNoParseComposes})}}else"object"==typeof r.theme&&o.push({theme:r.theme,prefix:r.themePrefix,compose:r.themeCompose,noCache:r.themeNoCache,noParseComposes:r.themeNoParseComposes});return t.composeTheme(o)};Object.defineProperty(e,"Compose",{enumerable:!0,get:function(){return t.Compose}}),e.composeThemeFromProps=r,e.mixThemeWithProps=function(e,t,n){void 0===n&&(n={});var o="object"==typeof n.props?n.props:Array.isArray(t)?t[0]:t,i=(o.themePrefix,o.themeCompose,o.themeNoCache,o.themeNoParseComposes,function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(o,["themePrefix","themeCompose","themeNoCache","themeNoParseComposes"]));return i.theme=r(e,t,n),i},Object.defineProperty(e,"__esModule",{value:!0})}(t,r(5))},function(e,t,r){var n=r(6);"string"==typeof n&&(n=[[e.i,n,""]]);var o={hmr:!0,transform:void 0,insertInto:void 0};r(8)(n,o);n.locals&&(e.exports=n.locals)},function(e,t,r){var n; /*! Copyright (c) 2017 Jed Watson. Licensed under the MIT License (MIT), see http://jedwatson.github.io/classnames */!function(){"use strict";var r={}.hasOwnProperty;function o(){for(var e=[],t=0;t<arguments.length;t++){var n=arguments[t];if(n){var i=typeof n;if("string"===i||"number"===i)e.push(n);else if(Array.isArray(n)&&n.length){var a=o.apply(null,n);a&&e.push(a)}else if("object"===i)for(var s in n)r.call(n,s)&&n[s]&&e.push(s)}}return e.join(" ")}e.exports?(o.default=o,e.exports=o):void 0===(n=function(){return o}.apply(t,[]))||(e.exports=n)}()},function(e,t,r){!function(e){"use strict";function t(){return(t=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function r(e,t){var r=t.length,n={};for(var o in e)e.hasOwnProperty(o)&&0===o.indexOf(t)&&(n[o.substr(r)]=e[o]);return n}function n(e){var t=Object.create(null),r=!1;for(var n in e)if(e.hasOwnProperty(n)){var o=" "+e[n]+" ";for(var i in e)e.hasOwnProperty(i)&&i!==n&&-1!==(e[i]+" ").indexOf(o)&&(void 0===t[n]?(r=!0,t[n]=[i]):t[n].push(i))}if(r)return t}var o;(o=e.Compose||(e.Compose={})).Merge="merge",o.Assign="assign",o.Replace="replace";var i=new WeakMap,a=new WeakMap,s=new WeakMap,c=function(e,t){var n,o=a.get(e);return void 0===o?(o=[],a.set(e,o)):n=o.find((function(r){return r.theme===e&&r.prefix===t})),void 0===n&&(n={theme:e,prefix:t,finalTheme:r(e,t)},o.push(n)),n.finalTheme},f=function(e){var t=s.get(e);return void 0===t&&void 0!==(t=n(e))&&s.set(e,t),t};e.composeTheme=function(o){var a,s,u=o[0],p=!0!==u.noCache,l="string"==typeof u.compose?u.compose:e.Compose.Merge;a="string"==typeof u.prefix&&u.prefix.length>0?c(u.theme,u.prefix):u.theme;for(var d=function(d){var h=o[d],m=h.theme,v=h.prefix,y=h.compose,b=h.noParseComposes,g=h.noCache,x=void 0!==g&&g,k="boolean"==typeof b?!1===b:!0!==u.noParseComposes;"string"==typeof y&&(l=y),x&&p&&(p=!1);var C=void 0;if(p&&l!==e.Compose.Replace){var _=i.get(m);if(void 0===_)_=[],i.set(m,_);else if(void 0!==(C=_.find((function(e){return e.againstTheme===a&&e.prefix===v&&e.composeMethod===l&&e.parseComposes===k}))))return a=C.composedTheme,"continue";C={againstTheme:a,prefix:v,composeMethod:l,parseComposes:k},_.push(C)}var O=void 0;if(O="string"==typeof v&&v.length>0?(x?r:c)(m,v):m,l===e.Compose.Replace)return a=O,k&&d<o.length-1&&(s=p?f(a):n(a)),"continue";if(1===d&&!0!==b&&(s=p?f(u.theme):n(u.theme)),l===e.Compose.Merge){var w=O;for(var j in O=t({},a),w)if(w.hasOwnProperty(j)){var P=O[j],L=w[j];if(void 0!==P&&(L=P+" "+L,!0===k&&void 0!==s&&void 0!==s[j])){var S=new RegExp("\\b"+P+"\\b"),T=s[j],R=Array.isArray(T),M=0;for(T=R?T:T[Symbol.iterator]();;){var A;if(R){if(M>=T.length)break;A=T[M++]}else{if((M=T.next()).done)break;A=M.value}var U=A;O[U]=O[U].replace(S,L)}}O[j]=L}}else if(l===e.Compose.Assign)if(void 0===s||!1===k)O=t({},a,{},O);else{var N=O;for(var E in O=t({},a),N)if(N.hasOwnProperty(E)){var G=O[E],B=N[E];if(void 0!==s[E]){var q=new RegExp("\\b"+G+"\\b"),I=s[E],D=Array.isArray(I),F=0;for(I=D?I:I[Symbol.iterator]();;){var W;if(D){if(F>=I.length)break;W=I[F++]}else{if((F=I.next()).done)break;W=F.value}var Y=W;O[Y]=O[Y].replace(q,B)}}O[E]=B}}void 0!==C&&(C.composedTheme=O),a=O},h=1;h<o.length;h++)d(h);return a},e.filterThemeWithPrefix=r,e.getCachedPrefixedTheme=c,e.getCachedThemeCompositionDependencies=f,e.getThemeCompositionDependencies=n,Object.defineProperty(e,"__esModule",{value:!0})}(t)},function(e,t,r){(t=r(7)(!1)).push([e.i,".LinkGroup__reactLinkGroup___1n9la{padding:10px 0px;width:100%;list-style-type:none;color:gray;font-family:Verdana, Geneva, Tahoma, sans-serif;font-size:14px}.LinkGroup__reactLink___1Y4MU{display:block;float:left;margin:0px;padding:10px 50px;cursor:pointer;border-bottom:solid 2px darkgrey}.LinkGroup__reactLink___1Y4MU:last-child{float:none;overflow:hidden}.LinkGroup__reactLink___1Y4MU.LinkGroup__selected___1xVxS{text-decoration:none;font-weight:bold;color:black;cursor:default;border-bottom:solid 3px #f7415f}\n",""]),t.locals={reactLinkGroup:"LinkGroup__reactLinkGroup___1n9la",reactLink:"LinkGroup__reactLink___1Y4MU",selected:"LinkGroup__selected___1xVxS"},e.exports=t},function(e,t,r){"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var r=function(e,t){var r=e[1]||"",n=e[3];if(!n)return r;if(t&&"function"==typeof btoa){var o=(a=n,s=btoa(unescape(encodeURIComponent(JSON.stringify(a)))),c="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(s),"/*# ".concat(c," */")),i=n.sources.map((function(e){return"/*# sourceURL=".concat(n.sourceRoot||"").concat(e," */")}));return[r].concat(i).concat([o]).join("\n")}var a,s,c;return[r].join("\n")}(t,e);return t[2]?"@media ".concat(t[2]," {").concat(r,"}"):r})).join("")},t.i=function(e,r,n){"string"==typeof e&&(e=[[null,e,""]]);var o={};if(n)for(var i=0;i<this.length;i++){var a=this[i][0];null!=a&&(o[a]=!0)}for(var s=0;s<e.length;s++){var c=[].concat(e[s]);n&&o[c[0]]||(r&&(c[2]?c[2]="".concat(r," and ").concat(c[2]):c[2]=r),t.push(c))}},t}},function(e,t,r){var n,o,i={},a=(n=function(){return window&&document&&document.all&&!window.atob},function(){return void 0===o&&(o=n.apply(this,arguments)),o}),s=function(e,t){return t?t.querySelector(e):document.querySelector(e)},c=function(e){var t={};return function(e,r){if("function"==typeof e)return e();if(void 0===t[e]){var n=s.call(this,e,r);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}t[e]=n}return t[e]}}(),f=null,u=0,p=[],l=r(9);function d(e,t){for(var r=0;r<e.length;r++){var n=e[r],o=i[n.id];if(o){o.refs++;for(var a=0;a<o.parts.length;a++)o.parts[a](n.parts[a]);for(;a<n.parts.length;a++)o.parts.push(g(n.parts[a],t))}else{var s=[];for(a=0;a<n.parts.length;a++)s.push(g(n.parts[a],t));i[n.id]={id:n.id,refs:1,parts:s}}}}function h(e,t){for(var r=[],n={},o=0;o<e.length;o++){var i=e[o],a=t.base?i[0]+t.base:i[0],s={css:i[1],media:i[2],sourceMap:i[3]};n[a]?n[a].parts.push(s):r.push(n[a]={id:a,parts:[s]})}return r}function m(e,t){var r=c(e.insertInto);if(!r)throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.");var n=p[p.length-1];if("top"===e.insertAt)n?n.nextSibling?r.insertBefore(t,n.nextSibling):r.appendChild(t):r.insertBefore(t,r.firstChild),p.push(t);else if("bottom"===e.insertAt)r.appendChild(t);else{if("object"!=typeof e.insertAt||!e.insertAt.before)throw new Error("[Style Loader]\n\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\n Must be 'top', 'bottom', or Object.\n (https://github.com/webpack-contrib/style-loader#insertat)\n");var o=c(e.insertAt.before,r);r.insertBefore(t,o)}}function v(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e);var t=p.indexOf(e);t>=0&&p.splice(t,1)}function y(e){var t=document.createElement("style");if(void 0===e.attrs.type&&(e.attrs.type="text/css"),void 0===e.attrs.nonce){var n=function(){0;return r.nc}();n&&(e.attrs.nonce=n)}return b(t,e.attrs),m(e,t),t}function b(e,t){Object.keys(t).forEach((function(r){e.setAttribute(r,t[r])}))}function g(e,t){var r,n,o,i;if(t.transform&&e.css){if(!(i="function"==typeof t.transform?t.transform(e.css):t.transform.default(e.css)))return function(){};e.css=i}if(t.singleton){var a=u++;r=f||(f=y(t)),n=C.bind(null,r,a,!1),o=C.bind(null,r,a,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(r=function(e){var t=document.createElement("link");return void 0===e.attrs.type&&(e.attrs.type="text/css"),e.attrs.rel="stylesheet",b(t,e.attrs),m(e,t),t}(t),n=O.bind(null,r,t),o=function(){v(r),r.href&&URL.revokeObjectURL(r.href)}):(r=y(t),n=_.bind(null,r),o=function(){v(r)});return n(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;n(e=t)}else o()}}e.exports=function(e,t){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(t=t||{}).attrs="object"==typeof t.attrs?t.attrs:{},t.singleton||"boolean"==typeof t.singleton||(t.singleton=a()),t.insertInto||(t.insertInto="head"),t.insertAt||(t.insertAt="bottom");var r=h(e,t);return d(r,t),function(e){for(var n=[],o=0;o<r.length;o++){var a=r[o];(s=i[a.id]).refs--,n.push(s)}e&&d(h(e,t),t);for(o=0;o<n.length;o++){var s;if(0===(s=n[o]).refs){for(var c=0;c<s.parts.length;c++)s.parts[c]();delete i[s.id]}}}};var x,k=(x=[],function(e,t){return x[e]=t,x.filter(Boolean).join("\n")});function C(e,t,r,n){var o=r?"":n.css;if(e.styleSheet)e.styleSheet.cssText=k(t,o);else{var i=document.createTextNode(o),a=e.childNodes;a[t]&&e.removeChild(a[t]),a.length?e.insertBefore(i,a[t]):e.appendChild(i)}}function _(e,t){var r=t.css,n=t.media;if(n&&e.setAttribute("media",n),e.styleSheet)e.styleSheet.cssText=r;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(r))}}function O(e,t,r){var n=r.css,o=r.sourceMap,i=void 0===t.convertToAbsoluteUrls&&o;(t.convertToAbsoluteUrls||i)&&(n=l(n)),o&&(n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+" */");var a=new Blob([n],{type:"text/css"}),s=e.href;e.href=URL.createObjectURL(a),s&&URL.revokeObjectURL(s)}},function(e,t){e.exports=function(e){var t="undefined"!=typeof window&&window.location;if(!t)throw new Error("fixUrls requires window.location");if(!e||"string"!=typeof e)return e;var r=t.protocol+"//"+t.host,n=r+t.pathname.replace(/\/[^\/]*$/,"/");return e.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi,(function(e,t){var o,i=t.trim().replace(/^"(.*)"$/,(function(e,t){return t})).replace(/^'(.*)'$/,(function(e,t){return t}));return/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/|\s*$)/i.test(i)?e:(o=0===i.indexOf("//")?i:0===i.indexOf("/")?r+i:n+i.replace(/^\.\//,""),"url("+JSON.stringify(o)+")")}))}},function(e,t,r){"use strict";r.r(t);var n=r(1),o=r.n(n),i=r(0),a=r.n(i),s=r(2),c=r(4),f=r.n(c),u=r(3),p=r.n(u),l=function(e){var t=e.id,r=e.displayName,n=e.value,i=e.selected,a=e.selectionCallback,c="";void 0!==n&&(c=" (".concat(n,")"));var u=Object(s.composeThemeFromProps)(p.a,e,{compose:"Replace"});return o.a.createElement("li",{className:i?f()(u.reactLink,u.selected):u.reactLink,onClick:function(){return a(t)}},r,c)},d=l;function h(e){return(h="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)}function m(){return(m=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function v(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function y(e,t){return(y=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function b(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=k(e);if(t){var o=k(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return g(this,r)}}function g(e,t){return!t||"object"!==h(t)&&"function"!=typeof t?x(e):t}function x(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function k(e){return(k=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}l.propTypes={id:a.a.string,displayName:a.a.string.isRequired,value:a.a.oneOfType([a.a.string,a.a.number]),selected:a.a.bool,selectionCallback:a.a.func.isRequired},l.defaultPrps={selected:!1};var C=function(e){!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}}),t&&y(e,t)}(a,e);var t,r,n,i=b(a);function a(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,a),(t=i.call(this,e)).linkSelection=t.linkSelection.bind(x(t)),t.state={selected:void 0},t}return t=a,(r=[{key:"componentDidMount",value:function(){var e=this.props.selected;e&&this.linkSelection(e)}},{key:"componentDidUpdate",value:function(e){var t=this.props.selected;t!==e.selected&&this.linkSelection(t)}},{key:"linkSelection",value:function(e){var t=this.props.selectionCallback;this.state.selected!==e&&(this.setState({selected:e}),t&&t(e))}},{key:"render",value:function(){var e=this,t=this.props,r=t.links,n=t.autoSelect,i=this.state.selected,a=Object(s.composeThemeFromProps)(p.a,this.props,{compose:"Replace"}),c=r.map((function(t,r){return o.a.createElement(d,m({key:t.id},e.props,t,{selected:t.id===i||void 0===i&&0===r&&n,selectionCallback:e.linkSelection}))}));return o.a.createElement("ul",{className:a.reactLinkGroup},c)}}])&&v(t.prototype,r),n&&v(t,n),a}(n.Component),_=C;C.propTypes={links:a.a.arrayOf(a.a.shape({id:a.a.string,displayName:a.a.string.isRequired,value:a.a.oneOfType([a.a.string,a.a.number])})),selected:a.a.string,selectionCallback:a.a.func,autoSelect:a.a.bool},C.defaultProps={links:[]};t.default=_}])}));