@entur-partner/common 4.5.0 → 4.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/common.cjs.development.js +4 -8
- package/dist/common.cjs.development.js.map +1 -1
- package/dist/common.cjs.production.min.js +1 -1
- package/dist/common.cjs.production.min.js.map +1 -1
- package/dist/common.esm.js +5 -9
- package/dist/common.esm.js.map +1 -1
- package/dist/styles.css +33 -33
- package/package.json +2 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("classnames"),n=require("@entur/typography"),a=require("@entur/icons"),r=require("@entur/button"),l=require("@entur/dropdown"),o=require("@entur/form"),u=require("@entur-partner/util"),i=require("@entur/expand"),s=require("@entur/modal"),c=require("react-router-dom"),m=require("@entur/menu");function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var p=d(e),f=d(t);function v(){return v=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},v.apply(this,arguments)}function g(e,t){return g=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},g(e,t)}function h(e,t){if(null==e)return{};var n,a,r={},l=Object.keys(e);for(a=0;a<l.length;a++)t.indexOf(n=l[a])>=0||(r[n]=e[n]);return r}var E=["as","children","contrast","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY","padding","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","margin","display","justifyContent","alignItems","maxWidth","width","background","color","flexDirection","flexWrap","className"];function x(e,t){if(Array.isArray(t)){var n=[];return t[0]&&n.push(e+t[0]),t[1]&&n.push(""+e+t[1]+"-lg"),t[2]&&n.push(""+e+t[2]+"-xl"),n}return[e+t]}var b,N,C,y=function(e){var t=e.as,n=void 0===t?"div":t,a=e.children,r=e.contrast,l=e.paddingTop,o=e.paddingRight,u=e.paddingBottom,i=e.paddingLeft,s=e.paddingX,c=e.paddingY,m=e.padding,d=e.marginTop,g=e.marginRight,b=e.marginBottom,N=e.marginLeft,C=e.marginX,y=e.marginY,L=e.margin,w=e.display,k=e.justifyContent,_=e.alignItems,B=e.maxWidth,P=e.width,O=e.background,S=e.color,F=e.flexDirection,z=e.flexWrap,D=e.className,I=h(e,E),M=[],A=l||c||m,R=u||c||m,T=i||s||m,V=o||s||m,j=d||y||L,q=b||y||L,H=N||C||L,W=g||C||L;r&&M.push("eds-contrast"),A&&M.push.apply(M,x("eps-pt-",A)),R&&M.push.apply(M,x("eps-pb-",R)),T&&M.push.apply(M,x("eps-pl-",T)),V&&M.push.apply(M,x("eps-pr-",V)),j&&M.push.apply(M,x("eps-mt-",j)),q&&M.push.apply(M,x("eps-mb-",q)),H&&M.push.apply(M,x("eps-ml-",H)),W&&M.push.apply(M,x("eps-mr-",W)),w&&M.push.apply(M,x("eps-",w)),k&&M.push.apply(M,x("eps-justify-",k)),_&&M.push.apply(M,x("eps-items-",_)),B&&M.push.apply(M,x("eps-max-w-",B)),P&&M.push.apply(M,x("eps-w-",P)),S&&M.push("eps-color-"+S),O&&M.push("eps-bg-"+O),F&&M.push.apply(M,x("eps-flex-",F)),z&&M.push.apply(M,x("eps-flex-wrap-",z));var U=f.default(M,D);return p.default.createElement(n,v({className:U},I),a)},L=function(t){var n=t.space,a=t.className,r=e.Children.toArray(t.children);return r.length<=1?p.default.createElement(p.default.Fragment,null,r):p.default.createElement("div",{className:a},r.map((function(e,t){return t===r.length-1?p.default.createElement("div",{key:t},e):p.default.createElement(y,{paddingBottom:n,key:t},e)})))},w=["children","className"];function k(e){var t,n;return"true"===process.env["REACT_APP_"+e]||"true"===(null==(t=window.localStorage)?void 0:t.getItem(e))||"true"===(null==(n=window.localStorage)?void 0:n.getItem("REACT_APP_"+e))}function _(e){return k(e)}exports.Environment=void 0,(C=exports.Environment||(exports.Environment={})).Local="local",C.Development="dev",C.Staging="staging",C.Production="prod";var B=((b={})[exports.Environment.Local]="#B482FB",b[exports.Environment.Development]="#5AC39A",b[exports.Environment.Staging]="#FFCA28",b),P=function(e){return B[e]},O=((N={})[exports.Environment.Local]="Local",N[exports.Environment.Development]="Dev",N[exports.Environment.Staging]="Staging",N[exports.Environment.Production]="Prod",N),S=function(e){return O[e]},F=["title","accentColor"],z=function(e){var t=e.title,n=e.accentColor,a=void 0===n?"#FF5959":n,r=h(e,F);return p.default.createElement("svg",v({width:257,height:37,viewBox:"0 0 257 37"},r),p.default.createElement("title",null,t),p.default.createElement("g",{fill:"none",fillRule:"evenodd"},p.default.createElement("path",{fill:"#FFF",d:"M0 .231V25.72h18.745v-4.318H4.869v-6.163h12.31v-4.318H4.87V4.55h13.876V.231z"}),p.default.createElement("path",{fill:a,d:"M0 36.408h45.253v-4.32H0z"}),p.default.createElement("path",{fill:"#FFF",d:"M40.384.231v15.425L23.656.231h-.521V25.72h4.869V10.573L44.732 25.72h.521V.23zM69.25 15.238h-7.267v21.17h-4.87v-21.17H49.81V10.92h19.44zM83.863 36.86c-1.646 0-3.142-.255-4.486-.765-1.345-.51-2.493-1.23-3.443-2.159-.95-.928-1.687-2.054-2.208-3.378-.522-1.323-.783-2.797-.783-4.422V10.92h4.869v15.216c0 1.277.209 2.333.626 3.169.417.836.933 1.497 1.548 1.985a5.346 5.346 0 001.982 1.01c.707.186 1.339.278 1.895.278.557 0 1.188-.092 1.896-.279a5.35 5.35 0 001.982-1.01c.614-.487 1.13-1.148 1.548-1.984.417-.836.625-1.892.625-3.169V10.92h4.87v15.216c0 1.625-.256 3.1-.766 4.422-.51 1.324-1.24 2.45-2.19 3.378-.952.929-2.1 1.648-3.444 2.159-1.344.51-2.851.766-4.52.766M104.21 24.047h5.546c1.016 0 1.854-.127 2.513-.383.658-.255 1.179-.592 1.56-1.01.381-.418.641-.888.78-1.41.138-.522.208-1.05.208-1.584 0-.627-.099-1.207-.295-1.741a3.718 3.718 0 00-.901-1.393c-.405-.394-.924-.708-1.56-.94-.636-.232-1.404-.348-2.305-.348h-5.546v8.81zm0 4.248v8.113h-4.87V10.92h11.567c1.3 0 2.49.215 3.57.644 1.08.43 2.004 1.033 2.77 1.81a8.287 8.287 0 011.794 2.787c.43 1.079.645 2.257.645 3.534 0 .952-.128 1.874-.383 2.768-.256.894-.61 1.7-1.063 2.42a7.32 7.32 0 01-1.672 1.863 5.929 5.929 0 01-2.178 1.096l6.339 8.566h-5.808l-5.893-8.113h-4.818z"}),p.default.createElement("g",{fill:a},p.default.createElement("path",{d:"M141.051 23.448h5.628c4.185 0 5.989-1.984 5.989-4.942 0-2.742-1.515-4.618-5.989-4.618h-5.628v9.56zm0 3.067v9.776h-3.571V10.75h9.632c6.674 0 9.127 3.211 9.127 7.54 0 4.979-3.102 8.226-9.2 8.226h-5.988zM169.695 28.715c-1.371-.288-2.958-.505-4.401-.505-2.85 0-4.041 1.263-4.041 3.139s1.407 2.706 3.463 2.706c2.49 0 4.979-1.443 4.979-4.221v-1.119zm-4.293-2.958c1.551 0 3.174.253 4.293.469v-.83c0-2.525-1.154-3.896-4.33-3.896-2.164 0-3.824.866-4.942 2.092l-2.02-2.272c1.732-1.66 3.644-2.598 7.07-2.598 5.052 0 7.469 1.876 7.469 7.215v10.354h-3.211V34.02h-.108c-1.082 1.767-3.211 2.705-5.592 2.705-3.32 0-6.241-1.66-6.241-5.303 0-3.103 1.912-5.664 7.612-5.664zM178.965 19.191h3.211v2.886h.108c.938-1.984 2.922-3.355 5.231-3.355.47 0 .938.036 1.335.144l-.144 3.14a6.77 6.77 0 00-1.552-.181c-3.246 0-4.798 2.633-4.798 5.483v8.983h-3.39v-17.1zM199.961 36.291h-1.912c-4.004 0-5.988-.938-5.988-5.772v-8.55h-2.778V19.19h2.778v-4.654h3.355v4.654h4.473v2.778h-4.473v7.973c0 3.427 1.587 3.535 3.319 3.535h1.226v2.814zM219.767 36.291h-3.391V26.84c0-2.778-1.083-5.375-4.257-5.375-3.14 0-5.268 2.597-5.268 6.169v8.658h-3.391v-17.1h3.32v2.814h.143c.794-1.623 3.067-3.283 5.99-3.283 4.941 0 6.854 3.644 6.854 8.081v9.488zM227.847 26.262h10.57c0-2.597-2.272-4.726-5.087-4.726-2.922 0-5.014 1.948-5.483 4.726zm-.036 2.453c.397 3.355 2.633 5.195 5.844 5.195 2.778 0 4.618-1.623 5.484-2.67l2.164 1.804c-1.37 1.913-4.365 3.716-8.045 3.716-4.942 0-8.73-3.535-8.73-8.55 0-5.195 3.752-9.488 8.983-9.488 5.303 0 8.009 4.365 8.009 8.19 0 .649-.036 1.226-.072 1.803H227.81zM246.245 19.191h3.21v2.886h.109c.938-1.984 2.922-3.355 5.231-3.355.469 0 .938.036 1.335.144l-.145 3.14a6.77 6.77 0 00-1.551-.181c-3.247 0-4.798 2.633-4.798 5.483v8.983h-3.391v-17.1z"}))))},D=["className","children","userName","open","onOpenChange","environment"],I=function(e){var t,l,o,u=e.className,i=e.children,s=e.userName,c=e.open,m=e.onOpenChange,d=e.environment,g=h(e,D),E=f.default("eps-overflow-menu__group",{"eps-overflow-menu__group--open":c}),x=p.default.useRef(null),b=p.default.useRef(null);return p.default.useEffect((function(){var e=function(e){A(t.current,e)||A(l.current,e)||o()};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),function(){document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e)}}),[t=x,l=b,o=function(){return m(!1)}]),p.default.createElement("div",null,p.default.createElement(r.SecondaryButton,v({className:f.default("eps-overflow-menu__button",u),onClick:function(){return m(!c)},"aria-haspopup":!0,role:"button","aria-expanded":c,ref:b},g),p.default.createElement("div",{className:"eps-overflow-menu__button-contents"},p.default.createElement("span",{className:"eds-overflow-menu__user-icon"},p.default.createElement(a.UserIcon,{inline:!0})),p.default.createElement(n.Heading6,{margin:"none",as:"span"},s,void 0!==d&&d!==exports.Environment.Production&&p.default.createElement("span",{style:{color:P(d)}}," ","(",S(d),")")),p.default.createElement("span",{className:"eps-arrow-icon"},p.default.createElement(a.DownArrowIcon,{inline:!0})))),c&&p.default.createElement("div",{className:E,role:"menu",ref:x},i))},M=function(e){return p.default.createElement("button",v({className:f.default(e.className,"eps-overflow-menu__item"),role:"menuitem"},e))};function A(e,t){return!(!e||!(e.contains(t.target)||t.composed&&t.composedPath&&t.composedPath().find((function(t){return t!==window&&e.contains(t)}))))}var R=["label","organisations","onChange","selectedOrganisationId"],T=["language","options","className","onChange"],V=function(e){var t=e.language,n=e.options,a=e.className,r=e.onChange,l=h(e,T),i=f.default("eps-language-select",a);return p.default.createElement("div",v({},l,{className:i}),p.default.createElement(o.SegmentedControl,{onChange:function(e){u.assertIsDefined(e),r(e)},selectedValue:t},n.map((function(e){return p.default.createElement(o.SegmentedChoice,{key:e.value,value:e.value},e.label,e.required&&p.default.createElement("span",{className:"asterisk-margin"},"*"))}))))},j=["title","inputComponent","languages","values","onChange","name","variant","feedback"],q=["className","inputComponent","alertLabel","alertLevel","name","languages","values","onChange","defaultLanguage","label","onBlur"],H=["children","className"],W=function(e){var t,n;function a(t){var n;return(n=e.call(this,t)||this).state={error:null},n}n=e,(t=a).prototype=Object.create(n.prototype),t.prototype.constructor=t,g(t,n),a.getDerivedStateFromError=function(e){return{error:e}};var r=a.prototype;return r.componentDidCatch=function(e,t){var n,a;null==(n=(a=this.props).handleError)||n.call(a,e,t)},r.render=function(){var e,t=this,n=this.state.error,a=this.props,r=a.fallback,l=a.children;return n?(e=r)&&"[object Function]"==={}.toString.call(e)?r({retry:function(){return t.setState({error:null})},error:n}):r:l},a}(e.Component),U=["date","locale","as","hideTime"],X=function(e){var t=e.date,n=e.locale,a=e.as,r=void 0===a?"main":a,l=e.hideTime,o=h(e,U);return p.default.createElement(r,v({},o),l?u.localeDate(t,n):u.localeDateTime(t,n))},Y=["amount","as"],K=["items","locale","className"],G=["isOpen","children","message","size","buttons","onConfirm","messages","onClose","onDismiss"],$=function(e){var t=e.isOpen,a=void 0!==t&&t,l=e.children,o=e.message,i=e.size,c=void 0===i?"medium":i,m=e.buttons,d=e.onConfirm,f=e.messages,g=e.onClose,E=e.onDismiss,x=h(e,G),b=l||o,N=g||E;return p.default.createElement(s.Modal,v({size:c,open:a,onDismiss:N},x),u.isString(b)?p.default.createElement(n.Paragraph,null,b):p.default.createElement(y,{paddingBottom:"medium"},b),p.default.createElement(r.ButtonGroup,null,d?p.default.createElement(p.default.Fragment,null,p.default.createElement(r.SecondaryButton,{onClick:N,"data-testid":"cancel-modal-button"},f.cancel),p.default.createElement(r.PrimaryButton,{onClick:d,"data-testid":"confirm-modal-button"},f.confirm)):m))},J=["children","shouldBlockNavigation"],Q=function(e){var t=e.children,n=e.fallback,a=void 0===n?null:n,r=e.permissions,l=e.oneOf,o=void 0===l?[]:l,i=e.all,s=u.hasAllPermissions(void 0===i?[]:i,r),c=u.hasOneOfPermissions(o,r);return p.default.createElement(p.default.Fragment,null,s&&c?t:a)},Z=["children","actualPermissions","all","oneOf","onReject"],ee=["as","children","fontSize","color","lineHeight","fontWeight","className"];exports.ActionBar=function(e){var t=e.children;return p.default.createElement(p.default.Fragment,null,p.default.createElement("div",{className:"eps-action-bar-padding"}),p.default.createElement("div",{className:"eps-action-bar"},t))},exports.ActionBarLeft=function(e){return p.default.createElement("div",{className:"eps-action-bar-left"},e.children)},exports.ActionBarRight=function(e){return p.default.createElement("div",{className:"eps-action-bar-right"},e.children)},exports.AuditInfo=function(e){var t=e.items,n=e.locale,a=e.className,r=h(e,K),l=f.default("ep-audit-info",a);return p.default.createElement("div",v({className:l},r),t.map((function(e,t){var a=e.value;return p.default.createElement(L,{space:"small",key:t},p.default.createElement("div",{className:"ep-audit-info-label"},e.label),p.default.createElement("div",null,u.isDate(a)||u.isDateString(a)?p.default.createElement(X,{date:a,locale:n}):p.default.createElement("span",null,a)))})))},exports.Box=y,exports.Breadcrumbs=function(e){var t=e.prependBreadcrumbItem,n=e.pathname,a=e.onBreadcrumbLookup,r="/"===n?[]:["/"];(n.length>1?n.replace(/\/$/,""):n).split("/").reduce((function(e,t){var n=e+"/"+t;return r.push(n),n}));var l=r.map((function(e){return{title:a(e),path:e}})).filter((function(e){return void 0!==e.title})),o=l.map((function(e,t){var n=e.path;return p.default.createElement(m.BreadcrumbItem,t===l.length-1?{key:n,as:"span"}:{key:n,as:c.Link,to:n},e.title)}));return p.default.createElement(m.BreadcrumbNavigation,null,t?[t].concat(o):o)},exports.ConfirmModal=$,exports.Content=function(e){var t=e.as,n=void 0===t?"main":t,a=e.children,r=f.default(["eps-content",e.className]);return p.default.createElement(n,{className:r},a)},exports.EnturPartnerLogo=function(e){var t=e.as,n=void 0===t?"nav":t,a=e.altText,r=e.environment,l=f.default(["eps-logo-wrapper",e.className]);return p.default.createElement(n,{className:l},p.default.createElement(z,{title:a,className:"logo",accentColor:void 0!==r&&r!==exports.Environment.Production?P(r):void 0}))},exports.EnturPartnerLogoSvg=z,exports.ErrorBoundary=W,exports.ExpandableMultiLanguageInput=function(e){var t=e.title,n=e.inputComponent,a=e.languages,r=e.values,l=e.onChange,o=e.name,u=e.variant,s=e.feedback,c=h(e,j);return p.default.createElement(i.ExpandablePanel,{title:t,defaultOpen:!0,contentStyle:{padding:"4px 4px 4px 4px",marginTop:"16px",marginBottom:"16px"}},p.default.createElement(L,{space:"medium"},a.map((function(e){var a=e.value,i=e.label;return p.default.createElement(n,v({"data-testid":"multi-lang-input-"+o+"-"+a,key:t+a,label:e.required?i+"*":i,variant:u&&u(a),feedback:s&&s(a),name:o,onChange:function(e){var t,n,o;t=a,n=e.target.value,o=v({},r),""!==n&&n?o[t]=n:delete o[t],l(o)},value:r[a]||""},c))}))))},exports.FeatureToggle=function(e){var t=e.children;return _(e.flag)?p.default.createElement(p.default.Fragment,null,t):null},exports.FormatCurrencyAmount=function(e){var t=e.amount,n=e.as,a=void 0===n?"span":n,r=h(e,Y),l=Number(t)||0,o=new Intl.NumberFormat("nb-NO",{maximumFractionDigits:2,minimumFractionDigits:2}).format(l);return p.default.createElement(a,v({},r),o)},exports.FormatDateTime=X,exports.LanguageSelect=V,exports.Link=function(e){return p.default.createElement(n.Link,v({},e,{as:c.Link}),e.children)},exports.LinkButton=function(e){var t=e.children,a=e.className,r=h(e,w);return p.default.createElement(n.Link,v({},r,{as:"button",className:f.default("eps-link-button",a)}),t)},exports.Menu=function(e){var t=e.as,n=void 0===t?"nav":t,a=e.children,r=f.default(["eds-contrast","eps-menu",e.className]);return p.default.createElement(n,{className:r},a)},exports.MultiLanguageInput=function(t){var n=t.className,a=t.inputComponent,r=t.alertLabel,l=t.alertLevel,o=t.name,u=t.languages,i=t.values,s=t.onChange,c=t.defaultLanguage,m=void 0===c?"nob":c,d=t.label,g=void 0===d?"":d,E=t.onBlur,x=void 0===E?function(){}:E,b=h(t,q),N=e.useState(m),C=N[0],y=N[1],w=f.default("multi-language-input",n),k=i[C];return p.default.createElement("div",{className:w,tabIndex:0,onBlur:function(e){e.persist();var t=e.currentTarget;setTimeout((function(){t&&!t.contains(document.activeElement)&&x(e)}),0)},"data-testid":"multi-lang-input-"+o},p.default.createElement(L,{space:"extraSmall"},p.default.createElement(V,{language:C,options:u,onChange:function(e){return function(e){y(e)}(e)}}),p.default.createElement(a,v({label:g,variant:l,feedback:r,name:o,className:"language-item",onChange:function(e){return t=e.target.value,n=Object.assign({},i),""!==t&&t?n[C]=t:delete n[C],void s(n);var t,n},value:k||""},b))))},exports.OrganisationDropDown=function(e){var t=e.label,n=e.organisations,a=e.onChange,r=e.selectedOrganisationId,o=h(e,R),u=n.find((function(e){return e.id===r}));return p.default.createElement(l.Dropdown,v({label:t,searchable:!0,clearable:!0,openOnFocus:!0,className:"eds-contrast",items:[].concat(n.sort((function(e,t){return e.name.localeCompare(t.name,"nb")})).map((function(e){return{value:e.id,label:e.name}}))),initialSelectedItem:u?{value:u.id,label:u.name}:null,onChange:function(e){e&&a(e.value)}},o))},exports.Pager=function(e){var t=e.onPageChange,n=e.currentPage,a=Math.ceil(e.collectionSize/e.pageSize);return p.default.createElement(m.Pagination,{pageCount:a,currentPage:n,onPageChange:function(e){t(e)}})},exports.PermissionCheck=Q,exports.PermissionCheckedRoute=function(e){var t=e.children,n=e.actualPermissions,a=e.all,r=e.oneOf,l=e.onReject,o=h(e,Z),u=p.default.createElement(c.Redirect,{to:{pathname:"/unauthorized",state:{from:o.location}}});return p.default.createElement(Q,{permissions:n,all:a,oneOf:r,fallback:l||u},p.default.createElement(c.Route,v({},o),t))},exports.RouteLeavingGuard=function(t){var n=t.children,a=t.shouldBlockNavigation,r=h(t,J),l=c.useHistory(),o=e.useState("ALLOW"),u=o[0],i=o[1],s=e.useState(l.location),m=s[0],d=s[1];return p.default.createElement(p.default.Fragment,null,p.default.createElement(c.Prompt,{message:function(e){return!a(e)||"ALLOW"!==u||(i("BLOCKED"),d(e),!1)}}),p.default.createElement($,v({onDismiss:function(){i("ALLOW")},open:"BLOCKED"===u,onConfirm:function(){l.push(m.pathname)}},r),n))},exports.Stack=L,exports.StatusLabel=function(e){var t=e.active,n=e.label,a=void 0===n?"":n,r=e.showBullet,l=e.center,o=f.default("eps-status-label__bullet",{active:void 0!==t&&t,aggressive:e.aggressiveInactive}),u=f.default("eps-status-label",{center:l});return p.default.createElement("div",{className:u},r&&p.default.createElement("div",{className:o}),p.default.createElement("div",null,a))},exports.Text=function(e){var t=e.as,n=void 0===t?"span":t,a=e.children,r=e.fontSize,l=e.color,o=e.lineHeight,u=e.fontWeight,i=e.className,s=h(e,ee),c=[];r&&c.push.apply(c,x("eps-font-size-",r)),o&&c.push.apply(c,x("eps-line-height-",o)),u&&c.push("eps-font-weight-"+u);var m=f.default(c,i);return p.default.createElement(y,v({as:n,color:l,className:m},s),a)},exports.Unbutton=function(e){var t=e.children,n=e.className,a=h(e,H);return p.default.createElement(r.Button,v({variant:"primary"},a,{className:f.default("eps-unbutton",n)}),t)},exports.UserMenu=function(t){var n=t.messages,r=t.onLogout,l=t.onLanguageChange,o=t.userName,u=t.language,i=t.environment,s=f.default(["eps-user-menu__trigger-button",t.className]),c=e.useState(!1),m=c[1];return p.default.createElement("div",{id:"eps-user-menu"},p.default.createElement(I,{open:c[0],onOpenChange:m,className:s,userName:o,environment:i},p.default.createElement("div",{id:"eps-overflow-menu"},"en"===u?p.default.createElement(M,{onClick:function(){l("nb"),m(!1)},className:"eps-overflow-menu__item"},p.default.createElement("span",{"aria-hidden":!0,className:"eps-overflow-menu__icon-margin"},p.default.createElement(a.NorwayIcon,{size:"1rem",inline:!0})),n.switchLanguage):p.default.createElement(M,{onClick:function(){l("en"),m(!1)},className:"eps-overflow-menu__item"},p.default.createElement("span",{"aria-hidden":!0,className:"eps-overflow-menu__icon-margin"},p.default.createElement(a.UKIcon,{size:"1rem",inline:!0})),n.switchLanguage),p.default.createElement(M,{onClick:function(){r(),m(!1)},"data-testid":"user-menu-logout",className:"eps-overflow-menu__item"},p.default.createElement("span",{"aria-hidden":!0},p.default.createElement(a.UploadIcon,{size:"1rem",inline:!0,style:{transform:"rotate(90deg)"}})),n.logout))))},exports.featureFlag=k,exports.getColorForEnvironment=P,exports.getHumanReadableEnvironment=S,exports.responsiveProp=x,exports.useEventListener=function(t,n,a){void 0===a&&(a=window);var r=e.useRef();e.useEffect((function(){r.current=n}),[n]),e.useEffect((function(){if(a&&a.addEventListener){var e=function(e){return null==r.current?void 0:r.current(e)};return a.addEventListener(t,e),function(){a.removeEventListener(t,e)}}}),[t,a])},exports.useFeatureToggle=_;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("classnames"),n=require("@entur/typography"),a=require("@entur/icons"),r=require("@entur/button"),l=require("@entur/dropdown"),o=require("@entur/form"),u=require("@entur-partner/util"),i=require("@entur/expand"),s=require("@entur/modal"),c=require("react-router-dom"),d=require("@entur/menu");function m(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var p=m(e),f=m(t);function v(){return v=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},v.apply(this,arguments)}function g(e,t){return g=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},g(e,t)}function h(e,t){if(null==e)return{};var n,a,r={},l=Object.keys(e);for(a=0;a<l.length;a++)t.indexOf(n=l[a])>=0||(r[n]=e[n]);return r}var E=["as","children","contrast","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY","padding","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","margin","display","justifyContent","alignItems","maxWidth","width","background","color","flexDirection","flexWrap","className"];function b(e,t){if(Array.isArray(t)){var n=[];return t[0]&&n.push(e+t[0]),t[1]&&n.push(""+e+t[1]+"-lg"),t[2]&&n.push(""+e+t[2]+"-xl"),n}return[e+t]}var x,N,y,C=function(e){var t=e.as,n=void 0===t?"div":t,a=e.children,r=e.contrast,l=e.paddingTop,o=e.paddingRight,u=e.paddingBottom,i=e.paddingLeft,s=e.paddingX,c=e.paddingY,d=e.padding,m=e.marginTop,g=e.marginRight,x=e.marginBottom,N=e.marginLeft,y=e.marginX,C=e.marginY,L=e.margin,w=e.display,k=e.justifyContent,_=e.alignItems,B=e.maxWidth,O=e.width,P=e.background,S=e.color,F=e.flexDirection,z=e.flexWrap,D=e.className,I=h(e,E),M=[],A=l||c||d,R=u||c||d,T=i||s||d,j=o||s||d,V=m||C||L,q=x||C||L,H=N||y||L,W=g||y||L;r&&M.push("eds-contrast"),A&&M.push.apply(M,b("eps-pt-",A)),R&&M.push.apply(M,b("eps-pb-",R)),T&&M.push.apply(M,b("eps-pl-",T)),j&&M.push.apply(M,b("eps-pr-",j)),V&&M.push.apply(M,b("eps-mt-",V)),q&&M.push.apply(M,b("eps-mb-",q)),H&&M.push.apply(M,b("eps-ml-",H)),W&&M.push.apply(M,b("eps-mr-",W)),w&&M.push.apply(M,b("eps-",w)),k&&M.push.apply(M,b("eps-justify-",k)),_&&M.push.apply(M,b("eps-items-",_)),B&&M.push.apply(M,b("eps-max-w-",B)),O&&M.push.apply(M,b("eps-w-",O)),S&&M.push("eps-color-"+S),P&&M.push("eps-bg-"+P),F&&M.push.apply(M,b("eps-flex-",F)),z&&M.push.apply(M,b("eps-flex-wrap-",z));var U=f.default(M,D);return p.default.createElement(n,v({className:U},I),a)},L=function(t){var n=t.space,a=t.className,r=e.Children.toArray(t.children);return r.length<=1?p.default.createElement(p.default.Fragment,null,r):p.default.createElement("div",{className:a},r.map((function(e,t){return t===r.length-1?p.default.createElement("div",{key:t},e):p.default.createElement(C,{paddingBottom:n,key:t},e)})))},w=["children","className"];function k(e){var t,n;return"true"===process.env["REACT_APP_"+e]||"true"===(null==(t=window.localStorage)?void 0:t.getItem(e))||"true"===(null==(n=window.localStorage)?void 0:n.getItem("REACT_APP_"+e))}function _(e){return k(e)}exports.Environment=void 0,(y=exports.Environment||(exports.Environment={})).Local="local",y.Development="dev",y.Staging="staging",y.Production="prod";var B=((x={})[exports.Environment.Local]="#B482FB",x[exports.Environment.Development]="#5AC39A",x[exports.Environment.Staging]="#FFCA28",x),O=function(e){return B[e]},P=((N={})[exports.Environment.Local]="Local",N[exports.Environment.Development]="Dev",N[exports.Environment.Staging]="Staging",N[exports.Environment.Production]="Prod",N),S=function(e){return P[e]},F=["title","accentColor"],z=function(e){var t=e.title,n=e.accentColor,a=void 0===n?"#FF5959":n,r=h(e,F);return p.default.createElement("svg",v({width:257,height:37,viewBox:"0 0 257 37"},r),p.default.createElement("title",null,t),p.default.createElement("g",{fill:"none",fillRule:"evenodd"},p.default.createElement("path",{fill:"#FFF",d:"M0 .231V25.72h18.745v-4.318H4.869v-6.163h12.31v-4.318H4.87V4.55h13.876V.231z"}),p.default.createElement("path",{fill:a,d:"M0 36.408h45.253v-4.32H0z"}),p.default.createElement("path",{fill:"#FFF",d:"M40.384.231v15.425L23.656.231h-.521V25.72h4.869V10.573L44.732 25.72h.521V.23zM69.25 15.238h-7.267v21.17h-4.87v-21.17H49.81V10.92h19.44zM83.863 36.86c-1.646 0-3.142-.255-4.486-.765-1.345-.51-2.493-1.23-3.443-2.159-.95-.928-1.687-2.054-2.208-3.378-.522-1.323-.783-2.797-.783-4.422V10.92h4.869v15.216c0 1.277.209 2.333.626 3.169.417.836.933 1.497 1.548 1.985a5.346 5.346 0 001.982 1.01c.707.186 1.339.278 1.895.278.557 0 1.188-.092 1.896-.279a5.35 5.35 0 001.982-1.01c.614-.487 1.13-1.148 1.548-1.984.417-.836.625-1.892.625-3.169V10.92h4.87v15.216c0 1.625-.256 3.1-.766 4.422-.51 1.324-1.24 2.45-2.19 3.378-.952.929-2.1 1.648-3.444 2.159-1.344.51-2.851.766-4.52.766M104.21 24.047h5.546c1.016 0 1.854-.127 2.513-.383.658-.255 1.179-.592 1.56-1.01.381-.418.641-.888.78-1.41.138-.522.208-1.05.208-1.584 0-.627-.099-1.207-.295-1.741a3.718 3.718 0 00-.901-1.393c-.405-.394-.924-.708-1.56-.94-.636-.232-1.404-.348-2.305-.348h-5.546v8.81zm0 4.248v8.113h-4.87V10.92h11.567c1.3 0 2.49.215 3.57.644 1.08.43 2.004 1.033 2.77 1.81a8.287 8.287 0 011.794 2.787c.43 1.079.645 2.257.645 3.534 0 .952-.128 1.874-.383 2.768-.256.894-.61 1.7-1.063 2.42a7.32 7.32 0 01-1.672 1.863 5.929 5.929 0 01-2.178 1.096l6.339 8.566h-5.808l-5.893-8.113h-4.818z"}),p.default.createElement("g",{fill:a},p.default.createElement("path",{d:"M141.051 23.448h5.628c4.185 0 5.989-1.984 5.989-4.942 0-2.742-1.515-4.618-5.989-4.618h-5.628v9.56zm0 3.067v9.776h-3.571V10.75h9.632c6.674 0 9.127 3.211 9.127 7.54 0 4.979-3.102 8.226-9.2 8.226h-5.988zM169.695 28.715c-1.371-.288-2.958-.505-4.401-.505-2.85 0-4.041 1.263-4.041 3.139s1.407 2.706 3.463 2.706c2.49 0 4.979-1.443 4.979-4.221v-1.119zm-4.293-2.958c1.551 0 3.174.253 4.293.469v-.83c0-2.525-1.154-3.896-4.33-3.896-2.164 0-3.824.866-4.942 2.092l-2.02-2.272c1.732-1.66 3.644-2.598 7.07-2.598 5.052 0 7.469 1.876 7.469 7.215v10.354h-3.211V34.02h-.108c-1.082 1.767-3.211 2.705-5.592 2.705-3.32 0-6.241-1.66-6.241-5.303 0-3.103 1.912-5.664 7.612-5.664zM178.965 19.191h3.211v2.886h.108c.938-1.984 2.922-3.355 5.231-3.355.47 0 .938.036 1.335.144l-.144 3.14a6.77 6.77 0 00-1.552-.181c-3.246 0-4.798 2.633-4.798 5.483v8.983h-3.39v-17.1zM199.961 36.291h-1.912c-4.004 0-5.988-.938-5.988-5.772v-8.55h-2.778V19.19h2.778v-4.654h3.355v4.654h4.473v2.778h-4.473v7.973c0 3.427 1.587 3.535 3.319 3.535h1.226v2.814zM219.767 36.291h-3.391V26.84c0-2.778-1.083-5.375-4.257-5.375-3.14 0-5.268 2.597-5.268 6.169v8.658h-3.391v-17.1h3.32v2.814h.143c.794-1.623 3.067-3.283 5.99-3.283 4.941 0 6.854 3.644 6.854 8.081v9.488zM227.847 26.262h10.57c0-2.597-2.272-4.726-5.087-4.726-2.922 0-5.014 1.948-5.483 4.726zm-.036 2.453c.397 3.355 2.633 5.195 5.844 5.195 2.778 0 4.618-1.623 5.484-2.67l2.164 1.804c-1.37 1.913-4.365 3.716-8.045 3.716-4.942 0-8.73-3.535-8.73-8.55 0-5.195 3.752-9.488 8.983-9.488 5.303 0 8.009 4.365 8.009 8.19 0 .649-.036 1.226-.072 1.803H227.81zM246.245 19.191h3.21v2.886h.109c.938-1.984 2.922-3.355 5.231-3.355.469 0 .938.036 1.335.144l-.145 3.14a6.77 6.77 0 00-1.551-.181c-3.247 0-4.798 2.633-4.798 5.483v8.983h-3.391v-17.1z"}))))},D=["className","children","userName","open","onOpenChange","environment"],I=function(e){var t,l,o,u=e.className,i=e.children,s=e.userName,c=e.open,d=e.onOpenChange,m=e.environment,g=h(e,D),E=f.default("eps-overflow-menu__group",{"eps-overflow-menu__group--open":c}),b=p.default.useRef(null),x=p.default.useRef(null);return p.default.useEffect((function(){var e=function(e){A(t.current,e)||A(l.current,e)||o()};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),function(){document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e)}}),[t=b,l=x,o=function(){return d(!1)}]),p.default.createElement("div",null,p.default.createElement(r.SecondaryButton,v({className:f.default("eps-overflow-menu__button",u),onClick:function(){return d(!c)},"aria-haspopup":!0,role:"button","aria-expanded":c,ref:x},g),p.default.createElement("div",{className:"eps-overflow-menu__button-contents"},p.default.createElement("span",{className:"eds-overflow-menu__user-icon"},p.default.createElement(a.UserIcon,{inline:!0})),p.default.createElement(n.Heading6,{margin:"none",as:"span"},s,void 0!==m&&m!==exports.Environment.Production&&p.default.createElement("span",{style:{color:O(m)}}," ","(",S(m),")")),p.default.createElement("span",{className:"eps-arrow-icon"},p.default.createElement(a.DownArrowIcon,{inline:!0})))),c&&p.default.createElement("div",{className:E,role:"menu",ref:b},i))},M=function(e){return p.default.createElement("button",v({className:f.default(e.className,"eps-overflow-menu__item"),role:"menuitem"},e))};function A(e,t){return!(!e||!(e.contains(t.target)||t.composed&&t.composedPath&&t.composedPath().find((function(t){return t!==window&&e.contains(t)}))))}var R=["label","organisations","onChange","selectedOrganisationId"],T=["language","options","className","onChange"],j=function(e){var t=e.language,n=e.options,a=e.className,r=e.onChange,l=h(e,T),i=f.default("eps-language-select",a);return p.default.createElement("div",v({},l,{className:i}),p.default.createElement(o.SegmentedControl,{onChange:function(e){u.assertIsDefined(e),r(e)},selectedValue:t},n.map((function(e){return p.default.createElement(o.SegmentedChoice,{key:e.value,value:e.value},e.label,e.required&&p.default.createElement("span",{className:"asterisk-margin"},"*"))}))))},V=["title","inputComponent","languages","values","onChange","name","variant","feedback"],q=["className","inputComponent","alertLabel","alertLevel","name","languages","values","onChange","defaultLanguage","label","onBlur"],H=["children","className"],W=function(e){var t,n;function a(t){var n;return(n=e.call(this,t)||this).state={error:null},n}n=e,(t=a).prototype=Object.create(n.prototype),t.prototype.constructor=t,g(t,n),a.getDerivedStateFromError=function(e){return{error:e}};var r=a.prototype;return r.componentDidCatch=function(e,t){var n,a;null==(n=(a=this.props).handleError)||n.call(a,e,t)},r.render=function(){var e,t=this,n=this.state.error,a=this.props,r=a.fallback,l=a.children;return n?(e=r)&&"[object Function]"==={}.toString.call(e)?r({retry:function(){return t.setState({error:null})},error:n}):r:l},a}(e.Component),U=["date","locale","as","hideTime"],X=function(e){var t=e.date,n=e.locale,a=e.as,r=void 0===a?"main":a,l=e.hideTime,o=h(e,U);return p.default.createElement(r,v({},o),l?u.localeDate(t,n):u.localeDateTime(t,n))},Y=["amount","as"],K=["items","locale","className"],G=["isOpen","children","message","size","buttons","onConfirm","messages","onClose","onDismiss"],$=function(e){var t=e.isOpen,a=void 0!==t&&t,l=e.children,o=e.message,i=e.size,c=void 0===i?"medium":i,d=e.buttons,m=e.onConfirm,f=e.messages,g=e.onClose,E=e.onDismiss,b=h(e,G),x=l||o,N=g||E;return p.default.createElement(s.Modal,v({size:c,open:a,onDismiss:N},b),u.isString(x)?p.default.createElement(n.Paragraph,null,x):p.default.createElement(C,{paddingBottom:"medium"},x),p.default.createElement(r.ButtonGroup,null,m?p.default.createElement(p.default.Fragment,null,p.default.createElement(r.SecondaryButton,{onClick:N,"data-testid":"cancel-modal-button"},f.cancel),p.default.createElement(r.PrimaryButton,{onClick:m,"data-testid":"confirm-modal-button"},f.confirm)):d))},J=["children","shouldBlockNavigation"],Q=function(e){var t=e.children,n=e.fallback,a=void 0===n?null:n,r=e.permissions,l=e.oneOf,o=void 0===l?[]:l,i=e.all,s=u.hasAllPermissions(void 0===i?[]:i,r),c=u.hasOneOfPermissions(o,r);return p.default.createElement(p.default.Fragment,null,s&&c?t:a)},Z=["children","actualPermissions","all","oneOf","onReject"],ee=["as","children","fontSize","color","lineHeight","fontWeight","className"];exports.ActionBar=function(e){var t=e.children;return p.default.createElement(p.default.Fragment,null,p.default.createElement("div",{className:"eps-action-bar-padding"}),p.default.createElement("div",{className:"eps-action-bar"},t))},exports.ActionBarLeft=function(e){return p.default.createElement("div",{className:"eps-action-bar-left"},e.children)},exports.ActionBarRight=function(e){return p.default.createElement("div",{className:"eps-action-bar-right"},e.children)},exports.AuditInfo=function(e){var t=e.items,n=e.locale,a=e.className,r=h(e,K),l=f.default("ep-audit-info",a);return p.default.createElement("div",v({className:l},r),t.map((function(e,t){var a=e.value;return p.default.createElement(L,{space:"small",key:t},p.default.createElement("div",{className:"ep-audit-info-label"},e.label),p.default.createElement("div",null,u.isDate(a)||u.isDateString(a)?p.default.createElement(X,{date:a,locale:n}):p.default.createElement("span",null,a)))})))},exports.Box=C,exports.Breadcrumbs=function(e){var t=e.prependBreadcrumbItem,n=e.pathname,a=e.onBreadcrumbLookup,r="/"===n?[]:["/"];(n.length>1?n.replace(/\/$/,""):n).split("/").reduce((function(e,t){var n=e+"/"+t;return r.push(n),n}));var l=r.map((function(e){return{title:a(e),path:e}})).filter((function(e){return void 0!==e.title})),o=l.map((function(e,t){var n=e.path;return p.default.createElement(d.BreadcrumbItem,t===l.length-1?{key:n,as:"span"}:{key:n,as:c.Link,to:n},e.title)}));return p.default.createElement(d.BreadcrumbNavigation,null,t?[t].concat(o):o)},exports.ConfirmModal=$,exports.Content=function(e){var t=e.as,n=void 0===t?"main":t,a=e.children,r=f.default(["eps-content",e.className]);return p.default.createElement(n,{className:r},a)},exports.EnturPartnerLogo=function(e){var t=e.as,n=void 0===t?"nav":t,a=e.altText,r=e.environment,l=f.default(["eps-logo-wrapper",e.className]);return p.default.createElement(n,{className:l},p.default.createElement(z,{title:a,className:"logo",accentColor:void 0!==r&&r!==exports.Environment.Production?O(r):void 0}))},exports.EnturPartnerLogoSvg=z,exports.ErrorBoundary=W,exports.ExpandableMultiLanguageInput=function(e){var t=e.title,n=e.inputComponent,a=e.languages,r=e.values,l=e.onChange,o=e.name,u=e.variant,s=e.feedback,c=h(e,V);return p.default.createElement(i.ExpandablePanel,{title:t,defaultOpen:!0,contentStyle:{padding:"4px 4px 4px 4px",marginTop:"16px",marginBottom:"16px"}},p.default.createElement(L,{space:"medium"},a.map((function(e){var a=e.value,i=e.label;return p.default.createElement(n,v({"data-testid":"multi-lang-input-"+o+"-"+a,key:t+a,label:e.required?i+"*":i,variant:u&&u(a),feedback:s&&s(a),name:o,onChange:function(e){var t,n,o;t=a,n=e.target.value,o=v({},r),""!==n&&n?o[t]=n:delete o[t],l(o)},value:r[a]||""},c))}))))},exports.FeatureToggle=function(e){var t=e.children;return _(e.flag)?p.default.createElement(p.default.Fragment,null,t):null},exports.FormatCurrencyAmount=function(e){var t=e.amount,n=e.as,a=void 0===n?"span":n,r=h(e,Y),l=Number(t)||0,o=new Intl.NumberFormat("nb-NO",{maximumFractionDigits:2,minimumFractionDigits:2}).format(l);return p.default.createElement(a,v({},r),o)},exports.FormatDateTime=X,exports.LanguageSelect=j,exports.Link=function(e){return p.default.createElement(n.Link,v({},e,{as:c.Link}),e.children)},exports.LinkButton=function(e){var t=e.children,a=e.className,r=h(e,w);return p.default.createElement(n.Link,v({},r,{as:"button",className:f.default("eps-link-button",a)}),t)},exports.Menu=function(e){var t=e.as,n=void 0===t?"nav":t,a=e.children,r=f.default(["eds-contrast","eps-menu",e.className]);return p.default.createElement(n,{className:r},a)},exports.MultiLanguageInput=function(t){var n=t.className,a=t.inputComponent,r=t.alertLabel,l=t.alertLevel,o=t.name,u=t.languages,i=t.values,s=t.onChange,c=t.defaultLanguage,d=void 0===c?"nob":c,m=t.label,g=void 0===m?"":m,E=t.onBlur,b=void 0===E?function(){}:E,x=h(t,q),N=e.useState(d),y=N[0],C=N[1],w=f.default("multi-language-input",n),k=i[y];return p.default.createElement("div",{className:w,tabIndex:0,onBlur:function(e){e.persist();var t=e.currentTarget;setTimeout((function(){t&&!t.contains(document.activeElement)&&b(e)}),0)},"data-testid":"multi-lang-input-"+o},p.default.createElement(L,{space:"extraSmall"},p.default.createElement(j,{language:y,options:u,onChange:function(e){return function(e){C(e)}(e)}}),p.default.createElement(a,v({label:g,variant:l,feedback:r,name:o,className:"language-item",onChange:function(e){return t=e.target.value,n=Object.assign({},i),""!==t&&t?n[y]=t:delete n[y],void s(n);var t,n},value:k||""},x))))},exports.OrganisationDropDown=function(e){var t=e.label,n=e.organisations,a=e.onChange,r=e.selectedOrganisationId,o=h(e,R),u=n.find((function(e){return e.id===r}));return p.default.createElement(l.SearchableDropdownBeta,v({label:t,openOnFocus:!0,className:"eds-contrast",items:[].concat(n.sort((function(e,t){return e.name.localeCompare(t.name,"nb")})).map((function(e){return{value:e.id,label:e.name}}))),selectedItem:u?{value:u.id,label:u.name}:null,onChange:function(e){e&&a(e.value)}},o))},exports.Pager=function(e){var t=e.onPageChange,n=e.currentPage,a=Math.ceil(e.collectionSize/e.pageSize);return p.default.createElement(d.Pagination,{pageCount:a,currentPage:n,onPageChange:function(e){t(e)}})},exports.PermissionCheck=Q,exports.PermissionCheckedRoute=function(e){var t=e.children,n=e.actualPermissions,a=e.all,r=e.oneOf,l=e.onReject,o=h(e,Z),u=p.default.createElement(c.Redirect,{to:{pathname:"/unauthorized",state:{from:o.location}}});return p.default.createElement(Q,{permissions:n,all:a,oneOf:r,fallback:l||u},p.default.createElement(c.Route,v({},o),t))},exports.RouteLeavingGuard=function(t){var n=t.children,a=t.shouldBlockNavigation,r=h(t,J),l=c.useHistory(),o=e.useState("ALLOW"),u=o[0],i=o[1],s=e.useState(l.location),d=s[0],m=s[1];return p.default.createElement(p.default.Fragment,null,p.default.createElement(c.Prompt,{message:function(e){return!a(e)||"ALLOW"!==u||(i("BLOCKED"),m(e),!1)}}),p.default.createElement($,v({onDismiss:function(){i("ALLOW")},open:"BLOCKED"===u,onConfirm:function(){l.push(d.pathname)}},r),n))},exports.Stack=L,exports.StatusLabel=function(e){var t=e.active,n=e.label,a=void 0===n?"":n,r=e.showBullet,l=e.center,o=f.default("eps-status-label__bullet",{active:void 0!==t&&t,aggressive:e.aggressiveInactive}),u=f.default("eps-status-label",{center:l});return p.default.createElement("div",{className:u},r&&p.default.createElement("div",{className:o}),p.default.createElement("div",null,a))},exports.Text=function(e){var t=e.as,n=void 0===t?"span":t,a=e.children,r=e.fontSize,l=e.color,o=e.lineHeight,u=e.fontWeight,i=e.className,s=h(e,ee),c=[];r&&c.push.apply(c,b("eps-font-size-",r)),o&&c.push.apply(c,b("eps-line-height-",o)),u&&c.push("eps-font-weight-"+u);var d=f.default(c,i);return p.default.createElement(C,v({as:n,color:l,className:d},s),a)},exports.Unbutton=function(e){var t=e.children,n=e.className,a=h(e,H);return p.default.createElement(r.Button,v({variant:"primary"},a,{className:f.default("eps-unbutton",n)}),t)},exports.UserMenu=function(t){var n=t.messages,r=t.onLogout,l=t.onLanguageChange,o=t.userName,u=t.language,i=t.environment,s=f.default(["eps-user-menu__trigger-button",t.className]),c=e.useState(!1),d=c[1];return p.default.createElement("div",{id:"eps-user-menu"},p.default.createElement(I,{open:c[0],onOpenChange:d,className:s,userName:o,environment:i},p.default.createElement("div",{id:"eps-overflow-menu"},"en"===u?p.default.createElement(M,{onClick:function(){l("nb"),d(!1)},className:"eps-overflow-menu__item"},p.default.createElement("span",{"aria-hidden":!0,className:"eps-overflow-menu__icon-margin"},p.default.createElement(a.NorwayIcon,{size:"1rem",inline:!0})),n.switchLanguage):p.default.createElement(M,{onClick:function(){l("en"),d(!1)},className:"eps-overflow-menu__item"},p.default.createElement("span",{"aria-hidden":!0,className:"eps-overflow-menu__icon-margin"},p.default.createElement(a.UKIcon,{size:"1rem",inline:!0})),n.switchLanguage),p.default.createElement(M,{onClick:function(){r(),d(!1)},"data-testid":"user-menu-logout",className:"eps-overflow-menu__item"},p.default.createElement("span",{"aria-hidden":!0},p.default.createElement(a.UploadIcon,{size:"1rem",inline:!0,style:{transform:"rotate(90deg)"}})),n.logout))))},exports.featureFlag=k,exports.getColorForEnvironment=O,exports.getHumanReadableEnvironment=S,exports.responsiveProp=b,exports.useEventListener=function(t,n,a){void 0===a&&(a=window);var r=e.useRef();e.useEffect((function(){r.current=n}),[n]),e.useEffect((function(){if(a&&a.addEventListener){var e=function(e){return null==r.current?void 0:r.current(e)};return a.addEventListener(t,e),function(){a.removeEventListener(t,e)}}}),[t,a])},exports.useFeatureToggle=_;
|
|
2
2
|
//# sourceMappingURL=common.cjs.production.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.cjs.production.min.js","sources":["../src/Box.tsx","../src/environment.ts","../src/Stack.tsx","../src/FeatureToggle.tsx","../src/EnturPartnerLogo.tsx","../src/UserMenu.tsx","../src/LanguageSelect.tsx","../src/ErrorBoundary.tsx","../src/helpers.ts","../src/FormatDateTime.tsx","../src/ConfirmModal.tsx","../src/PermissionCheck.tsx","../src/ActionBar.tsx","../src/AuditInfo.tsx","../src/Breadcrumbs.tsx","../src/Content.tsx","../src/ExpandableMultiLanguageInput.tsx","../src/FormatCurrencyAmount.tsx","../src/Link.tsx","../src/LinkButton.tsx","../src/Menu.tsx","../src/MultiLanguageInput.tsx","../src/OrganisationDropdown.tsx","../src/Pager.tsx","../src/PermissionCheckedRoute.tsx","../src/RouteLeavingGuard.tsx","../src/StatusLabel.tsx","../src/Text.tsx","../src/Unbutton.tsx","../src/useEventListener.ts"],"sourcesContent":["import './Box.scss';\n\nimport React, { ReactNode } from 'react';\nimport cx from 'classnames';\n\ntype StyleSpacing =\n | 'none'\n | 'extraSmall2'\n | 'extraSmall'\n | 'small'\n | 'medium'\n | 'large'\n | 'extraLarge'\n | 'extraLarge2'\n | 'extraLarge3'\n | 'extraLarge4'\n | 'extraLarge5'\n | 'extraLarge6'\n | 'extraLarge7'\n | 'extraLarge8'\n | 'extraLarge9';\n\ntype StyleMargin = StyleSpacing | 'auto';\n\ntype StyleDisplay = 'block' | 'flex' | 'inline' | 'inline-block';\ntype StyleJustifyContent = 'center' | 'space-between' | 'start' | 'end';\ntype StyleAlignItems = 'center' | 'start' | 'end' | 'stretch' | 'baseline';\n\ntype StyleMaxWidth =\n | 'none'\n | 'extraSmall'\n | 'small'\n | 'medium'\n | 'large'\n | 'extraLarge'\n | 'extraLarge2'\n | 'extraLarge3'\n | 'extraLarge4'\n | 'extraLarge5'\n | 'extraLarge6'\n | 'full';\ntype StyleWidth = 'auto' | 'full';\n\nexport type StyleBackground = 'blue' | 'lavender' | 'white' | 'blue70';\nexport type StyleColor = 'blue' | 'lavender' | 'white' | 'black';\n\ntype StyleFlexDirection = 'row' | 'column' | 'row-reverse' | 'column-reverse';\ntype StyleFlexWrap = 'wrap' | 'nowrap' | 'wrap-reverse';\n\nexport type ResponsiveStyleSpacing =\n | StyleSpacing\n | [StyleSpacing?, StyleSpacing?, StyleSpacing?];\nexport type ResponsiveStyleMargin =\n | StyleMargin\n | [StyleMargin?, StyleMargin?, StyleMargin?];\n\nexport type ResponsiveStyleDisplay =\n | StyleDisplay\n | [StyleDisplay?, StyleDisplay?, StyleDisplay?];\nexport type ResponsiveStyleJustifyContent =\n | StyleJustifyContent\n | [StyleJustifyContent?, StyleJustifyContent?, StyleJustifyContent?];\nexport type ResponsiveStyleAlignItems =\n | StyleAlignItems\n | [StyleAlignItems?, StyleAlignItems?, StyleAlignItems?];\n\nexport type ResponsiveStyleMaxWidth =\n | StyleMaxWidth\n | [StyleMaxWidth?, StyleMaxWidth?, StyleMaxWidth?];\nexport type ResponsiveStyleWidth =\n | StyleWidth\n | [StyleWidth?, StyleWidth?, StyleWidth?];\n\nexport type ResponsiveStyleFlexDirection =\n | StyleFlexDirection\n | [StyleFlexDirection?, StyleFlexDirection?, StyleFlexDirection?];\nexport type ResponsiveStyleFlexWrap =\n | StyleFlexWrap\n | [StyleFlexWrap?, StyleFlexWrap?, StyleFlexWrap?];\n\nexport interface BoxProps {\n className?: string;\n as?: React.ElementType;\n [key: string]: any;\n children: ReactNode;\n\n contrast?: boolean;\n\n paddingTop?: ResponsiveStyleSpacing;\n paddingRight?: ResponsiveStyleSpacing;\n paddingBottom?: ResponsiveStyleSpacing;\n paddingLeft?: ResponsiveStyleSpacing;\n paddingX?: ResponsiveStyleSpacing;\n paddingY?: ResponsiveStyleSpacing;\n padding?: ResponsiveStyleSpacing;\n\n marginTop?: ResponsiveStyleMargin;\n marginRight?: ResponsiveStyleMargin;\n marginBottom?: ResponsiveStyleMargin;\n marginLeft?: ResponsiveStyleMargin;\n marginX?: ResponsiveStyleMargin;\n marginY?: ResponsiveStyleMargin;\n margin?: ResponsiveStyleMargin;\n\n display?: ResponsiveStyleDisplay;\n justifyContent?: ResponsiveStyleJustifyContent;\n alignItems?: ResponsiveStyleAlignItems;\n\n maxWidth?: ResponsiveStyleMaxWidth;\n width?: ResponsiveStyleWidth;\n background?: StyleBackground;\n color?: StyleColor;\n\n flexDirection?: ResponsiveStyleFlexDirection;\n flexWrap?: ResponsiveStyleFlexWrap;\n}\n\ntype ResponsiveProp = string | [string?, string?, string?];\n\nexport function responsiveProp(prefix: string, prop: ResponsiveProp): string[] {\n if (Array.isArray(prop)) {\n const classes = [];\n prop[0] && classes.push(prefix + prop[0]);\n prop[1] && classes.push(`${prefix}${prop[1]}-lg`);\n prop[2] && classes.push(`${prefix}${prop[2]}-xl`);\n return classes;\n }\n return [prefix + prop];\n}\n\nexport const Box = ({\n as: Component = 'div',\n children,\n contrast,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n paddingX,\n paddingY,\n padding,\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n marginX,\n marginY,\n margin,\n display,\n justifyContent,\n alignItems,\n maxWidth,\n width,\n background,\n color,\n flexDirection,\n flexWrap,\n className,\n ...rest\n}: BoxProps) => {\n const classes = [];\n const resolvedPaddingTop = paddingTop || paddingY || padding;\n const resolvedPaddingBottom = paddingBottom || paddingY || padding;\n const resolvedPaddingLeft = paddingLeft || paddingX || padding;\n const resolvedPaddingRight = paddingRight || paddingX || padding;\n\n const resolvedMarginTop = marginTop || marginY || margin;\n const resolvedMarginBottom = marginBottom || marginY || margin;\n const resolvedMarginLeft = marginLeft || marginX || margin;\n const resolvedMarginRight = marginRight || marginX || margin;\n\n contrast && classes.push('eds-contrast');\n resolvedPaddingTop &&\n classes.push(...responsiveProp('eps-pt-', resolvedPaddingTop));\n resolvedPaddingBottom &&\n classes.push(...responsiveProp('eps-pb-', resolvedPaddingBottom));\n resolvedPaddingLeft &&\n classes.push(...responsiveProp('eps-pl-', resolvedPaddingLeft));\n resolvedPaddingRight &&\n classes.push(...responsiveProp('eps-pr-', resolvedPaddingRight));\n resolvedMarginTop &&\n classes.push(...responsiveProp('eps-mt-', resolvedMarginTop));\n resolvedMarginBottom &&\n classes.push(...responsiveProp('eps-mb-', resolvedMarginBottom));\n resolvedMarginLeft &&\n classes.push(...responsiveProp('eps-ml-', resolvedMarginLeft));\n resolvedMarginRight &&\n classes.push(...responsiveProp('eps-mr-', resolvedMarginRight));\n\n display && classes.push(...responsiveProp('eps-', display));\n justifyContent &&\n classes.push(...responsiveProp('eps-justify-', justifyContent));\n if (alignItems) {\n classes.push(...responsiveProp('eps-items-', alignItems));\n }\n\n maxWidth && classes.push(...responsiveProp('eps-max-w-', maxWidth));\n width && classes.push(...responsiveProp('eps-w-', width));\n\n color && classes.push(`eps-color-${color}`);\n background && classes.push(`eps-bg-${background}`);\n\n flexDirection && classes.push(...responsiveProp('eps-flex-', flexDirection));\n flexWrap && classes.push(...responsiveProp('eps-flex-wrap-', flexWrap));\n\n const classList = cx(classes, className);\n\n return (\n <Component className={classList} {...rest}>\n {children}\n </Component>\n );\n};\n","export enum Environment {\n Local = 'local',\n Development = 'dev',\n Staging = 'staging',\n Production = 'prod',\n}\n\nconst environmentColors: Record<\n Exclude<Environment, Environment.Production>,\n string\n> = {\n [Environment.Local]: '#B482FB',\n [Environment.Development]: '#5AC39A',\n [Environment.Staging]: '#FFCA28',\n};\n\n/**\n * Gets the color for the given environment. This is the color used for the environment\n * indicator. There is no color for production as it should not have any special environment\n * indication.\n */\nexport const getColorForEnvironment = (\n environment: Exclude<Environment, Environment.Production>\n) => environmentColors[environment];\n\nconst humanReadableEnvironment: Record<Environment, string> = {\n [Environment.Local]: 'Local',\n [Environment.Development]: 'Dev',\n [Environment.Staging]: 'Staging',\n [Environment.Production]: 'Prod',\n};\n\nexport const getHumanReadableEnvironment = (environment: Environment) =>\n humanReadableEnvironment[environment];\n","import React, { ReactNode, Children } from 'react';\n\nimport { ResponsiveStyleSpacing, Box } from './Box';\n\nexport interface StackProps {\n className?: string;\n children: ReactNode;\n space: ResponsiveStyleSpacing;\n}\n\nexport const Stack = ({ children, space, className }: StackProps) => {\n const stackItems = Children.toArray(children);\n if (stackItems.length <= 1) {\n return <>{stackItems}</>;\n }\n\n return (\n <div className={className}>\n {stackItems.map((child, index) =>\n index === stackItems.length - 1 ? (\n <div key={index}>{child}</div>\n ) : (\n <Box paddingBottom={space} key={index}>\n {child}\n </Box>\n )\n )}\n </div>\n );\n};\n","import React, { ReactNode } from 'react';\n\n/**\n * Returns true if the provided flag exist in localStorage\n * or is set as an environment variable.\n *\n * @param flag case sensitive flag. If it is an environment variable\n * you can drop the REACT_APP_ prefix.\n */\nexport function featureFlag(flag: string): boolean {\n return (\n process.env[`REACT_APP_${flag}`] === 'true' ||\n window.localStorage?.getItem(flag) === 'true' ||\n window.localStorage?.getItem(`REACT_APP_${flag}`) === 'true'\n );\n}\n\n/**\n * Returns true if the provided flag exist in localStorage\n * or is set as an environment variable.\n *\n * @param flag case sensitive flag. If it is an environment variable\n * you can drop the REACT_APP_ prefix.\n */\nexport function useFeatureToggle(flag: string): boolean {\n return featureFlag(flag);\n}\n\nexport interface FeatureToggleProps {\n /** Visible if flag exist, hidden if not.*/\n children: ReactNode;\n /** Case sensitive flag. If it is an environment variable\n * you can drop the REACT_APP_ prefix. */\n flag: string;\n}\n\nexport const FeatureToggle = ({ children, flag }: FeatureToggleProps) => {\n const feature = useFeatureToggle(flag);\n if (feature) {\n return <>{children}</>;\n }\n return null;\n};\n","import './EnturPartnerLogo.scss';\n\nimport React, { FC } from 'react';\nimport classnames from 'classnames';\n\nimport { Environment, getColorForEnvironment } from './environment';\n\ninterface LogoProps {\n title: string;\n className?: string;\n accentColor?: string;\n [key: string]: any;\n}\n\nexport const EnturPartnerLogoSvg: FC<LogoProps> = ({\n title,\n accentColor = '#FF5959',\n ...rest\n}) => {\n return (\n <svg width={257} height={37} viewBox=\"0 0 257 37\" {...rest}>\n <title>{title}</title>\n <g fill=\"none\" fillRule=\"evenodd\">\n <path\n fill=\"#FFF\"\n d=\"M0 .231V25.72h18.745v-4.318H4.869v-6.163h12.31v-4.318H4.87V4.55h13.876V.231z\"\n />\n <path fill={accentColor} d=\"M0 36.408h45.253v-4.32H0z\" />\n <path\n fill=\"#FFF\"\n d=\"M40.384.231v15.425L23.656.231h-.521V25.72h4.869V10.573L44.732 25.72h.521V.23zM69.25 15.238h-7.267v21.17h-4.87v-21.17H49.81V10.92h19.44zM83.863 36.86c-1.646 0-3.142-.255-4.486-.765-1.345-.51-2.493-1.23-3.443-2.159-.95-.928-1.687-2.054-2.208-3.378-.522-1.323-.783-2.797-.783-4.422V10.92h4.869v15.216c0 1.277.209 2.333.626 3.169.417.836.933 1.497 1.548 1.985a5.346 5.346 0 001.982 1.01c.707.186 1.339.278 1.895.278.557 0 1.188-.092 1.896-.279a5.35 5.35 0 001.982-1.01c.614-.487 1.13-1.148 1.548-1.984.417-.836.625-1.892.625-3.169V10.92h4.87v15.216c0 1.625-.256 3.1-.766 4.422-.51 1.324-1.24 2.45-2.19 3.378-.952.929-2.1 1.648-3.444 2.159-1.344.51-2.851.766-4.52.766M104.21 24.047h5.546c1.016 0 1.854-.127 2.513-.383.658-.255 1.179-.592 1.56-1.01.381-.418.641-.888.78-1.41.138-.522.208-1.05.208-1.584 0-.627-.099-1.207-.295-1.741a3.718 3.718 0 00-.901-1.393c-.405-.394-.924-.708-1.56-.94-.636-.232-1.404-.348-2.305-.348h-5.546v8.81zm0 4.248v8.113h-4.87V10.92h11.567c1.3 0 2.49.215 3.57.644 1.08.43 2.004 1.033 2.77 1.81a8.287 8.287 0 011.794 2.787c.43 1.079.645 2.257.645 3.534 0 .952-.128 1.874-.383 2.768-.256.894-.61 1.7-1.063 2.42a7.32 7.32 0 01-1.672 1.863 5.929 5.929 0 01-2.178 1.096l6.339 8.566h-5.808l-5.893-8.113h-4.818z\"\n />\n <g fill={accentColor}>\n <path d=\"M141.051 23.448h5.628c4.185 0 5.989-1.984 5.989-4.942 0-2.742-1.515-4.618-5.989-4.618h-5.628v9.56zm0 3.067v9.776h-3.571V10.75h9.632c6.674 0 9.127 3.211 9.127 7.54 0 4.979-3.102 8.226-9.2 8.226h-5.988zM169.695 28.715c-1.371-.288-2.958-.505-4.401-.505-2.85 0-4.041 1.263-4.041 3.139s1.407 2.706 3.463 2.706c2.49 0 4.979-1.443 4.979-4.221v-1.119zm-4.293-2.958c1.551 0 3.174.253 4.293.469v-.83c0-2.525-1.154-3.896-4.33-3.896-2.164 0-3.824.866-4.942 2.092l-2.02-2.272c1.732-1.66 3.644-2.598 7.07-2.598 5.052 0 7.469 1.876 7.469 7.215v10.354h-3.211V34.02h-.108c-1.082 1.767-3.211 2.705-5.592 2.705-3.32 0-6.241-1.66-6.241-5.303 0-3.103 1.912-5.664 7.612-5.664zM178.965 19.191h3.211v2.886h.108c.938-1.984 2.922-3.355 5.231-3.355.47 0 .938.036 1.335.144l-.144 3.14a6.77 6.77 0 00-1.552-.181c-3.246 0-4.798 2.633-4.798 5.483v8.983h-3.39v-17.1zM199.961 36.291h-1.912c-4.004 0-5.988-.938-5.988-5.772v-8.55h-2.778V19.19h2.778v-4.654h3.355v4.654h4.473v2.778h-4.473v7.973c0 3.427 1.587 3.535 3.319 3.535h1.226v2.814zM219.767 36.291h-3.391V26.84c0-2.778-1.083-5.375-4.257-5.375-3.14 0-5.268 2.597-5.268 6.169v8.658h-3.391v-17.1h3.32v2.814h.143c.794-1.623 3.067-3.283 5.99-3.283 4.941 0 6.854 3.644 6.854 8.081v9.488zM227.847 26.262h10.57c0-2.597-2.272-4.726-5.087-4.726-2.922 0-5.014 1.948-5.483 4.726zm-.036 2.453c.397 3.355 2.633 5.195 5.844 5.195 2.778 0 4.618-1.623 5.484-2.67l2.164 1.804c-1.37 1.913-4.365 3.716-8.045 3.716-4.942 0-8.73-3.535-8.73-8.55 0-5.195 3.752-9.488 8.983-9.488 5.303 0 8.009 4.365 8.009 8.19 0 .649-.036 1.226-.072 1.803H227.81zM246.245 19.191h3.21v2.886h.109c.938-1.984 2.922-3.355 5.231-3.355.469 0 .938.036 1.335.144l-.145 3.14a6.77 6.77 0 00-1.551-.181c-3.247 0-4.798 2.633-4.798 5.483v8.983h-3.391v-17.1z\" />\n </g>\n </g>\n </svg>\n );\n};\n\ninterface EnturPartnerLogoProps {\n altText: string;\n as?: 'div' | React.ElementType;\n className?: string;\n environment?: Environment;\n}\n\nexport const EnturPartnerLogo: FC<EnturPartnerLogoProps> = ({\n as: Component = 'nav',\n className,\n altText,\n environment,\n}) => {\n const classList = classnames(['eps-logo-wrapper', className]);\n\n return (\n <Component className={classList}>\n <EnturPartnerLogoSvg\n title={altText}\n className=\"logo\"\n accentColor={\n environment !== undefined && environment !== Environment.Production\n ? getColorForEnvironment(environment)\n : undefined\n }\n />\n </Component>\n );\n};\n","import './UserMenu.scss';\n\nimport React, { FC, useState } from 'react';\nimport cx from 'classnames';\nimport {\n DownArrowIcon,\n NorwayIcon,\n UKIcon,\n UploadIcon,\n UserIcon,\n} from '@entur/icons';\nimport { SecondaryButton } from '@entur/button';\nimport { Heading6 } from '@entur/typography';\n\nimport {\n Environment,\n getColorForEnvironment,\n getHumanReadableEnvironment,\n} from './environment';\n\ninterface UserMenuProps {\n userName: string;\n messages: {\n logout: string;\n switchLanguage: string;\n };\n onLogout: () => void;\n onLanguageChange: (language: string) => void;\n language: string;\n className?: string;\n environment?: Environment;\n}\n\nexport const UserMenu: FC<UserMenuProps> = ({\n className,\n messages,\n onLogout,\n onLanguageChange,\n userName,\n language,\n environment,\n}) => {\n const triggerClassList = cx(['eps-user-menu__trigger-button', className]);\n const [open, setOpen] = useState(false);\n\n return (\n <div id=\"eps-user-menu\">\n <CustomOverflowMenu\n open={open}\n onOpenChange={setOpen}\n className={triggerClassList}\n userName={userName}\n environment={environment}\n >\n <div id=\"eps-overflow-menu\">\n {language === 'en' ? (\n <CustomOverflowMenuItem\n onClick={() => {\n onLanguageChange('nb');\n setOpen(false);\n }}\n className=\"eps-overflow-menu__item\"\n >\n <span aria-hidden className=\"eps-overflow-menu__icon-margin\">\n <NorwayIcon size=\"1rem\" inline />\n </span>\n {messages.switchLanguage}\n </CustomOverflowMenuItem>\n ) : (\n <CustomOverflowMenuItem\n onClick={() => {\n onLanguageChange('en');\n setOpen(false);\n }}\n className=\"eps-overflow-menu__item\"\n >\n <span aria-hidden className=\"eps-overflow-menu__icon-margin\">\n <UKIcon size=\"1rem\" inline />\n </span>\n {messages.switchLanguage}\n </CustomOverflowMenuItem>\n )}\n <CustomOverflowMenuItem\n onClick={() => {\n onLogout();\n setOpen(false);\n }}\n data-testid=\"user-menu-logout\"\n className=\"eps-overflow-menu__item\"\n >\n <span aria-hidden>\n <UploadIcon\n size=\"1rem\"\n inline\n style={{ transform: 'rotate(90deg)' }}\n />\n </span>\n {messages.logout}\n </CustomOverflowMenuItem>\n </div>\n </CustomOverflowMenu>\n </div>\n );\n};\n\nconst CustomOverflowMenu: React.FC<{\n className?: string;\n children: React.ReactNode;\n userName: string;\n open: boolean;\n onOpenChange: (open: boolean) => void;\n environment?: Environment;\n}> = ({\n className,\n children,\n userName,\n open,\n onOpenChange,\n environment,\n ...rest\n}) => {\n const overflowItemsClasses = cx('eps-overflow-menu__group', {\n 'eps-overflow-menu__group--open': open,\n });\n const overflowContentRef = React.useRef<HTMLDivElement>(null);\n const overflowMenuTriggerRef = React.useRef<HTMLButtonElement>(null);\n useOutsideClick(overflowContentRef, overflowMenuTriggerRef, () =>\n onOpenChange(false)\n );\n return (\n <div>\n <SecondaryButton\n className={cx('eps-overflow-menu__button', className)}\n onClick={() => onOpenChange(open ? false : true)}\n aria-haspopup={true}\n role=\"button\"\n aria-expanded={open}\n ref={overflowMenuTriggerRef}\n {...rest}\n >\n <div className=\"eps-overflow-menu__button-contents\">\n <span className=\"eds-overflow-menu__user-icon\">\n <UserIcon inline />\n </span>\n <Heading6 margin=\"none\" as=\"span\">\n {userName}\n {environment !== undefined &&\n environment !== Environment.Production && (\n <span style={{ color: getColorForEnvironment(environment) }}>\n {' '}\n ({getHumanReadableEnvironment(environment)})\n </span>\n )}\n </Heading6>\n <span className=\"eps-arrow-icon\">\n <DownArrowIcon inline />\n </span>\n </div>\n </SecondaryButton>\n {open && (\n <div\n className={overflowItemsClasses}\n role=\"menu\"\n ref={overflowContentRef}\n >\n {children}\n </div>\n )}\n </div>\n );\n};\n\nconst CustomOverflowMenuItem: React.FC<\n React.DetailedHTMLProps<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n >\n> = (props) => {\n return (\n <button\n className={cx(props.className, 'eps-overflow-menu__item')}\n role=\"menuitem\"\n {...props}\n />\n );\n};\n\nfunction elementContainsEventTarget(element: HTMLElement | null, event: Event) {\n if (!element) {\n return false;\n }\n\n if (element.contains(event.target as Node)) {\n return true;\n }\n\n // For elements inside a Shadow DOM we need to check the composedPath\n if (event.composed && event.composedPath) {\n const contains = event.composedPath().find((target) => {\n if (target === window) {\n return false;\n }\n return element.contains(target as Node);\n });\n return contains ? true : false;\n }\n\n return false;\n}\n\nfunction useOutsideClick(\n ref: React.RefObject<HTMLDivElement>,\n buttonRef: React.RefObject<HTMLButtonElement>,\n handler: () => void\n) {\n React.useEffect(() => {\n const listener = (event: Event) => {\n if (\n elementContainsEventTarget(ref.current, event) ||\n elementContainsEventTarget(buttonRef.current, event)\n ) {\n return;\n }\n\n handler();\n };\n\n document.addEventListener('mousedown', listener);\n document.addEventListener('touchstart', listener);\n\n return () => {\n document.removeEventListener('mousedown', listener);\n document.removeEventListener('touchstart', listener);\n };\n }, [ref, buttonRef, handler]);\n}\n","import './LanguageSelect.scss';\n\nimport React, { FC } from 'react';\nimport { SegmentedControl, SegmentedChoice } from '@entur/form';\nimport cx from 'classnames';\nimport { assertIsDefined } from '@entur-partner/util';\n\nexport type LanguageKey = 'nob' | 'nno' | 'eng';\n\nexport interface LanguageOption {\n value: LanguageKey;\n label: string;\n required: boolean;\n}\n\nexport interface LanguageSelectProps {\n language: string;\n options: LanguageOption[];\n className?: string;\n onChange: (language: string) => void;\n [key: string]: any;\n}\n\nexport const LanguageSelect: FC<LanguageSelectProps> = ({\n language,\n options,\n className,\n onChange,\n ...rest\n}) => {\n const classNames = cx('eps-language-select', className);\n return (\n <div {...rest} className={classNames}>\n <SegmentedControl\n onChange={(language) => {\n assertIsDefined(language);\n onChange(language);\n }}\n selectedValue={language}\n >\n {options.map((option) => (\n <SegmentedChoice key={option.value} value={option.value}>\n {option.label}\n {option.required && <span className=\"asterisk-margin\">{'*'}</span>}\n </SegmentedChoice>\n ))}\n </SegmentedControl>\n </div>\n );\n};\n","import { ReactNode, Component, ErrorInfo } from 'react';\n\nimport { isFunction } from './helpers';\n\ntype FallbackOptions = {\n retry: () => void;\n error: Error;\n};\n\ntype RenderProp = (options: FallbackOptions) => ReactNode;\n\ntype Props = {\n handleError?: (error: Error, errorInfo: ErrorInfo) => void;\n fallback: ReactNode | RenderProp;\n children: ReactNode;\n};\n\ntype State = {\n error: null | Error;\n};\n\nexport class ErrorBoundary extends Component<Props, State> {\n constructor(props: Props) {\n super(props);\n this.state = { error: null };\n }\n\n static getDerivedStateFromError(error: Error): State {\n return {\n error,\n };\n }\n\n componentDidCatch(error: Error, errorInfo: ErrorInfo) {\n // React always logs in development\n this.props.handleError?.(error, errorInfo);\n }\n\n render() {\n const { error } = this.state;\n const { fallback, children } = this.props;\n\n if (error) {\n if (isFunction<RenderProp>(fallback)) {\n return fallback({ retry: () => this.setState({ error: null }), error });\n }\n return fallback;\n }\n\n return children;\n }\n}\n","export function isFunction<T>(functionToCheck: any): functionToCheck is T {\n return (\n functionToCheck && {}.toString.call(functionToCheck) === '[object Function]'\n );\n}\n","import React, { FC } from 'react';\nimport { localeDate, localeDateTime } from '@entur-partner/util';\n\nexport interface FormatDateTimeProps {\n date: string | Date;\n locale: string;\n [key: string]: any;\n}\n\nexport const FormatDateTime: FC<FormatDateTimeProps> = ({\n date,\n locale,\n as: Component = 'main',\n hideTime,\n ...rest\n}) => {\n return (\n <Component {...rest}>\n {hideTime ? localeDate(date, locale) : localeDateTime(date, locale)}\n </Component>\n );\n};\n","import './ConfirmModal.scss';\n\nimport React, { ReactNode, FC } from 'react';\nimport { Modal, ModalProps } from '@entur/modal';\nimport { Paragraph } from '@entur/typography';\nimport { isString } from '@entur-partner/util';\nimport { ButtonGroup, SecondaryButton, PrimaryButton } from '@entur/button';\n\nimport { Box } from './Box';\n\nexport interface BaseConfirmModalProps extends Partial<ModalProps> {\n title: string;\n children: React.ReactNode;\n closeLabel: string;\n\n /** Deprecated use children prop */\n message?: ReactNode;\n /** Deprecated use open prop */\n isOpen?: boolean;\n /** Deprecated use onDismiss prop */\n onClose?: () => void;\n}\n\ninterface CustomConfirmModalButtons extends BaseConfirmModalProps {\n buttons: ReactNode[];\n}\n\ninterface DefaultConfirmModalHandler extends BaseConfirmModalProps {\n onConfirm: () => void;\n messages: {\n confirm: string;\n cancel: string;\n };\n}\n\nexport type ConfirmModalProps =\n | CustomConfirmModalButtons\n | DefaultConfirmModalHandler;\n\nexport const ConfirmModal: FC<ConfirmModalProps> = ({\n isOpen = false,\n children,\n message,\n size = 'medium',\n buttons,\n onConfirm,\n messages,\n onClose,\n onDismiss,\n ...rest\n}) => {\n const childrenToRender = children ? children : message;\n const handleDismiss = onClose ? onClose : onDismiss;\n return (\n <Modal size={size} open={isOpen} onDismiss={handleDismiss} {...rest}>\n {isString(childrenToRender) ? (\n <Paragraph>{childrenToRender}</Paragraph>\n ) : (\n <Box paddingBottom=\"medium\">{childrenToRender}</Box>\n )}\n\n <ButtonGroup>\n {onConfirm ? (\n <>\n <SecondaryButton\n onClick={handleDismiss}\n data-testid=\"cancel-modal-button\"\n >\n {messages.cancel}\n </SecondaryButton>\n <PrimaryButton\n onClick={onConfirm}\n data-testid=\"confirm-modal-button\"\n >\n {messages.confirm}\n </PrimaryButton>\n </>\n ) : (\n buttons\n )}\n </ButtonGroup>\n </Modal>\n );\n};\n","import React, { ReactNode, FC } from 'react';\nimport { BusinessCapability } from '@entur-partner/permission-client-node';\nimport { hasAllPermissions, hasOneOfPermissions } from '@entur-partner/util';\n\n/**\n * Note: We use BusinessCapability here, not because we only want to check\n * BusinessCapabilities but because it represents a minimal subset of what we\n * need to check.\n */\nexport interface PermissionCheckProps {\n children: ReactNode;\n /** User permissions to check */\n permissions: BusinessCapability[];\n /** Check that at least one of the permissions is present */\n oneOf?: BusinessCapability[];\n /** Check that all of the permissions is present */\n all?: BusinessCapability[] | BusinessCapability;\n /** Rendered if check fails. Defaults to null */\n fallback?: ReactNode;\n}\n\n/**\n * Note: This component uses BusinessCapability, not because we only want to\n * check BusinessCapabilities but because it represents a minimal subset of\n * what we need to check.\n */\nexport const PermissionCheck: FC<PermissionCheckProps> = ({\n children,\n fallback = null,\n permissions,\n oneOf = [],\n all = [],\n}) => {\n const allIsAllowed = hasAllPermissions(all, permissions);\n\n const oneOfIsAllowed = hasOneOfPermissions(oneOf, permissions);\n\n const allowed = allIsAllowed && oneOfIsAllowed;\n return <>{allowed ? children : fallback}</>;\n};\n","import './ActionBar.scss';\nimport React, { ReactNode } from 'react';\n\nexport interface ActionBarProps {\n children: ReactNode;\n}\n\nconst ActionBarLeft = ({ children }: ActionBarProps) => {\n return <div className=\"eps-action-bar-left\">{children}</div>;\n};\n\nconst ActionBarRight = ({ children }: ActionBarProps) => {\n return <div className=\"eps-action-bar-right\">{children}</div>;\n};\n\nconst ActionBar = ({ children }: ActionBarProps) => {\n return (\n <>\n <div className=\"eps-action-bar-padding\" />\n <div className=\"eps-action-bar\">{children}</div>\n </>\n );\n};\n\nexport { ActionBar, ActionBarLeft, ActionBarRight };\n","import './AuditInfo.scss';\n\nimport React, { FC } from 'react';\nimport cx from 'classnames';\nimport { isDateString, isDate } from '@entur-partner/util';\n\nimport { FormatDateTime } from './FormatDateTime';\nimport { Stack } from './Stack';\n\ninterface Item {\n label: string;\n value: Date | string;\n}\n\nexport interface AuditInfoProps {\n items: Item[];\n locale: string;\n className?: string;\n [key: string]: any;\n}\n\nexport const AuditInfo: FC<AuditInfoProps> = ({\n items,\n locale,\n className,\n ...rest\n}) => {\n const classNames = cx('ep-audit-info', className);\n return (\n <div className={classNames} {...rest}>\n {items.map(({ label, value }, i) => (\n <Stack space=\"small\" key={i}>\n <div className=\"ep-audit-info-label\">{label}</div>\n <div>\n {isDate(value) || isDateString(value) ? (\n <FormatDateTime date={value} locale={locale} />\n ) : (\n <span>{value}</span>\n )}\n </div>\n </Stack>\n ))}\n </div>\n );\n};\n","import './Breadcrumbs.scss';\nimport React, { FC, ReactElement } from 'react';\nimport { Link } from 'react-router-dom';\nimport { BreadcrumbNavigation, BreadcrumbItem } from '@entur/menu';\n\nexport interface BreadcrumbsProps {\n pathname: string;\n onBreadcrumbLookup: (path: string) => string | undefined;\n prependBreadcrumbItem?: ReactElement;\n}\n\nexport const Breadcrumbs: FC<BreadcrumbsProps> = ({\n prependBreadcrumbItem,\n pathname,\n onBreadcrumbLookup,\n}) => {\n const paths: string[] = pathname === '/' ? [] : ['/'];\n\n // support paths with and without trailing slash, except root\n const adjustedPathname =\n pathname.length > 1 ? pathname.replace(/\\/$/, '') : pathname;\n\n adjustedPathname.split('/').reduce((prev, curr) => {\n const path = `${prev}/${curr}`;\n paths.push(path);\n return path;\n });\n\n const breadcrumbs = paths\n .map((path) => ({ title: onBreadcrumbLookup(path), path }))\n .filter(({ title }) => title !== undefined);\n\n const breadcrumbElements = breadcrumbs.map(({ title, path }, i) => {\n const isLast = i === breadcrumbs.length - 1;\n if (isLast) {\n return (\n <BreadcrumbItem key={path} as={'span'}>\n {title}\n </BreadcrumbItem>\n );\n }\n return (\n <BreadcrumbItem key={path} as={Link} to={path}>\n {title}\n </BreadcrumbItem>\n );\n });\n\n if (prependBreadcrumbItem) {\n return (\n <BreadcrumbNavigation>\n {[prependBreadcrumbItem, ...breadcrumbElements]}\n </BreadcrumbNavigation>\n );\n }\n\n return <BreadcrumbNavigation>{breadcrumbElements}</BreadcrumbNavigation>;\n};\n","import './Content.scss';\n\nimport React, { FC, ReactNode } from 'react';\nimport classnames from 'classnames';\n\ninterface ContentProps {\n children: ReactNode;\n as?: 'main' | React.ElementType;\n className?: string;\n}\nexport const Content: FC<ContentProps> = ({\n as: Component = 'main',\n className,\n children,\n}) => {\n const classList = classnames(['eps-content', className]);\n\n return <Component className={classList}>{children}</Component>;\n};\n","import React, { ChangeEvent } from 'react';\nimport { VariantType } from '@entur/form';\nimport { ExpandablePanel } from '@entur/expand';\n\nimport { LanguageKey, LanguageOption } from './LanguageSelect';\nimport { Stack } from './Stack';\n\nexport type MultiLanguageValues = Record<LanguageKey, string>;\n\ntype ExpandableMultiLanguageInputProps = {\n title: string;\n inputComponent: React.ElementType;\n languages: LanguageOption[];\n values: MultiLanguageValues;\n onChange: (values: MultiLanguageValues) => void;\n name: string;\n variant?: (lang: LanguageKey) => VariantType;\n feedback?: (lang: LanguageKey) => string;\n [key: string]: any;\n};\n\nexport const ExpandableMultiLanguageInput = ({\n title,\n inputComponent: InputComponent,\n languages,\n values,\n onChange,\n name,\n variant,\n feedback,\n ...rest\n}: ExpandableMultiLanguageInputProps) => {\n const handleOnChange = (language: LanguageKey, value?: string) => {\n const changes = { ...values };\n if (value === '' || !value) {\n delete changes[language];\n } else {\n changes[language] = value;\n }\n onChange(changes);\n };\n\n return (\n <ExpandablePanel\n title={title}\n defaultOpen\n contentStyle={{\n padding: '4px 4px 4px 4px',\n marginTop: '16px',\n marginBottom: '16px',\n }}\n >\n <Stack space=\"medium\">\n {languages.map(({ value: langKey, label, required }) => (\n <InputComponent\n data-testid={`multi-lang-input-${name}-${langKey}`}\n key={title + langKey}\n label={required ? label + '*' : label}\n variant={variant && variant(langKey)}\n feedback={feedback && feedback(langKey)}\n name={name}\n onChange={(e: ChangeEvent<HTMLInputElement>) => {\n handleOnChange(langKey, e.target.value);\n }}\n value={values[langKey] || ''}\n {...rest}\n />\n ))}\n </Stack>\n </ExpandablePanel>\n );\n};\n","import React, { FC } from 'react';\n\nexport interface FormatCurrencyAmountProps {\n amount: number | string;\n as?: 'span' | React.ElementType;\n [key: string]: any;\n}\n\nexport const FormatCurrencyAmount: FC<FormatCurrencyAmountProps> = ({\n amount,\n as: Component = 'span',\n ...rest\n}) => {\n const parsedAmount = Number(amount) || 0;\n\n const formattedAmount = new Intl.NumberFormat('nb-NO', {\n maximumFractionDigits: 2,\n minimumFractionDigits: 2,\n }).format(parsedAmount);\n\n return <Component {...rest}>{formattedAmount}</Component>;\n};\n","import React, { FC } from 'react';\nimport { Link as RouterLink, LinkProps } from 'react-router-dom';\nimport { Link as A } from '@entur/typography';\n\ninterface Props extends LinkProps {}\n\nexport const Link: FC<Props> = (props) => {\n return (\n <A {...props} as={RouterLink}>\n {props.children}\n </A>\n );\n};\n","import './LinkButton.scss';\n\nimport React, { ReactNode } from 'react';\nimport { Link } from '@entur/typography';\nimport cx from 'classnames';\n\nexport interface LinkButtonProps {\n children: ReactNode;\n className?: string;\n [key: string]: any;\n}\n\nexport const LinkButton = ({\n children,\n className,\n ...rest\n}: LinkButtonProps) => (\n <Link {...rest} as=\"button\" className={cx('eps-link-button', className)}>\n {children}\n </Link>\n);\n","import './Menu.scss';\n\nimport React, { FC, ReactNode } from 'react';\nimport classnames from 'classnames';\n\ninterface MenuProps {\n children: ReactNode;\n as?: 'div' | React.ElementType;\n className?: string;\n}\nexport const Menu: FC<MenuProps> = ({\n as: Component = 'nav',\n className,\n children,\n}) => {\n const classList = classnames(['eds-contrast', 'eps-menu', className]);\n\n return <Component className={classList}>{children}</Component>;\n};\n","import './MultiLanguageInput.scss';\n\nimport React, { FC, useState, ChangeEvent, FocusEvent } from 'react';\nimport cx from 'classnames';\nimport { VariantType } from '@entur/form';\n\nimport { Stack } from './Stack';\nimport { LanguageSelect, LanguageOption } from './LanguageSelect';\n\ntype Values = { [key: string]: string };\n\nexport interface MultiLanguageInputProps {\n className?: string;\n onBlur?: (e: FocusEvent<HTMLDivElement>) => void;\n inputComponent: React.ElementType;\n values: { [key: string]: string };\n languages: LanguageOption[];\n onChange: (values: Values) => void;\n name: string;\n alertLevel?: VariantType;\n alertLabel?: string;\n label?: string;\n defaultLanguage?: string;\n [key: string]: any;\n}\n/**\n * @deprecated use ExpandableMultiLanguageInput\n */\nexport const MultiLanguageInput: FC<MultiLanguageInputProps> = ({\n className,\n inputComponent: InputComponent,\n alertLabel,\n alertLevel,\n name,\n languages,\n values,\n onChange,\n defaultLanguage = 'nob',\n label = '',\n onBlur = () => {},\n ...rest\n}) => {\n const [language, setLanguage] = useState(defaultLanguage);\n const classNames = cx('multi-language-input', className);\n const currentValue = values[language];\n\n const handleOnBlur = (e: FocusEvent<HTMLDivElement>) => {\n e.persist();\n const currentTarget = e.currentTarget;\n setTimeout(() => {\n if (currentTarget && !currentTarget.contains(document.activeElement)) {\n onBlur(e);\n }\n }, 0);\n };\n\n const handleLanguageChange = (language: string) => {\n setLanguage(language);\n };\n\n const handleOnChange = (value?: string) => {\n const changes = Object.assign({}, values);\n if (value === '' || !value) {\n delete changes[language];\n } else {\n changes[language] = value;\n }\n onChange(changes);\n };\n\n return (\n <div\n className={classNames}\n tabIndex={0}\n onBlur={handleOnBlur}\n data-testid={`multi-lang-input-${name}`}\n >\n <Stack space=\"extraSmall\">\n <LanguageSelect\n language={language}\n options={languages}\n onChange={(lang) => handleLanguageChange(lang)}\n />\n <InputComponent\n label={label}\n variant={alertLevel}\n feedback={alertLabel}\n name={name}\n className=\"language-item\"\n onChange={(e: ChangeEvent<HTMLInputElement>) =>\n handleOnChange(e.target.value)\n }\n value={currentValue || ''}\n {...rest}\n />\n </Stack>\n </div>\n );\n};\n","import React, { FC } from 'react';\nimport { Dropdown } from '@entur/dropdown';\n\ninterface Organisation {\n name: string;\n id: string;\n}\n\ninterface OrganisationDropDownProps {\n label: string;\n onChange: (id: string) => void;\n organisations: Organisation[];\n selectedOrganisationId?: string;\n [key: string]: any;\n}\n\nexport const OrganisationDropDown: FC<OrganisationDropDownProps> = ({\n label,\n organisations,\n onChange: handleChange,\n selectedOrganisationId,\n ...rest\n}) => {\n const selectedOrganisation = organisations.find(\n (org) => org.id === selectedOrganisationId\n );\n\n return (\n <Dropdown\n label={label}\n searchable\n clearable\n openOnFocus\n className=\"eds-contrast\"\n items={[\n ...organisations\n .sort((a, b) => a.name.localeCompare(b.name, 'nb'))\n .map((organisation) => {\n return {\n value: organisation.id,\n label: organisation.name,\n };\n }),\n ]}\n initialSelectedItem={\n selectedOrganisation\n ? {\n value: selectedOrganisation.id,\n label: selectedOrganisation.name,\n }\n : null\n }\n onChange={(selectedValue) => {\n if (selectedValue) {\n handleChange(selectedValue.value);\n }\n }}\n {...rest}\n />\n );\n};\n","import React, { FC } from 'react';\nimport { Pagination } from '@entur/menu';\n\nexport interface PagerProps {\n currentPage: number;\n collectionSize: number;\n pageSize: number;\n onPageChange: (page: number) => void;\n}\n\nexport const Pager: FC<PagerProps> = ({\n collectionSize,\n pageSize,\n onPageChange,\n currentPage,\n}) => {\n const pageCount = Math.ceil(collectionSize / pageSize);\n return (\n <Pagination\n pageCount={pageCount}\n currentPage={currentPage}\n onPageChange={(page) => {\n onPageChange(page);\n }}\n />\n );\n};\n","import { BusinessCapability } from '@entur-partner/permission-client-node';\nimport React from 'react';\nimport {\n Route,\n Redirect,\n RouteComponentProps,\n RouteProps,\n} from 'react-router-dom';\n\nimport { PermissionCheck } from './PermissionCheck';\n\ninterface PermissionCheckedRouteProps\n extends RouteComponentProps,\n Omit<RouteProps, 'location'> {\n actualPermissions: BusinessCapability[];\n all?: BusinessCapability[];\n oneOf?: BusinessCapability[];\n onReject?: React.ReactNode;\n}\n\nexport const PermissionCheckedRoute = ({\n children,\n actualPermissions,\n all,\n oneOf,\n onReject,\n ...props\n}: PermissionCheckedRouteProps) => {\n const redirect = (\n <Redirect\n to={{\n pathname: '/unauthorized',\n state: { from: props.location },\n }}\n />\n );\n return (\n <PermissionCheck\n permissions={actualPermissions}\n all={all}\n oneOf={oneOf}\n fallback={onReject ? onReject : redirect}\n >\n <Route {...props}>{children}</Route>\n </PermissionCheck>\n );\n};\n","import React, { useState, FC, ReactNode } from 'react';\nimport { Prompt, useHistory } from 'react-router-dom';\nimport { Location } from 'history';\nimport { ModalProps } from '@entur/modal';\n\nimport { ConfirmModal } from './ConfirmModal';\n\nexport interface RouteLeavingGuardProps extends Partial<ModalProps> {\n title: string;\n closeLabel: string;\n messages: {\n cancel: string;\n confirm: string;\n };\n children: ReactNode;\n shouldBlockNavigation: (location: Location) => boolean;\n}\n\ntype Status = 'BLOCKED' | 'ALLOW';\n\nexport const RouteLeavingGuard: FC<RouteLeavingGuardProps> = ({\n children,\n shouldBlockNavigation,\n ...rest\n}) => {\n const history = useHistory();\n\n const [status, setStatus] = useState<Status>('ALLOW');\n const [lastLocation, setLastLocation] = useState(history.location);\n\n const closeModal = () => {\n setStatus('ALLOW');\n };\n\n const allowNavigation = (nextLocation: Location): boolean => {\n if (shouldBlockNavigation(nextLocation) && status === 'ALLOW') {\n setStatus('BLOCKED');\n setLastLocation(nextLocation);\n return false;\n }\n return true;\n };\n\n const handleConfirm = () => {\n history.push(lastLocation.pathname);\n };\n\n return (\n <>\n <Prompt message={allowNavigation} />\n <ConfirmModal\n onDismiss={closeModal}\n open={status === 'BLOCKED'}\n onConfirm={handleConfirm}\n {...rest}\n >\n {children}\n </ConfirmModal>\n </>\n );\n};\n","import './StatusLabel.scss';\n\nimport React, { FC } from 'react';\nimport cx from 'classnames';\n\ninterface StatusLabelProps {\n label: string;\n active: boolean;\n aggressiveInactive?: boolean;\n showBullet?: boolean;\n center?: boolean;\n}\nexport const StatusLabel: FC<StatusLabelProps> = ({\n active = false,\n label = '',\n aggressiveInactive,\n showBullet,\n center,\n}) => {\n const bulletClassNames = cx('eps-status-label__bullet', {\n active,\n aggressive: aggressiveInactive,\n });\n const statusLabelClassNames = cx('eps-status-label', {\n center,\n });\n return (\n <div className={statusLabelClassNames}>\n {showBullet && <div className={bulletClassNames} />}\n <div>{label}</div>\n </div>\n );\n};\n","import './Text.scss';\n\nimport React, { ReactNode } from 'react';\nimport cx from 'classnames';\n\nimport { StyleColor, responsiveProp, Box } from './Box';\n\ntype StyleFontSize =\n | 'extraSmall'\n | 'small'\n | 'medium'\n | 'large'\n | 'extraLarge'\n | 'extraLarge2'\n | 'extraLarge3'\n | 'extraLarge4';\n\ntype StyleFontWeight = 'body' | 'heading';\n\ntype StyleLineHeight =\n | 'extraSmall'\n | 'small'\n | 'medium'\n | 'large'\n | 'extraLarge'\n | 'extraLarge2'\n | 'extraLarge3'\n | 'extraLarge4'\n | 'extraLarge5'\n | 'extraLarge6'\n | 'extraLarge7';\n\nexport type ResponsiveStyleFontSize =\n | StyleFontSize\n | [StyleFontSize?, StyleFontSize?, StyleFontSize?];\n\nexport type ResponsiveStyleLineHeight =\n | StyleLineHeight\n | [StyleLineHeight?, StyleLineHeight?, StyleLineHeight?];\n\nexport interface TextProps {\n className?: string;\n as?: React.ElementType;\n children: ReactNode;\n\n fontSize?: ResponsiveStyleFontSize;\n lineHeight?: ResponsiveStyleLineHeight;\n color?: StyleColor;\n fontWeight?: StyleFontWeight;\n\n [key: string]: any;\n}\n\nexport const Text = ({\n as: component = 'span',\n children,\n fontSize,\n color,\n lineHeight,\n fontWeight,\n className,\n ...rest\n}: TextProps) => {\n const classes = [];\n\n fontSize && classes.push(...responsiveProp('eps-font-size-', fontSize));\n lineHeight && classes.push(...responsiveProp('eps-line-height-', lineHeight));\n fontWeight && classes.push('eps-font-weight-' + fontWeight);\n\n const classList = cx(classes, className);\n\n return (\n <Box as={component} color={color} className={classList} {...rest}>\n {children}\n </Box>\n );\n};\n","import './Unbutton.scss';\n\nimport React, { FC } from 'react';\nimport { Button, ButtonProps } from '@entur/button';\nimport cx from 'classnames';\n\ninterface UnbuttonProps extends Omit<ButtonProps, 'variant'> {}\n\nexport const Unbutton: FC<UnbuttonProps> = ({\n children,\n className,\n ...rest\n}) => (\n <Button variant=\"primary\" {...rest} className={cx('eps-unbutton', className)}>\n {children}\n </Button>\n);\n","/*global EventListener WindowEventHandlers*/\nimport { useEffect, useRef } from 'react';\n\ninterface TypedEventListener<T extends Event> {\n (evt: T): void;\n}\n\nexport function useEventListener<T extends Event = Event>(\n eventName: string,\n handler: TypedEventListener<T>,\n element: WindowEventHandlers = window\n) {\n const savedHandler = useRef<TypedEventListener<T>>();\n\n useEffect(() => {\n savedHandler.current = handler;\n }, [handler]);\n\n useEffect(() => {\n const isSupported = element && element.addEventListener;\n if (!isSupported) return;\n\n const eventListener = ((event: T): void =>\n savedHandler.current?.(event)) as EventListener;\n\n element.addEventListener(eventName, eventListener);\n\n return () => {\n element.removeEventListener(eventName, eventListener);\n };\n }, [eventName, element]);\n}\n"],"names":["responsiveProp","prefix","prop","Array","isArray","classes","push","Box","Environment","_ref","_ref$as","as","Component","children","contrast","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY","padding","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","margin","display","justifyContent","alignItems","maxWidth","width","background","color","flexDirection","flexWrap","className","rest","_objectWithoutPropertiesLoose","_excluded","resolvedPaddingTop","resolvedPaddingBottom","resolvedPaddingLeft","resolvedPaddingRight","resolvedMarginTop","resolvedMarginBottom","resolvedMarginLeft","resolvedMarginRight","apply","classList","cx","React","createElement","_extends","Stack","space","stackItems","Children","toArray","length","Fragment","map","child","index","key","featureFlag","flag","_window$localStorage","_window$localStorage2","process","env","getItem","window","localStorage","useFeatureToggle","environmentColors","Local","Development","Staging","_environmentColors","getColorForEnvironment","environment","humanReadableEnvironment","_humanReadableEnviron","Production","getHumanReadableEnvironment","EnturPartnerLogoSvg","title","_ref$accentColor","accentColor","height","viewBox","fill","fillRule","d","CustomOverflowMenu","_ref2","ref","buttonRef","handler","userName","open","onOpenChange","overflowItemsClasses","overflowContentRef","useRef","overflowMenuTriggerRef","useEffect","listener","event","elementContainsEventTarget","current","document","addEventListener","removeEventListener","SecondaryButton","onClick","role","UserIcon","inline","Heading6","undefined","style","DownArrowIcon","CustomOverflowMenuItem","props","element","contains","target","composed","composedPath","find","LanguageSelect","language","options","onChange","classNames","SegmentedControl","assertIsDefined","selectedValue","option","SegmentedChoice","value","label","required","ErrorBoundary","_Component","_this","call","this","state","error","getDerivedStateFromError","_proto","prototype","componentDidCatch","errorInfo","_this$props$handleErr","_this$props","handleError","render","functionToCheck","_this2","_this$props2","fallback","toString","retry","setState","FormatDateTime","date","locale","hideTime","localeDate","localeDateTime","ConfirmModal","_ref$isOpen","isOpen","message","_ref$size","size","buttons","onConfirm","messages","onClose","onDismiss","childrenToRender","handleDismiss","Modal","isString","Paragraph","ButtonGroup","cancel","PrimaryButton","confirm","PermissionCheck","_ref$fallback","permissions","_ref$oneOf","oneOf","_ref$all","all","allIsAllowed","hasAllPermissions","oneOfIsAllowed","hasOneOfPermissions","_ref3","items","i","isDate","isDateString","prependBreadcrumbItem","pathname","onBreadcrumbLookup","paths","replace","split","reduce","prev","curr","path","breadcrumbs","filter","breadcrumbElements","BreadcrumbItem","Link","to","BreadcrumbNavigation","classnames","_ref2$as","altText","InputComponent","inputComponent","languages","values","name","variant","feedback","ExpandablePanel","defaultOpen","contentStyle","langKey","e","changes","amount","parsedAmount","Number","formattedAmount","Intl","NumberFormat","maximumFractionDigits","minimumFractionDigits","format","A","RouterLink","alertLabel","alertLevel","_ref$defaultLanguage","defaultLanguage","_ref$label","_ref$onBlur","onBlur","useState","_useState","setLanguage","currentValue","tabIndex","persist","currentTarget","setTimeout","activeElement","lang","handleLanguageChange","Object","assign","organisations","handleChange","selectedOrganisationId","selectedOrganisation","org","id","Dropdown","searchable","clearable","openOnFocus","sort","a","b","localeCompare","organisation","initialSelectedItem","collectionSize","onPageChange","currentPage","pageCount","Math","ceil","pageSize","Pagination","page","actualPermissions","onReject","redirect","Redirect","from","location","Route","shouldBlockNavigation","history","useHistory","status","setStatus","_useState2","lastLocation","setLastLocation","Prompt","nextLocation","_ref$active","active","showBullet","center","bulletClassNames","aggressive","aggressiveInactive","statusLabelClassNames","component","fontSize","lineHeight","fontWeight","Button","onLogout","onLanguageChange","triggerClassList","setOpen","NorwayIcon","switchLanguage","UKIcon","UploadIcon","transform","logout","eventName","savedHandler","eventListener"],"mappings":"4tCAuHgB,SAAAA,EAAeC,EAAgBC,GAC7C,GAAIC,MAAMC,QAAQF,GAAO,CACjBG,IAAAA,EAAU,GAIhB,OAHAH,EAAK,IAAMG,EAAQC,KAAKL,EAASC,EAAK,IACtCA,EAAK,IAAMG,EAAQC,KAAR,GAAgBL,EAASC,EAAK,GAAzC,OACAA,EAAK,IAAMG,EAAQC,KAAR,GAAgBL,EAASC,EAAK,GAAzC,OACOG,EAET,MAAO,CAACJ,EAASC,GAGNK,QClIDC,EDkICD,EAAM,SA6BJE,GAAA,IAAAC,EAAAD,EA5BbE,GAAIC,aAAY,MA4BHF,EA3BbG,IAAAA,SACAC,IAAAA,SACAC,IAAAA,WACAC,IAAAA,aACAC,IAAAA,cACAC,IAAAA,YACAC,IAAAA,SACAC,IAAAA,SACAC,IAAAA,QACAC,IAAAA,UACAC,IAAAA,YACAC,IAAAA,aACAC,IAAAA,WACAC,IAAAA,QACAC,IAAAA,QACAC,IAAAA,OACAC,IAAAA,QACAC,IAAAA,eACAC,IAAAA,WACAC,IAAAA,SACAC,IAAAA,MACAC,IAAAA,WACAC,IAAAA,MACAC,IAAAA,cACAC,IAAAA,SACAC,IAAAA,UACGC,EACUC,EAAA/B,EAAAgC,GACPpC,EAAU,GACVqC,EAAqB3B,GAAcK,GAAYC,EAC/CsB,EAAwB1B,GAAiBG,GAAYC,EACrDuB,EAAsB1B,GAAeC,GAAYE,EACjDwB,EAAuB7B,GAAgBG,GAAYE,EAEnDyB,EAAoBxB,GAAaK,GAAWC,EAC5CmB,EAAuBvB,GAAgBG,GAAWC,EAClDoB,EAAqBvB,GAAcC,GAAWE,EAC9CqB,EAAsB1B,GAAeG,GAAWE,EAEtDd,GAAYT,EAAQC,KAAK,gBACzBoC,GACErC,EAAQC,KAARD,MAAAA,EAAgBL,EAAe,UAAW0C,IAC5CC,GACEtC,EAAQC,KAARD,MAAAA,EAAgBL,EAAe,UAAW2C,IAC5CC,GACEvC,EAAQC,KAARD,MAAAA,EAAgBL,EAAe,UAAW4C,IAC5CC,GACExC,EAAQC,KAARD,MAAAA,EAAgBL,EAAe,UAAW6C,IAC5CC,GACEzC,EAAQC,KAARD,MAAAA,EAAgBL,EAAe,UAAW8C,IAC5CC,GACE1C,EAAQC,KAARD,MAAAA,EAAgBL,EAAe,UAAW+C,IAC5CC,GACE3C,EAAQC,KAARD,MAAAA,EAAgBL,EAAe,UAAWgD,IAC5CC,GACE5C,EAAQC,KAARD,MAAAA,EAAgBL,EAAe,UAAWiD,IAE5CpB,GAAWxB,EAAQC,KAARD,MAAAA,EAAgBL,EAAe,OAAQ6B,IAClDC,GACEzB,EAAQC,KAARD,MAAAA,EAAgBL,EAAe,eAAgB8B,IAC7CC,GACF1B,EAAQC,KAAR4C,MAAA7C,EAAgBL,EAAe,aAAc+B,IAG/CC,GAAY3B,EAAQC,KAARD,MAAAA,EAAgBL,EAAe,aAAcgC,IACzDC,GAAS5B,EAAQC,KAARD,MAAAA,EAAgBL,EAAe,SAAUiC,IAElDE,GAAS9B,EAAQC,KAAR,aAA0B6B,GACnCD,GAAc7B,EAAQC,KAAR,UAAuB4B,GAErCE,GAAiB/B,EAAQC,KAARD,MAAAA,EAAgBL,EAAe,YAAaoC,IAC7DC,GAAYhC,EAAQC,KAARD,MAAAA,EAAgBL,EAAe,iBAAkBqC,IAE7D,IAAMc,EAAYC,EAAAA,QAAG/C,EAASiC,GAE9B,OACEe,UAAAC,cAAC1C,EAAD2C,EAAA,CAAWjB,UAAWa,GAAeZ,GAClC1B,IEvMM2C,EAAQ,SAA+C/C,GAA5CI,IAAU4C,IAAAA,MAAOnB,IAAAA,UACjCoB,EAAaC,EAAAA,SAASC,UADN/C,UAEtB,OAAI6C,EAAWG,QAAU,EAChBR,EAAAA,QAAAC,cAAAD,EAAAA,QAAAS,SAAA,KAAGJ,GAIVL,EAAK,QAAAC,cAAA,MAAA,CAAAhB,UAAWA,GACboB,EAAWK,KAAI,SAACC,EAAOC,GAAR,OACdA,IAAUP,EAAWG,OAAS,EAC5BR,+BAAKa,IAAKD,GAAQD,GAElBX,UAAAC,cAAC/C,EAAG,CAACU,cAAewC,EAAOS,IAAKD,GAC7BD,mCCdP,SAAUG,EAAYC,GAAY,IAAAC,EAAAC,EACtC,MACuC,SAArCC,QAAQC,IAAR,aAAyBJ,IACc,UAAlBK,OAArBC,EAAAA,OAAOC,mBAAcF,EAAAA,EAAAA,QAAQL,KACyB,UAAtD,OAAAE,EAAAI,OAAOC,mBAAP,EAAAL,EAAqBG,QAArB,aAA0CL,IAWxC,SAAUQ,EAAiBR,GACxBD,OAAAA,EAAYC,GFzBT5D,QAAZA,iBAAA,GAAYA,EAAAA,sBAAAA,QAAAA,YAKX,KAJC,MAAA,QACAA,EAAA,YAAA,MACAA,EAAA,QAAA,UACAA,EAAA,WAAA,OAGF,IAAMqE,IAIHrE,EAAAA,IAAAA,QAAAA,YAAYsE,OAAQ,UACpBtE,EAAAA,QAAWA,YAACuE,aAAc,UAC1BvE,EAAAA,QAAAA,YAAYwE,SAAU,UANzBC,GAcaC,EAAyB,SACpCC,GACGN,OAAAA,EAAkBM,IAEjBC,IACH5E,EAAAA,IAAAA,QAAWA,YAACsE,OAAQ,QADOO,EAE3B7E,QAAWA,YAACuE,aAAc,MAC1BvE,EAAAA,QAAWA,YAACwE,SAAU,UACtBxE,EAAAA,QAAWA,YAAC8E,YAAa,OAJ5BD,GAOaE,EAA8B,SAACJ,GAC1CC,OAAAA,EAAyBD,8BGnBdK,EAAqC,SAI7C/E,GAHHgF,IAAAA,IAAAA,MAGGC,EAAAjF,EAFHkF,YAAAA,aAAc,UAEXD,EADAnD,EACAC,EAAA/B,EAAAgC,GACH,OACEY,UAAAC,cAAA,MAAAC,EAAA,CAAKtB,MAAO,IAAK2D,OAAQ,GAAIC,QAAQ,cAAiBtD,GACpDc,UAAAC,cAAA,QAAA,KAAQmC,GACRpC,EAAAA,QAAAC,cAAA,IAAA,CAAGwC,KAAK,OAAOC,SAAS,WACtB1C,EAAA,QAAAC,cAAA,OAAA,CACEwC,KAAK,OACLE,EAAE,iFAEJ3C,EAAAA,QAAAC,cAAA,OAAA,CAAMwC,KAAMH,EAAaK,EAAE,8BAC3B3C,EAAAA,QAAAC,cAAA,OAAA,CACEwC,KAAK,OACLE,EAAE,+sCAEJ3C,EAAAA,QAAGC,cAAA,IAAA,CAAAwC,KAAMH,GACPtC,EAAM,QAAAC,cAAA,OAAA,CAAA0C,EAAE,8wDCwEZC,EAOD,SAQAC,GAPH5D,IAkGA6D,EACAC,EACAC,EApGA/D,IAAAA,UACAzB,IAAAA,SACAyF,IAAAA,SACAC,IAAAA,KACAC,IAAAA,aACArB,IAAAA,YACG5C,EACAC,EAAA0D,EAAAzD,GACGgE,EAAuBrD,EAAE,QAAC,2BAA4B,CACxBmD,iCAAAA,IAE9BG,EAAqBrD,EAAAA,QAAMsD,OAAuB,MAClDC,EAAyBvD,EAAAA,QAAMsD,OAA0B,MAI/D,OAsFAtD,EAAK,QAACwD,WAAU,WACd,IAAMC,EAAW,SAACC,GAEdC,EAA2Bb,EAAIc,QAASF,IACxCC,EAA2BZ,EAAUa,QAASF,IAKhDV,KAMF,OAHAa,SAASC,iBAAiB,YAAaL,GACvCI,SAASC,iBAAiB,aAAcL,GAEjC,WACLI,SAASE,oBAAoB,YAAaN,GAC1CI,SAASE,oBAAoB,aAAcN,MAE5C,CAvBHX,EArFgBO,EAsFhBN,EAtFoCQ,EAuFpCP,EAvF4D,WAC1DG,OAAAA,GAAa,MAGbnD,EAAA,QAAAC,cAAA,MAAA,KACED,EAAAA,QAAAC,cAAC+D,EAADA,gBAAA9D,EAAA,CACEjB,UAAWc,EAAAA,QAAG,4BAA6Bd,GAC3CgF,QAAS,WAAA,OAAMd,GAAaD,qBACb,EACfgB,KAAK,yBACUhB,EACfJ,IAAKS,GACDrE,GAEJc,UAAKC,cAAA,MAAA,CAAAhB,UAAU,sCACbe,EAAM,QAAAC,cAAA,OAAA,CAAAhB,UAAU,gCACde,EAAA,QAAAC,cAACkE,WAAQ,CAACC,QAAM,KAElBpE,EAAAA,QAACC,cAAAoE,YAAS9F,OAAO,OAAOjB,GAAG,QACxB2F,OACgBqB,IAAhBxC,GACCA,IAAgB3E,QAAWA,YAAC8E,YAC1BjC,EAAAA,QAAMC,cAAA,OAAA,CAAAsE,MAAO,CAAEzF,MAAO+C,EAAuBC,KAC1C,QACCI,EAA4BJ,GACzB,MAGb9B,EAAAA,QAAMC,cAAA,OAAA,CAAAhB,UAAU,kBACde,EAAA,QAAAC,cAACuE,gBAAc,CAAAJ,QAAS,OAI7BlB,GACClD,EAAAA,QACEC,cAAA,MAAA,CAAAhB,UAAWmE,EACXc,KAAK,OACLpB,IAAKO,GAEJ7F,KAOLiH,EAKF,SAACC,GACH,OACE1E,iCAAAE,EAAA,CACEjB,UAAWc,EAAE,QAAC2E,EAAMzF,UAAW,2BAC/BiF,KAAK,YACDQ,KAKV,SAASf,EAA2BgB,EAA6BjB,GAC3D,SAACiB,KAIDA,EAAQC,SAASlB,EAAMmB,SAKvBnB,EAAMoB,UAAYpB,EAAMqB,cACTrB,EAAMqB,eAAeC,MAAK,SAACH,GACtCA,OAAAA,IAAWxD,QAGRsD,EAAQC,SAASC,4HCnLjBI,EAA0C,SAMlD7H,GALH8H,IAAAA,IAAAA,SACAC,IAAAA,QACAlG,IAAAA,UACAmG,IAAAA,SACGlG,EACAC,EAAA/B,EAAAgC,GACGiG,EAAatF,EAAAA,QAAG,sBAAuBd,GAC7C,OACEe,EAAAA,QAASC,cAAA,WAAAf,EAAT,CAAeD,UAAWoG,IACxBrF,EAAAA,QAAAC,cAACqF,mBACC,CAAAF,SAAU,SAACF,GACTK,EAAeA,gBAACL,GAChBE,EAASF,IAEXM,cAAeN,GAEdC,EAAQzE,KAAI,SAAC+E,GAAD,OACXzF,EAAA,QAAAC,cAACyF,kBAAe,CAAC7E,IAAK4E,EAAOE,MAAOA,MAAOF,EAAOE,OAC/CF,EAAOG,MACPH,EAAOI,UAAY7F,EAAM,QAAAC,cAAA,OAAA,CAAAhB,UAAU,mBAAmB,qQCtBtD6G,EAAb,SAAAC,WACE,SAAAD,EAAYpB,GAAY,IAAAsB,EAAA,OACtBA,EAAAD,EAAAE,KAAAC,KAAMxB,IAANwB,MACKC,MAAQ,CAAEC,MAAO,MAFAJ,IAD1BD,KAAAD,yEAAAA,EAMSO,yBAAP,SAAgCD,GACvB,MAAA,CACLA,MAAAA,IARN,IAAAE,EAAAR,EAAAS,UAAA,OAAAD,EAYEE,kBAAA,SAAkBJ,EAAcK,GAAoB,IAAAC,EAAAC,EAEzBP,OAAzBM,GAAAC,EAAAT,KAAKxB,OAAMkC,cAAcR,EAAAA,KAAAA,EAAAA,EAAOK,IAGlCI,EAAAA,OAAA,WAAM,ICtCsBC,EDsCtBC,EAAAb,KACIE,EAAUF,KAAKC,MAAfC,MACRY,EAA+Bd,KAAKxB,MAA5BuC,IAAAA,SAAUzJ,IAAAA,SAElB,OAAI4I,GC1CsBU,ED2CGG,ICzC4B,sBAAtC,GAAGC,SAASjB,KAAKa,GD0CzBG,EAAS,CAAEE,MAAO,WAAM,OAAAJ,EAAKK,SAAS,CAAEhB,MAAO,QAASA,MAAAA,IAE1Da,EAGFzJ,GA5BXsI,EAAA,CAAmCvI,EAAnCA,+CEZa8J,EAA0C,SAMlDjK,GALHkK,IAAAA,IAAAA,KACAC,IAAAA,OAIGlK,EAAAD,EAHHE,GAAIC,aAAY,OAGbF,EAFHmK,IAAAA,SACGtI,EACAC,EAAA/B,EAAAgC,GAEDY,OAAAA,EAAAA,QAACC,cAAA1C,EAAc2B,EAAAA,GAAAA,GACZsI,EAAWC,EAAAA,WAAWH,EAAMC,GAAUG,EAAcA,eAACJ,EAAMC,wJCqBrDI,EAAsC,SAW9CvK,GAAA,IAAAwK,EAAAxK,EAVHyK,OAAAA,cAUGD,EATHpK,IAAAA,SACAsK,IAAAA,QAQGC,EAAA3K,EAPH4K,KAAAA,aAAO,SAOJD,EANHE,IAAAA,QACAC,IAAAA,UACAC,IAAAA,SACAC,IAAAA,QACAC,IAAAA,UACGnJ,EACAC,EAAA/B,EAAAgC,GACGkJ,EAAmB9K,GAAsBsK,EACzCS,EAAgBH,GAAoBC,EAC1C,OACErI,UAACC,cAAAuI,EAADA,MAAAtI,EAAA,CAAO8H,KAAMA,EAAM9E,KAAM2E,EAAQQ,UAAWE,GAAmBrJ,GAC5DuJ,EAAAA,SAASH,GACRtI,EAAAA,QAACC,cAAAyI,EAADA,UAAY,KAAAJ,GAEZtI,EAAAA,QAAAC,cAAC/C,EAAG,CAACU,cAAc,UAAU0K,GAG/BtI,EAAA,QAAAC,cAAC0I,EAADA,YACG,KAAAT,EACClI,EAAA,QAAAC,cAAAD,EAAA,QAAAS,SAAA,KACET,EAAC,QAAAC,cAAA+D,kBACC,CAAAC,QAASsE,EACG,cAAA,uBAEXJ,EAASS,QAEZ5I,EAAAA,QAACC,cAAA4I,EAAAA,eACC5E,QAASiE,EACG,cAAA,wBAEXC,EAASW,UAIdb,4CCpDGc,EAA4C,SAMpD3L,GALHI,IAAAA,IAAAA,SAKGwL,EAAA5L,EAJH6J,SAAAA,aAAW,KAIR+B,EAHHC,IAAAA,YAGGC,EAAA9L,EAFH+L,MAAAA,aAAQ,GAELD,EAAAE,EAAAhM,EADHiM,IAEMC,EAAeC,EAAAA,6BAFf,GACHH,EACyCH,GAEtCO,EAAiBC,EAAAA,oBAAoBN,EAAOF,GAGlD,OAAOjJ,EAAA,QAAAC,cAAAD,UAAAS,SAAA,KADS6I,GAAgBE,EACZhM,EAAWyJ,gKCvBf,SAAiCyC,GAA9BlM,IAAAA,IAAAA,SACnB,OACEwC,EAAA,QAAAC,cAAAD,UAAAS,SAAA,KACET,EAAK,QAAAC,cAAA,MAAA,CAAAhB,UAAU,2BACfe,EAAAA,QAAKC,cAAA,MAAA,CAAAhB,UAAU,kBAAkBzB,2BAZjB,SAAiCJ,GACrD,OAAO4C,+BAAKf,UAAU,yBADCzB,kCAIF,SAAiCqF,GACtD,OAAO7C,+BAAKf,UAAU,0BADEzB,6BCUmB,SAKxCJ,GAJHuM,IAAAA,IAAAA,MACApC,IAAAA,OACAtI,IAAAA,UACGC,EACAC,EAAA/B,EAAAgC,GACGiG,EAAatF,EAAAA,QAAG,gBAAiBd,GACvC,OACEe,UAAAC,cAAA,MAAAC,EAAA,CAAKjB,UAAWoG,GAAgBnG,GAC7ByK,EAAMjJ,KAAI,WAAmBkJ,GAAhBhE,IAAOD,IAAAA,MAAV,OACT3F,EAAA,QAAAC,cAACE,EAAK,CAACC,MAAM,QAAQS,IAAK+I,GACxB5J,EAAA,QAAAC,cAAA,MAAA,CAAKhB,UAAU,yBAFL2G,OAGV5F,EAAAA,QAAAC,cAAA,MAAA,KACG4J,EAAAA,OAAOlE,IAAUmE,EAAYA,aAACnE,GAC7B3F,EAAAA,sBAACqH,EAAc,CAACC,KAAM3B,EAAO4B,OAAQA,IAErCvH,EAAA,QAAAC,cAAA,OAAA,KAAO0F,4CC1B4B,SAI5CvI,GAHH2M,IAAAA,IAAAA,sBACAC,IAAAA,SACAC,IAAAA,mBAEMC,EAA+B,MAAbF,EAAmB,GAAK,CAAC,MAI/CA,EAASxJ,OAAS,EAAIwJ,EAASG,QAAQ,MAAO,IAAMH,GAErCI,MAAM,KAAKC,QAAO,SAACC,EAAMC,GACxC,IAAMC,EAAUF,EAAN,IAAcC,EAExB,OADAL,EAAMjN,KAAKuN,GACJA,KAGT,IAAMC,EAAcP,EACjBxJ,KAAI,SAAC8J,GAAU,MAAA,CAAEpI,MAAO6H,EAAmBO,GAAOA,KAAAA,MAClDE,QAAO,SAAA7H,GAAeT,YAAUkC,MAAtBlC,SAEPuI,EAAqBF,EAAY/J,KAAI,SAAAgJ,EAAkBE,GAAfxH,IAAOoI,IAAAA,KAEnD,OAEIxK,EAAA,QAAAC,cAAC2K,iBAHUhB,IAAMa,EAAYjK,OAAS,EAGvB,CAACK,IAAK2J,EAAMlN,GAAI,SAMjBuD,IAAK2J,EAAMlN,GAAIuN,OAAMC,GAAIN,KAVCpI,UAgB9C,OAEIpC,EAAA,QAAAC,cAAC8K,EAAAA,qBAAoB,KAFrBhB,EAGIA,CAAAA,GAA0BY,OAAAA,GAKJA,2CC9CS,SAIpCvN,GAAA,IAAAC,EAAAD,EAHHE,GAAIC,aAAY,OAGbF,EADHG,IAAAA,SAEMsC,EAAYkL,EAAU,QAAC,CAAC,gBAH9B/L,YAKA,OAAOe,EAAA,QAAAC,cAAC1C,EAAU,CAAA0B,UAAWa,GAAYtC,6BX8BgB,SAKtDqF,GAAA,IAAAoI,EAAApI,EAJHvF,GAAIC,aAAY,MAIb0N,EAFHC,IAAAA,QACApJ,IAAAA,YAEMhC,EAAYkL,EAAU,QAAC,CAAC,qBAJ9B/L,YAMA,OACEe,EAAC,QAAAC,cAAA1C,EAAU,CAAA0B,UAAWa,GACpBE,EAAC,QAAAC,cAAAkC,GACCC,MAAO8I,EACPjM,UAAU,OACVqD,iBACkBgC,IAAhBxC,GAA6BA,IAAgB3E,QAAWA,YAAC8E,WACrDJ,EAAuBC,QACvBwC,iGY1C8B,SAUJlH,GATtCgF,IAAAA,IAAAA,MACgB+I,IAAhBC,eACAC,IAAAA,UACAC,IAAAA,OACAlG,IAAAA,SACAmG,IAAAA,KACAC,IAAAA,QACAC,IAAAA,SACGvM,EACmCC,EAAA/B,EAAAgC,GAWtC,OACEY,EAAC,QAAAC,cAAAyL,kBACC,CAAAtJ,MAAOA,EACPuJ,aACA,EAAAC,aAAc,CACZ5N,QAAS,kBACTC,UAAW,OACXE,aAAc,SAGhB6B,EAAA,QAAAC,cAACE,EAAM,CAAAC,MAAM,UACViL,EAAU3K,KAAI,SAAAmC,GAAUgJ,IAAAA,IAAPlG,MAAgBC,IAAAA,MAAnB,OACb5F,UAACC,cAAAkL,EAADjL,EAAA,CACmCqL,cAAAA,oBAAAA,MAAQM,EACzChL,IAAKuB,EAAQyJ,EACbjG,QAJqCC,SAInBD,EAAQ,IAAMA,EAChC4F,QAASA,GAAWA,EAAQK,GAC5BJ,SAAUA,GAAYA,EAASI,GAC/BN,KAAMA,EACNnG,SAAU,SAAC0G,GA7BE,IAAC5G,EAAuBS,EACvCoG,EADgB7G,EA8BG2G,EA9BoBlG,EA8BXmG,EAAEjH,OAAOc,MA7BrCoG,EAAeT,EAAAA,GAAAA,GACP,KAAV3F,GAAiBA,EAGnBoG,EAAQ7G,GAAYS,SAFboG,EAAQ7G,GAIjBE,EAAS2G,IAyBDpG,MAAO2F,EAAOO,IAAY,IACtB3M,gCb7Ba,SAA2C9B,GAAxCI,IAAAA,IAAAA,SAE9B,OADgB+D,IADwBR,MAG/Bf,EAAAA,QAAAC,cAAAD,EAAAA,QAAAS,SAAA,KAAGjD,GAEL,mCcjC0D,SAI9DJ,GAHH4O,IAAAA,IAAAA,OAGG3O,EAAAD,EAFHE,GAAIC,aAAY,OAEbF,EADA6B,EACAC,EAAA/B,EAAAgC,GACG6M,EAAeC,OAAOF,IAAW,EAEjCG,EAAkB,IAAIC,KAAKC,aAAa,QAAS,CACrDC,sBAAuB,EACvBC,sBAAuB,IACtBC,OAAOP,GAEHjM,OAAAA,wBAACzC,EAAc2B,EAAAA,GAAAA,GAAOiN,mECdA,SAACzH,GAC9B,OACE1E,EAAAA,QAAAC,cAACwM,EAAAA,UAAM/H,EAAP,CAAcpH,GAAIoP,EAAAA,OACfhI,EAAMlH,8BCGa,SAAAJ,GACxBI,IAAAA,IAAAA,SACAyB,IAAAA,UACGC,EAHqBC,EAAA/B,EAAAgC,GAAA,OAKxBY,EAAAA,QAACC,cAAA4K,EAAAA,UAAS3L,EAAV,CAAgB5B,GAAG,SAAS2B,UAAWc,EAAAA,QAAG,kBAAmBd,KAC1DzB,iBCR8B,SAI9BJ,GAAA,IAAAC,EAAAD,EAHHE,GAAIC,aAAY,MAGbF,EADHG,IAAAA,SAEMsC,EAAYkL,EAAAA,QAAW,CAAC,eAAgB,aAH9C/L,YAKA,OAAOe,EAAA,QAAAC,cAAC1C,EAAU,CAAA0B,UAAWa,GAAYtC,+BCWoB,SAa1DJ,GAZH6B,IAAAA,IAAAA,UACgBkM,IAAhBC,eACAuB,IAAAA,WACAC,IAAAA,WACArB,IAAAA,KACAF,IAAAA,UACAC,IAAAA,OACAlG,IAAAA,SAKGyH,EAAAzP,EAJH0P,gBAAAA,aAAkB,MAIfD,EAAAE,EAAA3P,EAHHwI,MAAAA,aAAQ,GAGLmH,EAAAC,EAAA5P,EAFH6P,OAAAA,OAEG,IAAAD,EAFM,aAENA,EADA9N,EACAC,EAAA/B,EAAAgC,GAC6B8N,EAAAA,EAAQA,SAACJ,GAAlC5H,EAAPiI,EAAA,GAAiBC,EAAjBD,EAAA,GACM9H,EAAatF,EAAAA,QAAG,uBAAwBd,GACxCoO,EAAe/B,EAAOpG,GA0B5B,OACElF,EACE,QAAAC,cAAA,MAAA,CAAAhB,UAAWoG,EACXiI,SAAU,EACVL,OA5BiB,SAACnB,GACpBA,EAAEyB,UACF,IAAMC,EAAgB1B,EAAE0B,cACxBC,YAAW,WACLD,IAAkBA,EAAc5I,SAASf,SAAS6J,gBACpDT,EAAOnB,KAER,IAsBgCP,cAAAA,oBAAAA,GAEjCvL,EAAA,QAAAC,cAACE,EAAK,CAACC,MAAM,cACXJ,EAAC,QAAAC,cAAAgF,GACCC,SAAUA,EACVC,QAASkG,EACTjG,SAAU,SAACuI,GAASC,OAzBC,SAAC1I,GAC5BkI,EAAYlI,GAwBc0I,CAAqBD,MAE3C3N,EAAC,QAAAC,cAAAkL,EAADjL,EAAA,CACE0F,MAAOA,EACP4F,QAASoB,EACTnB,SAAUkB,EACVpB,KAAMA,EACNtM,UAAU,gBACVmG,SAAU,SAAC0G,GAAD,OA7BMnG,EA8BCmG,EAAEjH,OAAOc,MA7B1BoG,EAAU8B,OAAOC,OAAO,GAAIxC,GACpB,KAAV3F,GAAiBA,EAGnBoG,EAAQ7G,GAAYS,SAFboG,EAAQ7G,QAIjBE,EAAS2G,GAPY,IAACpG,EAChBoG,GA+BApG,MAAO0H,GAAgB,IACnBnO,oCC7EqD,SAM9D9B,GALHwI,IAAAA,IAAAA,MACAmI,IAAAA,cACUC,IAAV5I,SACA6I,IAAAA,uBACG/O,EACAC,EAAA/B,EAAAgC,GACG8O,EAAuBH,EAAc/I,MACzC,SAACmJ,GAAD,OAASA,EAAIC,KAAOH,KAGtB,OACEjO,UAACC,cAAAoO,EAADA,SAAAnO,EAAA,CACE0F,MAAOA,EACP0I,cACAC,WAAS,EACTC,aACA,EAAAvP,UAAU,eACV0K,gBACKoE,EACAU,MAAK,SAACC,EAAGC,GAAMD,OAAAA,EAAEnD,KAAKqD,cAAcD,EAAEpD,KAAM,SAC5C7K,KAAI,SAACmO,GACG,MAAA,CACLlJ,MAAOkJ,EAAaT,GACpBxI,MAAOiJ,EAAatD,UAI5BuD,oBACEZ,EACI,CACEvI,MAAOuI,EAAqBE,GAC5BxI,MAAOsI,EAAqB3C,MAE9B,KAENnG,SAAU,SAACI,GACLA,GACFwI,EAAaxI,EAAcG,SAG3BzG,mBC/C2B,SAKhC9B,GAJH2R,IAEAC,IAAAA,aACAC,IAAAA,YAEMC,EAAYC,KAAKC,OALvBL,iBACAM,UAKA,OACErP,EAAC,QAAAC,cAAAqP,aACC,CAAAJ,UAAWA,EACXD,YAAaA,EACbD,aAAc,SAACO,GACbP,EAAaO,gECFiB,SAOJnS,GANhCI,IAAAA,IAAAA,SACAgS,IAAAA,kBACAnG,IAAAA,IACAF,IAAAA,MACAsG,IAAAA,SACG/K,EAC6BvF,EAAA/B,EAAAgC,GAC1BsQ,EACJ1P,EAAAA,sBAAC2P,WAAQ,CACP7E,GAAI,CACFd,SAAU,gBACV7D,MAAO,CAAEyJ,KAAMlL,EAAMmL,aAI3B,OACE7P,EAAC,QAAAC,cAAA8I,EACC,CAAAE,YAAauG,EACbnG,IAAKA,EACLF,MAAOA,EACPlC,SAAUwI,GAAsBC,GAEhC1P,EAAC,QAAAC,cAAA6P,QAAD5P,EAAA,GAAWwE,GAAQlH,+BCvBoC,SAIxDJ,GAHHI,IAAAA,IAAAA,SACAuS,IAAAA,sBACG7Q,EACAC,EAAA/B,EAAAgC,GACG4Q,EAAUC,EAAAA,aAEY/C,EAAAA,EAAQA,SAAS,SAAtCgD,EAAP/C,EAAA,GAAegD,EAAfhD,EAAA,GACAiD,EAAwClD,EAAAA,SAAS8C,EAAQH,UAAlDQ,EAAPD,EAAA,GAAqBE,EAArBF,EAAA,GAmBA,OACEpQ,EAAA,QAAAC,cAAAD,UAAAS,SAAA,KACET,EAAA,QAAAC,cAACsQ,SAAM,CAACzI,QAfY,SAAC0I,GACnBT,OAAAA,EAAsBS,IAA4B,UAAXN,IACzCC,EAAU,WACVG,EAAgBE,IACT,MAYPxQ,EAAC,QAAAC,cAAA0H,EAADzH,EAAA,CACEmI,UArBa,WACjB8H,EAAU,UAqBNjN,KAAiB,YAAXgN,EACNhI,UAVgB,WACpB8H,EAAQ/S,KAAKoT,EAAarG,YAUlB9K,GAEH1B,yCC5CwC,SAM5CJ,GAAA,IAAAqT,EAAArT,EALHsT,OAKG3D,EAAA3P,EAJHwI,MAAAA,aAAQ,GAILmH,EAFH4D,IAAAA,WACAC,IAAAA,OAEMC,EAAmB9Q,EAAE,QAAC,2BAA4B,CACtD2Q,mBAFCD,EAGDK,aANFC,qBAQMC,EAAwBjR,EAAE,QAAC,mBAAoB,CACnD6Q,OAAAA,IAEF,OACE5Q,EAAA,QAAAC,cAAA,MAAA,CAAKhB,UAAW+R,GACbL,GAAc3Q,EAAAA,QAAAC,cAAA,MAAA,CAAKhB,UAAW4R,IAC/B7Q,EAAA,QAAAC,cAAA,MAAA,KAAM2F,kBCwBQ,SASJxI,GAAA,IAAAC,EAAAD,EARdE,GAAI2T,aAAY,OAQF5T,EAPdG,IAAAA,SACA0T,IAAAA,SACApS,IAAAA,MACAqS,IAAAA,WACAC,IAAAA,WACAnS,IAAAA,UACGC,EACWC,EAAA/B,EAAAgC,IACRpC,EAAU,GAEhBkU,GAAYlU,EAAQC,KAARD,MAAAA,EAAgBL,EAAe,iBAAkBuU,IAC7DC,GAAcnU,EAAQC,KAARD,MAAAA,EAAgBL,EAAe,mBAAoBwU,IACjEC,GAAcpU,EAAQC,KAAK,mBAAqBmU,GAEhD,IAAMtR,EAAYC,EAAAA,QAAG/C,EAASiC,GAE9B,OACEe,wBAAC9C,EAADgD,EAAA,CAAK5C,GAAI2T,EAAWnS,MAAOA,EAAOG,UAAWa,GAAeZ,GACzD1B,qBCjEoC,SAAAJ,GACzCI,IAAAA,IAAAA,SACAyB,IAAAA,UACGC,EAHsCC,EAAA/B,EAAAgC,GAAA,OAKzCY,UAACC,cAAAoR,EAADA,OAAAnR,EAAA,CAAQsL,QAAQ,WAActM,EAA9B,CAAoCD,UAAWc,EAAAA,QAAG,eAAgBd,KAC/DzB,qBvBmBsC,SAQtCJ,GAPH6B,IACAkJ,IAAAA,SACAmJ,IAAAA,SACAC,IAAAA,iBACAtO,IAAAA,SACAiC,IAAAA,SACApD,IAAAA,YAEM0P,EAAmBzR,EAAE,QAAC,CAAC,kCAR7Bd,YASwBiO,EAAAA,EAAQA,UAAC,GAApBuE,EAAbtE,EAAA,GAEA,OACEnN,EAAA,QAAAC,cAAA,MAAA,CAAKmO,GAAG,iBACNpO,EAAC,QAAAC,cAAA2C,GACCM,KALNiK,EAAA,GAMMhK,aAAcsO,EACdxS,UAAWuS,EACXvO,SAAUA,EACVnB,YAAaA,GAEb9B,EAAK,QAAAC,cAAA,MAAA,CAAAmO,GAAG,qBACQ,OAAblJ,EACClF,UAACC,cAAAwE,EACC,CAAAR,QAAS,WACPsN,EAAiB,MACjBE,GAAQ,IAEVxS,UAAU,2BAEVe,EAAkB,QAAAC,cAAA,OAAA,CAAA,eAAA,EAAAhB,UAAU,kCAC1Be,EAAC,QAAAC,cAAAyR,cAAW1J,KAAK,OAAO5D,aAEzB+D,EAASwJ,gBAGZ3R,EAAA,QAAAC,cAACwE,EAAsB,CACrBR,QAAS,WACPsN,EAAiB,MACjBE,GAAQ,IAEVxS,UAAU,2BAEVe,EAAkB,QAAAC,cAAA,OAAA,CAAA,eAAA,EAAAhB,UAAU,kCAC1Be,EAAC,QAAAC,cAAA2R,UAAO5J,KAAK,OAAO5D,aAErB+D,EAASwJ,gBAGd3R,EAAA,QAAAC,cAACwE,EAAsB,CACrBR,QAAS,WACPqN,IACAG,GAAQ,IAEE,cAAA,mBACZxS,UAAU,2BAEVe,EAAA,QAAAC,cAAA,OAAA,CAAA,eAAA,GACED,EAAA,QAAAC,cAAC4R,aACC,CAAA7J,KAAK,OACL5D,QAAM,EACNG,MAAO,CAAEuN,UAAW,oBAGvB3J,EAAS4J,2JwB1FhB,SACJC,EACAhP,EACA2B,QAAqC,IAArCA,IAAAA,EAA+BtD,QAEzB4Q,IAAAA,EAAe3O,EAAAA,SAErBE,EAAAA,WAAU,WACRyO,EAAarO,QAAUZ,IACtB,CAACA,IAEJQ,EAAAA,WAAU,WAEJ,GADgBmB,GAAWA,EAAQb,iBACnC,CAEJ,IAAMoO,EAAiB,SAACxO,GACtBuO,OADqB,MACrBA,EAAarO,aADQ,EACrBqO,EAAarO,QAAUF,IAIzB,OAFAiB,EAAQb,iBAAiBkO,EAAWE,GAE7B,WACLvN,EAAQZ,oBAAoBiO,EAAWE,OAExC,CAACF,EAAWrN"}
|
|
1
|
+
{"version":3,"file":"common.cjs.production.min.js","sources":["../src/Box.tsx","../src/environment.ts","../src/Stack.tsx","../src/FeatureToggle.tsx","../src/EnturPartnerLogo.tsx","../src/UserMenu.tsx","../src/LanguageSelect.tsx","../src/ErrorBoundary.tsx","../src/helpers.ts","../src/FormatDateTime.tsx","../src/ConfirmModal.tsx","../src/PermissionCheck.tsx","../src/ActionBar.tsx","../src/AuditInfo.tsx","../src/Breadcrumbs.tsx","../src/Content.tsx","../src/ExpandableMultiLanguageInput.tsx","../src/FormatCurrencyAmount.tsx","../src/Link.tsx","../src/LinkButton.tsx","../src/Menu.tsx","../src/MultiLanguageInput.tsx","../src/OrganisationDropdown.tsx","../src/Pager.tsx","../src/PermissionCheckedRoute.tsx","../src/RouteLeavingGuard.tsx","../src/StatusLabel.tsx","../src/Text.tsx","../src/Unbutton.tsx","../src/useEventListener.ts"],"sourcesContent":["import './Box.scss';\n\nimport React, { ReactNode } from 'react';\nimport cx from 'classnames';\n\ntype StyleSpacing =\n | 'none'\n | 'extraSmall2'\n | 'extraSmall'\n | 'small'\n | 'medium'\n | 'large'\n | 'extraLarge'\n | 'extraLarge2'\n | 'extraLarge3'\n | 'extraLarge4'\n | 'extraLarge5'\n | 'extraLarge6'\n | 'extraLarge7'\n | 'extraLarge8'\n | 'extraLarge9';\n\ntype StyleMargin = StyleSpacing | 'auto';\n\ntype StyleDisplay = 'block' | 'flex' | 'inline' | 'inline-block';\ntype StyleJustifyContent = 'center' | 'space-between' | 'start' | 'end';\ntype StyleAlignItems = 'center' | 'start' | 'end' | 'stretch' | 'baseline';\n\ntype StyleMaxWidth =\n | 'none'\n | 'extraSmall'\n | 'small'\n | 'medium'\n | 'large'\n | 'extraLarge'\n | 'extraLarge2'\n | 'extraLarge3'\n | 'extraLarge4'\n | 'extraLarge5'\n | 'extraLarge6'\n | 'full';\ntype StyleWidth = 'auto' | 'full';\n\nexport type StyleBackground = 'blue' | 'lavender' | 'white' | 'blue70';\nexport type StyleColor = 'blue' | 'lavender' | 'white' | 'black';\n\ntype StyleFlexDirection = 'row' | 'column' | 'row-reverse' | 'column-reverse';\ntype StyleFlexWrap = 'wrap' | 'nowrap' | 'wrap-reverse';\n\nexport type ResponsiveStyleSpacing =\n | StyleSpacing\n | [StyleSpacing?, StyleSpacing?, StyleSpacing?];\nexport type ResponsiveStyleMargin =\n | StyleMargin\n | [StyleMargin?, StyleMargin?, StyleMargin?];\n\nexport type ResponsiveStyleDisplay =\n | StyleDisplay\n | [StyleDisplay?, StyleDisplay?, StyleDisplay?];\nexport type ResponsiveStyleJustifyContent =\n | StyleJustifyContent\n | [StyleJustifyContent?, StyleJustifyContent?, StyleJustifyContent?];\nexport type ResponsiveStyleAlignItems =\n | StyleAlignItems\n | [StyleAlignItems?, StyleAlignItems?, StyleAlignItems?];\n\nexport type ResponsiveStyleMaxWidth =\n | StyleMaxWidth\n | [StyleMaxWidth?, StyleMaxWidth?, StyleMaxWidth?];\nexport type ResponsiveStyleWidth =\n | StyleWidth\n | [StyleWidth?, StyleWidth?, StyleWidth?];\n\nexport type ResponsiveStyleFlexDirection =\n | StyleFlexDirection\n | [StyleFlexDirection?, StyleFlexDirection?, StyleFlexDirection?];\nexport type ResponsiveStyleFlexWrap =\n | StyleFlexWrap\n | [StyleFlexWrap?, StyleFlexWrap?, StyleFlexWrap?];\n\nexport interface BoxProps {\n className?: string;\n as?: React.ElementType;\n [key: string]: any;\n children: ReactNode;\n\n contrast?: boolean;\n\n paddingTop?: ResponsiveStyleSpacing;\n paddingRight?: ResponsiveStyleSpacing;\n paddingBottom?: ResponsiveStyleSpacing;\n paddingLeft?: ResponsiveStyleSpacing;\n paddingX?: ResponsiveStyleSpacing;\n paddingY?: ResponsiveStyleSpacing;\n padding?: ResponsiveStyleSpacing;\n\n marginTop?: ResponsiveStyleMargin;\n marginRight?: ResponsiveStyleMargin;\n marginBottom?: ResponsiveStyleMargin;\n marginLeft?: ResponsiveStyleMargin;\n marginX?: ResponsiveStyleMargin;\n marginY?: ResponsiveStyleMargin;\n margin?: ResponsiveStyleMargin;\n\n display?: ResponsiveStyleDisplay;\n justifyContent?: ResponsiveStyleJustifyContent;\n alignItems?: ResponsiveStyleAlignItems;\n\n maxWidth?: ResponsiveStyleMaxWidth;\n width?: ResponsiveStyleWidth;\n background?: StyleBackground;\n color?: StyleColor;\n\n flexDirection?: ResponsiveStyleFlexDirection;\n flexWrap?: ResponsiveStyleFlexWrap;\n}\n\ntype ResponsiveProp = string | [string?, string?, string?];\n\nexport function responsiveProp(prefix: string, prop: ResponsiveProp): string[] {\n if (Array.isArray(prop)) {\n const classes = [];\n prop[0] && classes.push(prefix + prop[0]);\n prop[1] && classes.push(`${prefix}${prop[1]}-lg`);\n prop[2] && classes.push(`${prefix}${prop[2]}-xl`);\n return classes;\n }\n return [prefix + prop];\n}\n\nexport const Box = ({\n as: Component = 'div',\n children,\n contrast,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n paddingX,\n paddingY,\n padding,\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n marginX,\n marginY,\n margin,\n display,\n justifyContent,\n alignItems,\n maxWidth,\n width,\n background,\n color,\n flexDirection,\n flexWrap,\n className,\n ...rest\n}: BoxProps) => {\n const classes = [];\n const resolvedPaddingTop = paddingTop || paddingY || padding;\n const resolvedPaddingBottom = paddingBottom || paddingY || padding;\n const resolvedPaddingLeft = paddingLeft || paddingX || padding;\n const resolvedPaddingRight = paddingRight || paddingX || padding;\n\n const resolvedMarginTop = marginTop || marginY || margin;\n const resolvedMarginBottom = marginBottom || marginY || margin;\n const resolvedMarginLeft = marginLeft || marginX || margin;\n const resolvedMarginRight = marginRight || marginX || margin;\n\n contrast && classes.push('eds-contrast');\n resolvedPaddingTop &&\n classes.push(...responsiveProp('eps-pt-', resolvedPaddingTop));\n resolvedPaddingBottom &&\n classes.push(...responsiveProp('eps-pb-', resolvedPaddingBottom));\n resolvedPaddingLeft &&\n classes.push(...responsiveProp('eps-pl-', resolvedPaddingLeft));\n resolvedPaddingRight &&\n classes.push(...responsiveProp('eps-pr-', resolvedPaddingRight));\n resolvedMarginTop &&\n classes.push(...responsiveProp('eps-mt-', resolvedMarginTop));\n resolvedMarginBottom &&\n classes.push(...responsiveProp('eps-mb-', resolvedMarginBottom));\n resolvedMarginLeft &&\n classes.push(...responsiveProp('eps-ml-', resolvedMarginLeft));\n resolvedMarginRight &&\n classes.push(...responsiveProp('eps-mr-', resolvedMarginRight));\n\n display && classes.push(...responsiveProp('eps-', display));\n justifyContent &&\n classes.push(...responsiveProp('eps-justify-', justifyContent));\n if (alignItems) {\n classes.push(...responsiveProp('eps-items-', alignItems));\n }\n\n maxWidth && classes.push(...responsiveProp('eps-max-w-', maxWidth));\n width && classes.push(...responsiveProp('eps-w-', width));\n\n color && classes.push(`eps-color-${color}`);\n background && classes.push(`eps-bg-${background}`);\n\n flexDirection && classes.push(...responsiveProp('eps-flex-', flexDirection));\n flexWrap && classes.push(...responsiveProp('eps-flex-wrap-', flexWrap));\n\n const classList = cx(classes, className);\n\n return (\n <Component className={classList} {...rest}>\n {children}\n </Component>\n );\n};\n","export enum Environment {\n Local = 'local',\n Development = 'dev',\n Staging = 'staging',\n Production = 'prod',\n}\n\nconst environmentColors: Record<\n Exclude<Environment, Environment.Production>,\n string\n> = {\n [Environment.Local]: '#B482FB',\n [Environment.Development]: '#5AC39A',\n [Environment.Staging]: '#FFCA28',\n};\n\n/**\n * Gets the color for the given environment. This is the color used for the environment\n * indicator. There is no color for production as it should not have any special environment\n * indication.\n */\nexport const getColorForEnvironment = (\n environment: Exclude<Environment, Environment.Production>\n) => environmentColors[environment];\n\nconst humanReadableEnvironment: Record<Environment, string> = {\n [Environment.Local]: 'Local',\n [Environment.Development]: 'Dev',\n [Environment.Staging]: 'Staging',\n [Environment.Production]: 'Prod',\n};\n\nexport const getHumanReadableEnvironment = (environment: Environment) =>\n humanReadableEnvironment[environment];\n","import React, { ReactNode, Children } from 'react';\n\nimport { ResponsiveStyleSpacing, Box } from './Box';\n\nexport interface StackProps {\n className?: string;\n children: ReactNode;\n space: ResponsiveStyleSpacing;\n}\n\nexport const Stack = ({ children, space, className }: StackProps) => {\n const stackItems = Children.toArray(children);\n if (stackItems.length <= 1) {\n return <>{stackItems}</>;\n }\n\n return (\n <div className={className}>\n {stackItems.map((child, index) =>\n index === stackItems.length - 1 ? (\n <div key={index}>{child}</div>\n ) : (\n <Box paddingBottom={space} key={index}>\n {child}\n </Box>\n )\n )}\n </div>\n );\n};\n","import React, { ReactNode } from 'react';\n\n/**\n * Returns true if the provided flag exist in localStorage\n * or is set as an environment variable.\n *\n * @param flag case sensitive flag. If it is an environment variable\n * you can drop the REACT_APP_ prefix.\n */\nexport function featureFlag(flag: string): boolean {\n return (\n process.env[`REACT_APP_${flag}`] === 'true' ||\n window.localStorage?.getItem(flag) === 'true' ||\n window.localStorage?.getItem(`REACT_APP_${flag}`) === 'true'\n );\n}\n\n/**\n * Returns true if the provided flag exist in localStorage\n * or is set as an environment variable.\n *\n * @param flag case sensitive flag. If it is an environment variable\n * you can drop the REACT_APP_ prefix.\n */\nexport function useFeatureToggle(flag: string): boolean {\n return featureFlag(flag);\n}\n\nexport interface FeatureToggleProps {\n /** Visible if flag exist, hidden if not.*/\n children: ReactNode;\n /** Case sensitive flag. If it is an environment variable\n * you can drop the REACT_APP_ prefix. */\n flag: string;\n}\n\nexport const FeatureToggle = ({ children, flag }: FeatureToggleProps) => {\n const feature = useFeatureToggle(flag);\n if (feature) {\n return <>{children}</>;\n }\n return null;\n};\n","import './EnturPartnerLogo.scss';\n\nimport React, { FC } from 'react';\nimport classnames from 'classnames';\n\nimport { Environment, getColorForEnvironment } from './environment';\n\ninterface LogoProps {\n title: string;\n className?: string;\n accentColor?: string;\n [key: string]: any;\n}\n\nexport const EnturPartnerLogoSvg: FC<LogoProps> = ({\n title,\n accentColor = '#FF5959',\n ...rest\n}) => {\n return (\n <svg width={257} height={37} viewBox=\"0 0 257 37\" {...rest}>\n <title>{title}</title>\n <g fill=\"none\" fillRule=\"evenodd\">\n <path\n fill=\"#FFF\"\n d=\"M0 .231V25.72h18.745v-4.318H4.869v-6.163h12.31v-4.318H4.87V4.55h13.876V.231z\"\n />\n <path fill={accentColor} d=\"M0 36.408h45.253v-4.32H0z\" />\n <path\n fill=\"#FFF\"\n d=\"M40.384.231v15.425L23.656.231h-.521V25.72h4.869V10.573L44.732 25.72h.521V.23zM69.25 15.238h-7.267v21.17h-4.87v-21.17H49.81V10.92h19.44zM83.863 36.86c-1.646 0-3.142-.255-4.486-.765-1.345-.51-2.493-1.23-3.443-2.159-.95-.928-1.687-2.054-2.208-3.378-.522-1.323-.783-2.797-.783-4.422V10.92h4.869v15.216c0 1.277.209 2.333.626 3.169.417.836.933 1.497 1.548 1.985a5.346 5.346 0 001.982 1.01c.707.186 1.339.278 1.895.278.557 0 1.188-.092 1.896-.279a5.35 5.35 0 001.982-1.01c.614-.487 1.13-1.148 1.548-1.984.417-.836.625-1.892.625-3.169V10.92h4.87v15.216c0 1.625-.256 3.1-.766 4.422-.51 1.324-1.24 2.45-2.19 3.378-.952.929-2.1 1.648-3.444 2.159-1.344.51-2.851.766-4.52.766M104.21 24.047h5.546c1.016 0 1.854-.127 2.513-.383.658-.255 1.179-.592 1.56-1.01.381-.418.641-.888.78-1.41.138-.522.208-1.05.208-1.584 0-.627-.099-1.207-.295-1.741a3.718 3.718 0 00-.901-1.393c-.405-.394-.924-.708-1.56-.94-.636-.232-1.404-.348-2.305-.348h-5.546v8.81zm0 4.248v8.113h-4.87V10.92h11.567c1.3 0 2.49.215 3.57.644 1.08.43 2.004 1.033 2.77 1.81a8.287 8.287 0 011.794 2.787c.43 1.079.645 2.257.645 3.534 0 .952-.128 1.874-.383 2.768-.256.894-.61 1.7-1.063 2.42a7.32 7.32 0 01-1.672 1.863 5.929 5.929 0 01-2.178 1.096l6.339 8.566h-5.808l-5.893-8.113h-4.818z\"\n />\n <g fill={accentColor}>\n <path d=\"M141.051 23.448h5.628c4.185 0 5.989-1.984 5.989-4.942 0-2.742-1.515-4.618-5.989-4.618h-5.628v9.56zm0 3.067v9.776h-3.571V10.75h9.632c6.674 0 9.127 3.211 9.127 7.54 0 4.979-3.102 8.226-9.2 8.226h-5.988zM169.695 28.715c-1.371-.288-2.958-.505-4.401-.505-2.85 0-4.041 1.263-4.041 3.139s1.407 2.706 3.463 2.706c2.49 0 4.979-1.443 4.979-4.221v-1.119zm-4.293-2.958c1.551 0 3.174.253 4.293.469v-.83c0-2.525-1.154-3.896-4.33-3.896-2.164 0-3.824.866-4.942 2.092l-2.02-2.272c1.732-1.66 3.644-2.598 7.07-2.598 5.052 0 7.469 1.876 7.469 7.215v10.354h-3.211V34.02h-.108c-1.082 1.767-3.211 2.705-5.592 2.705-3.32 0-6.241-1.66-6.241-5.303 0-3.103 1.912-5.664 7.612-5.664zM178.965 19.191h3.211v2.886h.108c.938-1.984 2.922-3.355 5.231-3.355.47 0 .938.036 1.335.144l-.144 3.14a6.77 6.77 0 00-1.552-.181c-3.246 0-4.798 2.633-4.798 5.483v8.983h-3.39v-17.1zM199.961 36.291h-1.912c-4.004 0-5.988-.938-5.988-5.772v-8.55h-2.778V19.19h2.778v-4.654h3.355v4.654h4.473v2.778h-4.473v7.973c0 3.427 1.587 3.535 3.319 3.535h1.226v2.814zM219.767 36.291h-3.391V26.84c0-2.778-1.083-5.375-4.257-5.375-3.14 0-5.268 2.597-5.268 6.169v8.658h-3.391v-17.1h3.32v2.814h.143c.794-1.623 3.067-3.283 5.99-3.283 4.941 0 6.854 3.644 6.854 8.081v9.488zM227.847 26.262h10.57c0-2.597-2.272-4.726-5.087-4.726-2.922 0-5.014 1.948-5.483 4.726zm-.036 2.453c.397 3.355 2.633 5.195 5.844 5.195 2.778 0 4.618-1.623 5.484-2.67l2.164 1.804c-1.37 1.913-4.365 3.716-8.045 3.716-4.942 0-8.73-3.535-8.73-8.55 0-5.195 3.752-9.488 8.983-9.488 5.303 0 8.009 4.365 8.009 8.19 0 .649-.036 1.226-.072 1.803H227.81zM246.245 19.191h3.21v2.886h.109c.938-1.984 2.922-3.355 5.231-3.355.469 0 .938.036 1.335.144l-.145 3.14a6.77 6.77 0 00-1.551-.181c-3.247 0-4.798 2.633-4.798 5.483v8.983h-3.391v-17.1z\" />\n </g>\n </g>\n </svg>\n );\n};\n\ninterface EnturPartnerLogoProps {\n altText: string;\n as?: 'div' | React.ElementType;\n className?: string;\n environment?: Environment;\n}\n\nexport const EnturPartnerLogo: FC<EnturPartnerLogoProps> = ({\n as: Component = 'nav',\n className,\n altText,\n environment,\n}) => {\n const classList = classnames(['eps-logo-wrapper', className]);\n\n return (\n <Component className={classList}>\n <EnturPartnerLogoSvg\n title={altText}\n className=\"logo\"\n accentColor={\n environment !== undefined && environment !== Environment.Production\n ? getColorForEnvironment(environment)\n : undefined\n }\n />\n </Component>\n );\n};\n","import './UserMenu.scss';\n\nimport React, { FC, useState } from 'react';\nimport cx from 'classnames';\nimport {\n DownArrowIcon,\n NorwayIcon,\n UKIcon,\n UploadIcon,\n UserIcon,\n} from '@entur/icons';\nimport { SecondaryButton } from '@entur/button';\nimport { Heading6 } from '@entur/typography';\n\nimport {\n Environment,\n getColorForEnvironment,\n getHumanReadableEnvironment,\n} from './environment';\n\ninterface UserMenuProps {\n userName: string;\n messages: {\n logout: string;\n switchLanguage: string;\n };\n onLogout: () => void;\n onLanguageChange: (language: string) => void;\n language: string;\n className?: string;\n environment?: Environment;\n}\n\nexport const UserMenu: FC<UserMenuProps> = ({\n className,\n messages,\n onLogout,\n onLanguageChange,\n userName,\n language,\n environment,\n}) => {\n const triggerClassList = cx(['eps-user-menu__trigger-button', className]);\n const [open, setOpen] = useState(false);\n\n return (\n <div id=\"eps-user-menu\">\n <CustomOverflowMenu\n open={open}\n onOpenChange={setOpen}\n className={triggerClassList}\n userName={userName}\n environment={environment}\n >\n <div id=\"eps-overflow-menu\">\n {language === 'en' ? (\n <CustomOverflowMenuItem\n onClick={() => {\n onLanguageChange('nb');\n setOpen(false);\n }}\n className=\"eps-overflow-menu__item\"\n >\n <span aria-hidden className=\"eps-overflow-menu__icon-margin\">\n <NorwayIcon size=\"1rem\" inline />\n </span>\n {messages.switchLanguage}\n </CustomOverflowMenuItem>\n ) : (\n <CustomOverflowMenuItem\n onClick={() => {\n onLanguageChange('en');\n setOpen(false);\n }}\n className=\"eps-overflow-menu__item\"\n >\n <span aria-hidden className=\"eps-overflow-menu__icon-margin\">\n <UKIcon size=\"1rem\" inline />\n </span>\n {messages.switchLanguage}\n </CustomOverflowMenuItem>\n )}\n <CustomOverflowMenuItem\n onClick={() => {\n onLogout();\n setOpen(false);\n }}\n data-testid=\"user-menu-logout\"\n className=\"eps-overflow-menu__item\"\n >\n <span aria-hidden>\n <UploadIcon\n size=\"1rem\"\n inline\n style={{ transform: 'rotate(90deg)' }}\n />\n </span>\n {messages.logout}\n </CustomOverflowMenuItem>\n </div>\n </CustomOverflowMenu>\n </div>\n );\n};\n\nconst CustomOverflowMenu: React.FC<{\n className?: string;\n children: React.ReactNode;\n userName: string;\n open: boolean;\n onOpenChange: (open: boolean) => void;\n environment?: Environment;\n}> = ({\n className,\n children,\n userName,\n open,\n onOpenChange,\n environment,\n ...rest\n}) => {\n const overflowItemsClasses = cx('eps-overflow-menu__group', {\n 'eps-overflow-menu__group--open': open,\n });\n const overflowContentRef = React.useRef<HTMLDivElement>(null);\n const overflowMenuTriggerRef = React.useRef<HTMLButtonElement>(null);\n useOutsideClick(overflowContentRef, overflowMenuTriggerRef, () =>\n onOpenChange(false)\n );\n return (\n <div>\n <SecondaryButton\n className={cx('eps-overflow-menu__button', className)}\n onClick={() => onOpenChange(open ? false : true)}\n aria-haspopup={true}\n role=\"button\"\n aria-expanded={open}\n ref={overflowMenuTriggerRef}\n {...rest}\n >\n <div className=\"eps-overflow-menu__button-contents\">\n <span className=\"eds-overflow-menu__user-icon\">\n <UserIcon inline />\n </span>\n <Heading6 margin=\"none\" as=\"span\">\n {userName}\n {environment !== undefined &&\n environment !== Environment.Production && (\n <span style={{ color: getColorForEnvironment(environment) }}>\n {' '}\n ({getHumanReadableEnvironment(environment)})\n </span>\n )}\n </Heading6>\n <span className=\"eps-arrow-icon\">\n <DownArrowIcon inline />\n </span>\n </div>\n </SecondaryButton>\n {open && (\n <div\n className={overflowItemsClasses}\n role=\"menu\"\n ref={overflowContentRef}\n >\n {children}\n </div>\n )}\n </div>\n );\n};\n\nconst CustomOverflowMenuItem: React.FC<\n React.DetailedHTMLProps<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n >\n> = (props) => {\n return (\n <button\n className={cx(props.className, 'eps-overflow-menu__item')}\n role=\"menuitem\"\n {...props}\n />\n );\n};\n\nfunction elementContainsEventTarget(element: HTMLElement | null, event: Event) {\n if (!element) {\n return false;\n }\n\n if (element.contains(event.target as Node)) {\n return true;\n }\n\n // For elements inside a Shadow DOM we need to check the composedPath\n if (event.composed && event.composedPath) {\n const contains = event.composedPath().find((target) => {\n if (target === window) {\n return false;\n }\n return element.contains(target as Node);\n });\n return contains ? true : false;\n }\n\n return false;\n}\n\nfunction useOutsideClick(\n ref: React.RefObject<HTMLDivElement>,\n buttonRef: React.RefObject<HTMLButtonElement>,\n handler: () => void\n) {\n React.useEffect(() => {\n const listener = (event: Event) => {\n if (\n elementContainsEventTarget(ref.current, event) ||\n elementContainsEventTarget(buttonRef.current, event)\n ) {\n return;\n }\n\n handler();\n };\n\n document.addEventListener('mousedown', listener);\n document.addEventListener('touchstart', listener);\n\n return () => {\n document.removeEventListener('mousedown', listener);\n document.removeEventListener('touchstart', listener);\n };\n }, [ref, buttonRef, handler]);\n}\n","import './LanguageSelect.scss';\n\nimport React, { FC } from 'react';\nimport { SegmentedControl, SegmentedChoice } from '@entur/form';\nimport cx from 'classnames';\nimport { assertIsDefined } from '@entur-partner/util';\n\nexport type LanguageKey = 'nob' | 'nno' | 'eng';\n\nexport interface LanguageOption {\n value: LanguageKey;\n label: string;\n required: boolean;\n}\n\nexport interface LanguageSelectProps {\n language: string;\n options: LanguageOption[];\n className?: string;\n onChange: (language: string) => void;\n [key: string]: any;\n}\n\nexport const LanguageSelect: FC<LanguageSelectProps> = ({\n language,\n options,\n className,\n onChange,\n ...rest\n}) => {\n const classNames = cx('eps-language-select', className);\n return (\n <div {...rest} className={classNames}>\n <SegmentedControl\n onChange={(language) => {\n assertIsDefined(language);\n onChange(language);\n }}\n selectedValue={language}\n >\n {options.map((option) => (\n <SegmentedChoice key={option.value} value={option.value}>\n {option.label}\n {option.required && <span className=\"asterisk-margin\">{'*'}</span>}\n </SegmentedChoice>\n ))}\n </SegmentedControl>\n </div>\n );\n};\n","import { ReactNode, Component, ErrorInfo } from 'react';\n\nimport { isFunction } from './helpers';\n\ntype FallbackOptions = {\n retry: () => void;\n error: Error;\n};\n\ntype RenderProp = (options: FallbackOptions) => ReactNode;\n\ntype Props = {\n handleError?: (error: Error, errorInfo: ErrorInfo) => void;\n fallback: ReactNode | RenderProp;\n children: ReactNode;\n};\n\ntype State = {\n error: null | Error;\n};\n\nexport class ErrorBoundary extends Component<Props, State> {\n constructor(props: Props) {\n super(props);\n this.state = { error: null };\n }\n\n static getDerivedStateFromError(error: Error): State {\n return {\n error,\n };\n }\n\n componentDidCatch(error: Error, errorInfo: ErrorInfo) {\n // React always logs in development\n this.props.handleError?.(error, errorInfo);\n }\n\n render() {\n const { error } = this.state;\n const { fallback, children } = this.props;\n\n if (error) {\n if (isFunction<RenderProp>(fallback)) {\n return fallback({ retry: () => this.setState({ error: null }), error });\n }\n return fallback;\n }\n\n return children;\n }\n}\n","export function isFunction<T>(functionToCheck: any): functionToCheck is T {\n return (\n functionToCheck && {}.toString.call(functionToCheck) === '[object Function]'\n );\n}\n","import React, { FC } from 'react';\nimport { localeDate, localeDateTime } from '@entur-partner/util';\n\nexport interface FormatDateTimeProps {\n date: string | Date;\n locale: string;\n [key: string]: any;\n}\n\nexport const FormatDateTime: FC<FormatDateTimeProps> = ({\n date,\n locale,\n as: Component = 'main',\n hideTime,\n ...rest\n}) => {\n return (\n <Component {...rest}>\n {hideTime ? localeDate(date, locale) : localeDateTime(date, locale)}\n </Component>\n );\n};\n","import './ConfirmModal.scss';\n\nimport React, { ReactNode, FC } from 'react';\nimport { Modal, ModalProps } from '@entur/modal';\nimport { Paragraph } from '@entur/typography';\nimport { isString } from '@entur-partner/util';\nimport { ButtonGroup, SecondaryButton, PrimaryButton } from '@entur/button';\n\nimport { Box } from './Box';\n\nexport interface BaseConfirmModalProps extends Partial<ModalProps> {\n title: string;\n children: React.ReactNode;\n closeLabel: string;\n\n /** Deprecated use children prop */\n message?: ReactNode;\n /** Deprecated use open prop */\n isOpen?: boolean;\n /** Deprecated use onDismiss prop */\n onClose?: () => void;\n}\n\ninterface CustomConfirmModalButtons extends BaseConfirmModalProps {\n buttons: ReactNode[];\n}\n\ninterface DefaultConfirmModalHandler extends BaseConfirmModalProps {\n onConfirm: () => void;\n messages: {\n confirm: string;\n cancel: string;\n };\n}\n\nexport type ConfirmModalProps =\n | CustomConfirmModalButtons\n | DefaultConfirmModalHandler;\n\nexport const ConfirmModal: FC<ConfirmModalProps> = ({\n isOpen = false,\n children,\n message,\n size = 'medium',\n buttons,\n onConfirm,\n messages,\n onClose,\n onDismiss,\n ...rest\n}) => {\n const childrenToRender = children ? children : message;\n const handleDismiss = onClose ? onClose : onDismiss;\n return (\n <Modal size={size} open={isOpen} onDismiss={handleDismiss} {...rest}>\n {isString(childrenToRender) ? (\n <Paragraph>{childrenToRender}</Paragraph>\n ) : (\n <Box paddingBottom=\"medium\">{childrenToRender}</Box>\n )}\n\n <ButtonGroup>\n {onConfirm ? (\n <>\n <SecondaryButton\n onClick={handleDismiss}\n data-testid=\"cancel-modal-button\"\n >\n {messages.cancel}\n </SecondaryButton>\n <PrimaryButton\n onClick={onConfirm}\n data-testid=\"confirm-modal-button\"\n >\n {messages.confirm}\n </PrimaryButton>\n </>\n ) : (\n buttons\n )}\n </ButtonGroup>\n </Modal>\n );\n};\n","import React, { ReactNode, FC } from 'react';\nimport { BusinessCapability } from '@entur-partner/permission-client-node';\nimport { hasAllPermissions, hasOneOfPermissions } from '@entur-partner/util';\n\n/**\n * Note: We use BusinessCapability here, not because we only want to check\n * BusinessCapabilities but because it represents a minimal subset of what we\n * need to check.\n */\nexport interface PermissionCheckProps {\n children: ReactNode;\n /** User permissions to check */\n permissions: BusinessCapability[];\n /** Check that at least one of the permissions is present */\n oneOf?: BusinessCapability[];\n /** Check that all of the permissions is present */\n all?: BusinessCapability[] | BusinessCapability;\n /** Rendered if check fails. Defaults to null */\n fallback?: ReactNode;\n}\n\n/**\n * Note: This component uses BusinessCapability, not because we only want to\n * check BusinessCapabilities but because it represents a minimal subset of\n * what we need to check.\n */\nexport const PermissionCheck: FC<PermissionCheckProps> = ({\n children,\n fallback = null,\n permissions,\n oneOf = [],\n all = [],\n}) => {\n const allIsAllowed = hasAllPermissions(all, permissions);\n\n const oneOfIsAllowed = hasOneOfPermissions(oneOf, permissions);\n\n const allowed = allIsAllowed && oneOfIsAllowed;\n return <>{allowed ? children : fallback}</>;\n};\n","import './ActionBar.scss';\nimport React, { ReactNode } from 'react';\n\nexport interface ActionBarProps {\n children: ReactNode;\n}\n\nconst ActionBarLeft = ({ children }: ActionBarProps) => {\n return <div className=\"eps-action-bar-left\">{children}</div>;\n};\n\nconst ActionBarRight = ({ children }: ActionBarProps) => {\n return <div className=\"eps-action-bar-right\">{children}</div>;\n};\n\nconst ActionBar = ({ children }: ActionBarProps) => {\n return (\n <>\n <div className=\"eps-action-bar-padding\" />\n <div className=\"eps-action-bar\">{children}</div>\n </>\n );\n};\n\nexport { ActionBar, ActionBarLeft, ActionBarRight };\n","import './AuditInfo.scss';\n\nimport React, { FC } from 'react';\nimport cx from 'classnames';\nimport { isDateString, isDate } from '@entur-partner/util';\n\nimport { FormatDateTime } from './FormatDateTime';\nimport { Stack } from './Stack';\n\ninterface Item {\n label: string;\n value: Date | string;\n}\n\nexport interface AuditInfoProps {\n items: Item[];\n locale: string;\n className?: string;\n [key: string]: any;\n}\n\nexport const AuditInfo: FC<AuditInfoProps> = ({\n items,\n locale,\n className,\n ...rest\n}) => {\n const classNames = cx('ep-audit-info', className);\n return (\n <div className={classNames} {...rest}>\n {items.map(({ label, value }, i) => (\n <Stack space=\"small\" key={i}>\n <div className=\"ep-audit-info-label\">{label}</div>\n <div>\n {isDate(value) || isDateString(value) ? (\n <FormatDateTime date={value} locale={locale} />\n ) : (\n <span>{value}</span>\n )}\n </div>\n </Stack>\n ))}\n </div>\n );\n};\n","import './Breadcrumbs.scss';\nimport React, { FC, ReactElement } from 'react';\nimport { Link } from 'react-router-dom';\nimport { BreadcrumbNavigation, BreadcrumbItem } from '@entur/menu';\n\nexport interface BreadcrumbsProps {\n pathname: string;\n onBreadcrumbLookup: (path: string) => string | undefined;\n prependBreadcrumbItem?: ReactElement;\n}\n\nexport const Breadcrumbs: FC<BreadcrumbsProps> = ({\n prependBreadcrumbItem,\n pathname,\n onBreadcrumbLookup,\n}) => {\n const paths: string[] = pathname === '/' ? [] : ['/'];\n\n // support paths with and without trailing slash, except root\n const adjustedPathname =\n pathname.length > 1 ? pathname.replace(/\\/$/, '') : pathname;\n\n adjustedPathname.split('/').reduce((prev, curr) => {\n const path = `${prev}/${curr}`;\n paths.push(path);\n return path;\n });\n\n const breadcrumbs = paths\n .map((path) => ({ title: onBreadcrumbLookup(path), path }))\n .filter(({ title }) => title !== undefined);\n\n const breadcrumbElements = breadcrumbs.map(({ title, path }, i) => {\n const isLast = i === breadcrumbs.length - 1;\n if (isLast) {\n return (\n <BreadcrumbItem key={path} as={'span'}>\n {title}\n </BreadcrumbItem>\n );\n }\n return (\n <BreadcrumbItem key={path} as={Link} to={path}>\n {title}\n </BreadcrumbItem>\n );\n });\n\n if (prependBreadcrumbItem) {\n return (\n <BreadcrumbNavigation>\n {[prependBreadcrumbItem, ...breadcrumbElements]}\n </BreadcrumbNavigation>\n );\n }\n\n return <BreadcrumbNavigation>{breadcrumbElements}</BreadcrumbNavigation>;\n};\n","import './Content.scss';\n\nimport React, { FC, ReactNode } from 'react';\nimport classnames from 'classnames';\n\ninterface ContentProps {\n children: ReactNode;\n as?: 'main' | React.ElementType;\n className?: string;\n}\nexport const Content: FC<ContentProps> = ({\n as: Component = 'main',\n className,\n children,\n}) => {\n const classList = classnames(['eps-content', className]);\n\n return <Component className={classList}>{children}</Component>;\n};\n","import React, { ChangeEvent } from 'react';\nimport { VariantType } from '@entur/form';\nimport { ExpandablePanel } from '@entur/expand';\n\nimport { LanguageKey, LanguageOption } from './LanguageSelect';\nimport { Stack } from './Stack';\n\nexport type MultiLanguageValues = Record<LanguageKey, string>;\n\ntype ExpandableMultiLanguageInputProps = {\n title: string;\n inputComponent: React.ElementType;\n languages: LanguageOption[];\n values: MultiLanguageValues;\n onChange: (values: MultiLanguageValues) => void;\n name: string;\n variant?: (lang: LanguageKey) => VariantType;\n feedback?: (lang: LanguageKey) => string;\n [key: string]: any;\n};\n\nexport const ExpandableMultiLanguageInput = ({\n title,\n inputComponent: InputComponent,\n languages,\n values,\n onChange,\n name,\n variant,\n feedback,\n ...rest\n}: ExpandableMultiLanguageInputProps) => {\n const handleOnChange = (language: LanguageKey, value?: string) => {\n const changes = { ...values };\n if (value === '' || !value) {\n delete changes[language];\n } else {\n changes[language] = value;\n }\n onChange(changes);\n };\n\n return (\n <ExpandablePanel\n title={title}\n defaultOpen\n contentStyle={{\n padding: '4px 4px 4px 4px',\n marginTop: '16px',\n marginBottom: '16px',\n }}\n >\n <Stack space=\"medium\">\n {languages.map(({ value: langKey, label, required }) => (\n <InputComponent\n data-testid={`multi-lang-input-${name}-${langKey}`}\n key={title + langKey}\n label={required ? label + '*' : label}\n variant={variant && variant(langKey)}\n feedback={feedback && feedback(langKey)}\n name={name}\n onChange={(e: ChangeEvent<HTMLInputElement>) => {\n handleOnChange(langKey, e.target.value);\n }}\n value={values[langKey] || ''}\n {...rest}\n />\n ))}\n </Stack>\n </ExpandablePanel>\n );\n};\n","import React, { FC } from 'react';\n\nexport interface FormatCurrencyAmountProps {\n amount: number | string;\n as?: 'span' | React.ElementType;\n [key: string]: any;\n}\n\nexport const FormatCurrencyAmount: FC<FormatCurrencyAmountProps> = ({\n amount,\n as: Component = 'span',\n ...rest\n}) => {\n const parsedAmount = Number(amount) || 0;\n\n const formattedAmount = new Intl.NumberFormat('nb-NO', {\n maximumFractionDigits: 2,\n minimumFractionDigits: 2,\n }).format(parsedAmount);\n\n return <Component {...rest}>{formattedAmount}</Component>;\n};\n","import React, { FC } from 'react';\nimport { Link as RouterLink, LinkProps } from 'react-router-dom';\nimport { Link as A } from '@entur/typography';\n\ninterface Props extends LinkProps {}\n\nexport const Link: FC<Props> = (props) => {\n return (\n <A {...props} as={RouterLink}>\n {props.children}\n </A>\n );\n};\n","import './LinkButton.scss';\n\nimport React, { ReactNode } from 'react';\nimport { Link } from '@entur/typography';\nimport cx from 'classnames';\n\nexport interface LinkButtonProps {\n children: ReactNode;\n className?: string;\n [key: string]: any;\n}\n\nexport const LinkButton = ({\n children,\n className,\n ...rest\n}: LinkButtonProps) => (\n <Link {...rest} as=\"button\" className={cx('eps-link-button', className)}>\n {children}\n </Link>\n);\n","import './Menu.scss';\n\nimport React, { FC, ReactNode } from 'react';\nimport classnames from 'classnames';\n\ninterface MenuProps {\n children: ReactNode;\n as?: 'div' | React.ElementType;\n className?: string;\n}\nexport const Menu: FC<MenuProps> = ({\n as: Component = 'nav',\n className,\n children,\n}) => {\n const classList = classnames(['eds-contrast', 'eps-menu', className]);\n\n return <Component className={classList}>{children}</Component>;\n};\n","import './MultiLanguageInput.scss';\n\nimport React, { FC, useState, ChangeEvent, FocusEvent } from 'react';\nimport cx from 'classnames';\nimport { VariantType } from '@entur/form';\n\nimport { Stack } from './Stack';\nimport { LanguageSelect, LanguageOption } from './LanguageSelect';\n\ntype Values = { [key: string]: string };\n\nexport interface MultiLanguageInputProps {\n className?: string;\n onBlur?: (e: FocusEvent<HTMLDivElement>) => void;\n inputComponent: React.ElementType;\n values: { [key: string]: string };\n languages: LanguageOption[];\n onChange: (values: Values) => void;\n name: string;\n alertLevel?: VariantType;\n alertLabel?: string;\n label?: string;\n defaultLanguage?: string;\n [key: string]: any;\n}\n/**\n * @deprecated use ExpandableMultiLanguageInput\n */\nexport const MultiLanguageInput: FC<MultiLanguageInputProps> = ({\n className,\n inputComponent: InputComponent,\n alertLabel,\n alertLevel,\n name,\n languages,\n values,\n onChange,\n defaultLanguage = 'nob',\n label = '',\n onBlur = () => {},\n ...rest\n}) => {\n const [language, setLanguage] = useState(defaultLanguage);\n const classNames = cx('multi-language-input', className);\n const currentValue = values[language];\n\n const handleOnBlur = (e: FocusEvent<HTMLDivElement>) => {\n e.persist();\n const currentTarget = e.currentTarget;\n setTimeout(() => {\n if (currentTarget && !currentTarget.contains(document.activeElement)) {\n onBlur(e);\n }\n }, 0);\n };\n\n const handleLanguageChange = (language: string) => {\n setLanguage(language);\n };\n\n const handleOnChange = (value?: string) => {\n const changes = Object.assign({}, values);\n if (value === '' || !value) {\n delete changes[language];\n } else {\n changes[language] = value;\n }\n onChange(changes);\n };\n\n return (\n <div\n className={classNames}\n tabIndex={0}\n onBlur={handleOnBlur}\n data-testid={`multi-lang-input-${name}`}\n >\n <Stack space=\"extraSmall\">\n <LanguageSelect\n language={language}\n options={languages}\n onChange={(lang) => handleLanguageChange(lang)}\n />\n <InputComponent\n label={label}\n variant={alertLevel}\n feedback={alertLabel}\n name={name}\n className=\"language-item\"\n onChange={(e: ChangeEvent<HTMLInputElement>) =>\n handleOnChange(e.target.value)\n }\n value={currentValue || ''}\n {...rest}\n />\n </Stack>\n </div>\n );\n};\n","import React, { FC } from 'react';\nimport { SearchableDropdownBeta } from '@entur/dropdown';\n\ninterface Organisation {\n name: string;\n id: string;\n}\n\ninterface OrganisationDropDownProps {\n label: string;\n onChange: (id: string) => void;\n organisations: Organisation[];\n selectedOrganisationId?: string;\n [key: string]: any;\n}\n\nexport const OrganisationDropDown: FC<OrganisationDropDownProps> = ({\n label,\n organisations,\n onChange: handleChange,\n selectedOrganisationId,\n ...rest\n}) => {\n const selectedOrganisation = organisations.find(\n (org) => org.id === selectedOrganisationId\n );\n\n return (\n <SearchableDropdownBeta\n label={label}\n openOnFocus\n className=\"eds-contrast\"\n items={[\n ...organisations\n .sort((a, b) => a.name.localeCompare(b.name, 'nb'))\n .map((organisation) => {\n return {\n value: organisation.id,\n label: organisation.name,\n };\n }),\n ]}\n selectedItem={\n selectedOrganisation\n ? {\n value: selectedOrganisation.id,\n label: selectedOrganisation.name,\n }\n : null\n }\n onChange={(selectedValue) => {\n if (selectedValue) {\n handleChange(selectedValue.value);\n }\n }}\n {...rest}\n />\n );\n};\n","import React, { FC } from 'react';\nimport { Pagination } from '@entur/menu';\n\nexport interface PagerProps {\n currentPage: number;\n collectionSize: number;\n pageSize: number;\n onPageChange: (page: number) => void;\n}\n\nexport const Pager: FC<PagerProps> = ({\n collectionSize,\n pageSize,\n onPageChange,\n currentPage,\n}) => {\n const pageCount = Math.ceil(collectionSize / pageSize);\n return (\n <Pagination\n pageCount={pageCount}\n currentPage={currentPage}\n onPageChange={(page) => {\n onPageChange(page);\n }}\n />\n );\n};\n","import { BusinessCapability } from '@entur-partner/permission-client-node';\nimport React from 'react';\nimport {\n Route,\n Redirect,\n RouteComponentProps,\n RouteProps,\n} from 'react-router-dom';\n\nimport { PermissionCheck } from './PermissionCheck';\n\ninterface PermissionCheckedRouteProps\n extends RouteComponentProps,\n Omit<RouteProps, 'location'> {\n actualPermissions: BusinessCapability[];\n all?: BusinessCapability[];\n oneOf?: BusinessCapability[];\n onReject?: React.ReactNode;\n}\n\nexport const PermissionCheckedRoute = ({\n children,\n actualPermissions,\n all,\n oneOf,\n onReject,\n ...props\n}: PermissionCheckedRouteProps) => {\n const redirect = (\n <Redirect\n to={{\n pathname: '/unauthorized',\n state: { from: props.location },\n }}\n />\n );\n return (\n <PermissionCheck\n permissions={actualPermissions}\n all={all}\n oneOf={oneOf}\n fallback={onReject ? onReject : redirect}\n >\n <Route {...props}>{children}</Route>\n </PermissionCheck>\n );\n};\n","import React, { useState, FC, ReactNode } from 'react';\nimport { Prompt, useHistory } from 'react-router-dom';\nimport { Location } from 'history';\nimport { ModalProps } from '@entur/modal';\n\nimport { ConfirmModal } from './ConfirmModal';\n\nexport interface RouteLeavingGuardProps extends Partial<ModalProps> {\n title: string;\n closeLabel: string;\n messages: {\n cancel: string;\n confirm: string;\n };\n children: ReactNode;\n shouldBlockNavigation: (location: Location) => boolean;\n}\n\ntype Status = 'BLOCKED' | 'ALLOW';\n\nexport const RouteLeavingGuard: FC<RouteLeavingGuardProps> = ({\n children,\n shouldBlockNavigation,\n ...rest\n}) => {\n const history = useHistory();\n\n const [status, setStatus] = useState<Status>('ALLOW');\n const [lastLocation, setLastLocation] = useState(history.location);\n\n const closeModal = () => {\n setStatus('ALLOW');\n };\n\n const allowNavigation = (nextLocation: Location): boolean => {\n if (shouldBlockNavigation(nextLocation) && status === 'ALLOW') {\n setStatus('BLOCKED');\n setLastLocation(nextLocation);\n return false;\n }\n return true;\n };\n\n const handleConfirm = () => {\n history.push(lastLocation.pathname);\n };\n\n return (\n <>\n <Prompt message={allowNavigation} />\n <ConfirmModal\n onDismiss={closeModal}\n open={status === 'BLOCKED'}\n onConfirm={handleConfirm}\n {...rest}\n >\n {children}\n </ConfirmModal>\n </>\n );\n};\n","import './StatusLabel.scss';\n\nimport React, { FC } from 'react';\nimport cx from 'classnames';\n\ninterface StatusLabelProps {\n label: string;\n active: boolean;\n aggressiveInactive?: boolean;\n showBullet?: boolean;\n center?: boolean;\n}\nexport const StatusLabel: FC<StatusLabelProps> = ({\n active = false,\n label = '',\n aggressiveInactive,\n showBullet,\n center,\n}) => {\n const bulletClassNames = cx('eps-status-label__bullet', {\n active,\n aggressive: aggressiveInactive,\n });\n const statusLabelClassNames = cx('eps-status-label', {\n center,\n });\n return (\n <div className={statusLabelClassNames}>\n {showBullet && <div className={bulletClassNames} />}\n <div>{label}</div>\n </div>\n );\n};\n","import './Text.scss';\n\nimport React, { ReactNode } from 'react';\nimport cx from 'classnames';\n\nimport { StyleColor, responsiveProp, Box } from './Box';\n\ntype StyleFontSize =\n | 'extraSmall'\n | 'small'\n | 'medium'\n | 'large'\n | 'extraLarge'\n | 'extraLarge2'\n | 'extraLarge3'\n | 'extraLarge4';\n\ntype StyleFontWeight = 'body' | 'heading';\n\ntype StyleLineHeight =\n | 'extraSmall'\n | 'small'\n | 'medium'\n | 'large'\n | 'extraLarge'\n | 'extraLarge2'\n | 'extraLarge3'\n | 'extraLarge4'\n | 'extraLarge5'\n | 'extraLarge6'\n | 'extraLarge7';\n\nexport type ResponsiveStyleFontSize =\n | StyleFontSize\n | [StyleFontSize?, StyleFontSize?, StyleFontSize?];\n\nexport type ResponsiveStyleLineHeight =\n | StyleLineHeight\n | [StyleLineHeight?, StyleLineHeight?, StyleLineHeight?];\n\nexport interface TextProps {\n className?: string;\n as?: React.ElementType;\n children: ReactNode;\n\n fontSize?: ResponsiveStyleFontSize;\n lineHeight?: ResponsiveStyleLineHeight;\n color?: StyleColor;\n fontWeight?: StyleFontWeight;\n\n [key: string]: any;\n}\n\nexport const Text = ({\n as: component = 'span',\n children,\n fontSize,\n color,\n lineHeight,\n fontWeight,\n className,\n ...rest\n}: TextProps) => {\n const classes = [];\n\n fontSize && classes.push(...responsiveProp('eps-font-size-', fontSize));\n lineHeight && classes.push(...responsiveProp('eps-line-height-', lineHeight));\n fontWeight && classes.push('eps-font-weight-' + fontWeight);\n\n const classList = cx(classes, className);\n\n return (\n <Box as={component} color={color} className={classList} {...rest}>\n {children}\n </Box>\n );\n};\n","import './Unbutton.scss';\n\nimport React, { FC } from 'react';\nimport { Button, ButtonProps } from '@entur/button';\nimport cx from 'classnames';\n\ninterface UnbuttonProps extends Omit<ButtonProps, 'variant'> {}\n\nexport const Unbutton: FC<UnbuttonProps> = ({\n children,\n className,\n ...rest\n}) => (\n <Button variant=\"primary\" {...rest} className={cx('eps-unbutton', className)}>\n {children}\n </Button>\n);\n","/*global EventListener WindowEventHandlers*/\nimport { useEffect, useRef } from 'react';\n\ninterface TypedEventListener<T extends Event> {\n (evt: T): void;\n}\n\nexport function useEventListener<T extends Event = Event>(\n eventName: string,\n handler: TypedEventListener<T>,\n element: WindowEventHandlers = window\n) {\n const savedHandler = useRef<TypedEventListener<T>>();\n\n useEffect(() => {\n savedHandler.current = handler;\n }, [handler]);\n\n useEffect(() => {\n const isSupported = element && element.addEventListener;\n if (!isSupported) return;\n\n const eventListener = ((event: T): void =>\n savedHandler.current?.(event)) as EventListener;\n\n element.addEventListener(eventName, eventListener);\n\n return () => {\n element.removeEventListener(eventName, eventListener);\n };\n }, [eventName, element]);\n}\n"],"names":["responsiveProp","prefix","prop","Array","isArray","classes","push","Box","Environment","_ref","_ref$as","as","Component","children","contrast","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY","padding","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","margin","display","justifyContent","alignItems","maxWidth","width","background","color","flexDirection","flexWrap","className","rest","_objectWithoutPropertiesLoose","_excluded","resolvedPaddingTop","resolvedPaddingBottom","resolvedPaddingLeft","resolvedPaddingRight","resolvedMarginTop","resolvedMarginBottom","resolvedMarginLeft","resolvedMarginRight","apply","classList","cx","React","createElement","_extends","Stack","space","stackItems","Children","toArray","length","Fragment","map","child","index","key","featureFlag","flag","_window$localStorage","_window$localStorage2","process","env","getItem","window","localStorage","useFeatureToggle","environmentColors","Local","Development","Staging","_environmentColors","getColorForEnvironment","environment","humanReadableEnvironment","_humanReadableEnviron","Production","getHumanReadableEnvironment","EnturPartnerLogoSvg","title","_ref$accentColor","accentColor","height","viewBox","fill","fillRule","d","CustomOverflowMenu","_ref2","ref","buttonRef","handler","userName","open","onOpenChange","overflowItemsClasses","overflowContentRef","useRef","overflowMenuTriggerRef","useEffect","listener","event","elementContainsEventTarget","current","document","addEventListener","removeEventListener","SecondaryButton","onClick","role","UserIcon","inline","Heading6","undefined","style","DownArrowIcon","CustomOverflowMenuItem","props","element","contains","target","composed","composedPath","find","LanguageSelect","language","options","onChange","classNames","SegmentedControl","assertIsDefined","selectedValue","option","SegmentedChoice","value","label","required","ErrorBoundary","_Component","_this","call","this","state","error","getDerivedStateFromError","_proto","prototype","componentDidCatch","errorInfo","_this$props$handleErr","_this$props","handleError","render","functionToCheck","_this2","_this$props2","fallback","toString","retry","setState","FormatDateTime","date","locale","hideTime","localeDate","localeDateTime","ConfirmModal","_ref$isOpen","isOpen","message","_ref$size","size","buttons","onConfirm","messages","onClose","onDismiss","childrenToRender","handleDismiss","Modal","isString","Paragraph","ButtonGroup","cancel","PrimaryButton","confirm","PermissionCheck","_ref$fallback","permissions","_ref$oneOf","oneOf","_ref$all","all","allIsAllowed","hasAllPermissions","oneOfIsAllowed","hasOneOfPermissions","_ref3","items","i","isDate","isDateString","prependBreadcrumbItem","pathname","onBreadcrumbLookup","paths","replace","split","reduce","prev","curr","path","breadcrumbs","filter","breadcrumbElements","BreadcrumbItem","Link","to","BreadcrumbNavigation","classnames","_ref2$as","altText","InputComponent","inputComponent","languages","values","name","variant","feedback","ExpandablePanel","defaultOpen","contentStyle","langKey","e","changes","amount","parsedAmount","Number","formattedAmount","Intl","NumberFormat","maximumFractionDigits","minimumFractionDigits","format","A","RouterLink","alertLabel","alertLevel","_ref$defaultLanguage","defaultLanguage","_ref$label","_ref$onBlur","onBlur","useState","_useState","setLanguage","currentValue","tabIndex","persist","currentTarget","setTimeout","activeElement","lang","handleLanguageChange","Object","assign","organisations","handleChange","selectedOrganisationId","selectedOrganisation","org","id","SearchableDropdownBeta","openOnFocus","concat","sort","a","b","localeCompare","organisation","selectedItem","onPageChange","currentPage","pageCount","Math","ceil","collectionSize","pageSize","Pagination","page","actualPermissions","onReject","redirect","Redirect","from","location","Route","shouldBlockNavigation","history","useHistory","status","setStatus","_useState2","lastLocation","setLastLocation","Prompt","nextLocation","_ref$active","active","showBullet","center","bulletClassNames","aggressive","aggressiveInactive","statusLabelClassNames","component","fontSize","lineHeight","fontWeight","Button","onLogout","onLanguageChange","triggerClassList","setOpen","NorwayIcon","switchLanguage","UKIcon","UploadIcon","transform","logout","eventName","savedHandler","eventListener"],"mappings":"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"}
|
package/dist/common.esm.js
CHANGED
|
@@ -3,7 +3,7 @@ import cx from 'classnames';
|
|
|
3
3
|
import { Link as Link$1, Heading6, Paragraph } from '@entur/typography';
|
|
4
4
|
import { NorwayIcon, UKIcon, UploadIcon, UserIcon, DownArrowIcon } from '@entur/icons';
|
|
5
5
|
import { SecondaryButton, Button, ButtonGroup, PrimaryButton } from '@entur/button';
|
|
6
|
-
import {
|
|
6
|
+
import { SearchableDropdownBeta } from '@entur/dropdown';
|
|
7
7
|
import { SegmentedControl, SegmentedChoice } from '@entur/form';
|
|
8
8
|
import { assertIsDefined, localeDate, localeDateTime, isDate, isDateString, isString, hasAllPermissions, hasOneOfPermissions } from '@entur-partner/util';
|
|
9
9
|
import { ExpandablePanel } from '@entur/expand';
|
|
@@ -12,7 +12,7 @@ import { useHistory, Prompt, Redirect, Route, Link as Link$2 } from 'react-route
|
|
|
12
12
|
import { Pagination, BreadcrumbItem, BreadcrumbNavigation } from '@entur/menu';
|
|
13
13
|
|
|
14
14
|
function _extends() {
|
|
15
|
-
_extends = Object.assign
|
|
15
|
+
_extends = Object.assign ? Object.assign.bind() : function (target) {
|
|
16
16
|
for (var i = 1; i < arguments.length; i++) {
|
|
17
17
|
var source = arguments[i];
|
|
18
18
|
|
|
@@ -25,7 +25,6 @@ function _extends() {
|
|
|
25
25
|
|
|
26
26
|
return target;
|
|
27
27
|
};
|
|
28
|
-
|
|
29
28
|
return _extends.apply(this, arguments);
|
|
30
29
|
}
|
|
31
30
|
|
|
@@ -37,11 +36,10 @@ function _inheritsLoose(subClass, superClass) {
|
|
|
37
36
|
}
|
|
38
37
|
|
|
39
38
|
function _setPrototypeOf(o, p) {
|
|
40
|
-
_setPrototypeOf = Object.setPrototypeOf
|
|
39
|
+
_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {
|
|
41
40
|
o.__proto__ = p;
|
|
42
41
|
return o;
|
|
43
42
|
};
|
|
44
|
-
|
|
45
43
|
return _setPrototypeOf(o, p);
|
|
46
44
|
}
|
|
47
45
|
|
|
@@ -504,10 +502,8 @@ var OrganisationDropDown = function OrganisationDropDown(_ref) {
|
|
|
504
502
|
var selectedOrganisation = organisations.find(function (org) {
|
|
505
503
|
return org.id === selectedOrganisationId;
|
|
506
504
|
});
|
|
507
|
-
return React.createElement(
|
|
505
|
+
return React.createElement(SearchableDropdownBeta, _extends({
|
|
508
506
|
label: label,
|
|
509
|
-
searchable: true,
|
|
510
|
-
clearable: true,
|
|
511
507
|
openOnFocus: true,
|
|
512
508
|
className: "eds-contrast",
|
|
513
509
|
items: [].concat(organisations.sort(function (a, b) {
|
|
@@ -518,7 +514,7 @@ var OrganisationDropDown = function OrganisationDropDown(_ref) {
|
|
|
518
514
|
label: organisation.name
|
|
519
515
|
};
|
|
520
516
|
})),
|
|
521
|
-
|
|
517
|
+
selectedItem: selectedOrganisation ? {
|
|
522
518
|
value: selectedOrganisation.id,
|
|
523
519
|
label: selectedOrganisation.name
|
|
524
520
|
} : null,
|