PageSourceSearch

https://boinspekt.se/static/js/4862.2f749b53.chunk.js

js boinspekt.se collected 2026-09-24 15:13:04 UTC 15,204 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkKBPortal=self.webpackChunkKBPortal||[]).push([[4862],{87770(n,e,t){t.d(e,{A:()=>x});var i,o,a,l=t(57528),r=t(89379),s=t(53986),d=t(9950),c=t(42074),p=t(84127),h=t(44414);const u=["to","children","disabled","size"],f=d.forwardRef((n,e)=>{let t=n.to,i=n.children,o=n.disabled,a=n.size,l=void 0===a?"default":a,d=(0,s.A)(n,u);return t&&!o?(0,h.jsx)(v,(0,r.A)((0,r.A)({ref:e,to:t,$size:l},d),{},{children:i})):(0,h.jsx)(b,(0,r.A)((0,r.A)({ref:e,type:"button",disabled:o,$size:l},d),{},{children:i}))});f.displayName="ActionButton";const x=f,g=(0,p.AH)(i||(i=(0,l.A)(["\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: ",";\n  padding: ",";\n  background: linear-gradient(135deg, #f5a623 0%, #e8960f 100%);\n  border: none;\n  border-radius: ",";\n  font-family: inherit;\n  font-weight: 500;\n  font-size: ",";\n  line-height: 1;\n  text-decoration: none;\n  box-shadow: 0 2px 8px rgba(245, 166, 35, 0.3);\n  transition: all 0.2s;\n  cursor: pointer;\n  white-space: nowrap;\n\n  /* The global stylesheet sets `a:link, a:visited { color: #000 }` on\n     every anchor (public/index.html). That rule has higher specificity\n     than a plain styled-component class, so the Link variant rendered\n     black text without these explicit pseudo-class overrides. */\n  &,\n  &:link,\n  &:visited {\n    color: white;\n  }\n\n  &:hover {\n    transform: translateY(-1px);\n    box-shadow: 0 4px 12px rgba(245, 166, 35, 0.4);\n    color: white;\n  }\n\n  &:active {\n    transform: translateY(0);\n  }\n\n  &:focus-visible {\n    outline: none;\n    box-shadow:\n      0 2px 8px rgba(245, 166, 35, 0.3),\n      0 0 0 3px rgba(245, 166, 35, 0.25);\n  }\n\n  &:disabled,\n  &[aria-disabled='true'] {\n    background: #ddd;\n    box-shadow: none;\n    cursor: not-allowed;\n    transform: none;\n  }\n\n  svg {\n    flex-shrink: 0;\n  }\n"],["\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: ",";\n  padding: ",";\n  background: linear-gradient(135deg, #f5a623 0%, #e8960f 100%);\n  border: none;\n  border-radius: ",";\n  font-family: inherit;\n  font-weight: 500;\n  font-size: ",";\n  line-height: 1;\n  text-decoration: none;\n  box-shadow: 0 2px 8px rgba(245, 166, 35, 0.3);\n  transition: all 0.2s;\n  cursor: pointer;\n  white-space: nowrap;\n\n  /* The global stylesheet sets \\`a:link, a:visited { color: #000 }\\` on\n     every anchor (public/index.html). That rule has higher specificity\n     than a plain styled-component class, so the Link variant rendered\n     black text without these explicit pseudo-class overrides. */\n  &,\n  &:link,\n  &:visited {\n    color: white;\n  }\n\n  &:hover {\n    transform: translateY(-1px);\n    box-shadow: 0 4px 12px rgba(245, 166, 35, 0.4);\n    color: white;\n  }\n\n  &:active {\n    transform: translateY(0);\n  }\n\n  &:focus-visible {\n    outline: none;\n    box-shadow:\n      0 2px 8px rgba(245, 166, 35, 0.3),\n      0 0 0 3px rgba(245, 166, 35, 0.25);\n  }\n\n  &:disabled,\n  &[aria-disabled='true'] {\n    background: #ddd;\n    box-shadow: none;\n    cursor: not-allowed;\n    transform: none;\n  }\n\n  svg {\n    flex-shrink: 0;\n  }\n"])),n=>"compact"===n.$size?"6px":"8px",n=>"compact"===n.$size?"8px 16px":"11px 20px",n=>"compact"===n.$size?"8px":"10px",n=>"compact"===n.$size?"0.85rem":"14px"),b=p.Ay.button(o||(o=(0,l.A)(["\n  ","\n"])),g),v=(0,p.Ay)(c.N_)(a||(a=(0,l.A)(["\n  ","\n"])),g)},98086(n,e,t){t.d(e,{A:()=>d});var i=t(89379),o=t(53986),a=(t(9950),t(49323)),l=t(66268),r=t(44414);const s=["value","onChange","withAll","allLabel","organisations","renderLabel","placeholder","withNull"],d=n=>{let e=n.value,t=n.onChange,d=n.withAll,c=void 0!==d&&d,p=n.allLabel,h=void 0===p?"Alla":p,u=n.organisations,f=n.renderLabel,x=n.placeholder,g=void 0===x?"V\xe4lj konto":x,b=n.withNull,v=void 0!==b&&b,m=(0,o.A)(n,s);const w=(0,a.A)(n=>n.all),A=[...c||v?[{value:null,label:h}]:[],...(null!==u&&void 0!==u?u:w).map(n=>({value:n.id,label:f?f(n):n.name,displayLabel:n.name,searchLabel:n.name}))];
1return(0,r.jsx)(l.A,(0,i.A)({placeholder:g,value:e,onChange:n=>t(n),options:A},m))}},66268(n,e,t){t.d(e,{A:()=>I});var i,o,a,l,r,s,d,c,p,h,u,f,x,g,b,v=t(57528),m=t(89379),w=t(5544),A=t(53986),y=t(9950),k=t(84127),j=t(24048),z=t(79657),$=t(44414);const L=["options","groups","defaultValue","value","onChange","style","placeholder","disabled","clearable","withSearch"],C=n=>{var e;let t=n.options,i=void 0===t?[]:t,o=n.groups,a=n.defaultValue,l=n.value,r=n.onChange,s=n.style,d=void 0===s?{}:s,c=n.placeholder,p=void 0===c?"Select an option":c,h=n.disabled,u=void 0!==h&&h,f=n.clearable,x=void 0!==f&&f,g=n.withSearch,b=void 0===g||g,v=(0,A.A)(n,L);const k=(0,y.useMemo)(()=>o?o.flatMap(n=>n.options||[]):i,[o,i]),C=void 0!==l?l:a,I=k.find(n=>n.value===C),P=(0,y.useState)(null!==(e=null===I||void 0===I?void 0:I.value)&&void 0!==e?e:null),U=(0,w.A)(P,2),q=U[0],Q=U[1],Z=(0,y.useState)((null===I||void 0===I?void 0:I.label)||p),_=(0,w.A)(Z,2),J=_[0],W=_[1],X=(0,y.useState)(!1),nn=(0,w.A)(X,2),en=nn[0],tn=nn[1],on=(0,y.useState)(""),an=(0,w.A)(on,2),ln=an[0],rn=an[1],sn=(0,y.useRef)(null),dn=(0,y.useRef)(null),cn=(0,y.useMemo)(()=>{const n=ln.toLowerCase();if(o){if(!n)return{filteredOptions:null,filteredGroups:o};return{filteredOptions:null,filteredGroups:o.map(e=>(0,m.A)((0,m.A)({},e),{},{options:(e.options||[]).filter(e=>{const t=e.searchLabel||e.label,i="string"===typeof t&&t.toLowerCase().includes(n),o=e.value&&String(e.value).toLowerCase().includes(n);return i||o})})).filter(n=>n.options.length>0)}}if(!n)return{filteredOptions:i,filteredGroups:null};return{filteredOptions:i.filter(e=>{const t=e.searchLabel||e.label;return"string"===typeof t&&t.toLowerCase().includes(n)}),filteredGroups:null}},[ln,i,o]),pn=cn.filteredOptions,hn=cn.filteredGroups;(0,y.useEffect)(()=>{const n=n=>{sn.current&&!sn.current.contains(n.target)&&(tn(!1),rn(""))};return document.addEventListener("mousedown",n),()=>{document.removeEventListener("mousedown",n)}},[]),(0,y.useEffect)(()=>{en&&dn.current&&dn.current.focus()},[en]),(0,y.useEffect)(()=>{if(void 0!==l){const n=k.find(n=>n.value===l);n?(Q(n.value),W(n.displayLabel||n.label)):""!==l&&null!==l||(Q(null),W(p))}else if(a&&a!==p){const n=k.find(n=>n.value===a||n.label===a);n?(Q(n.value),W(n.displayLabel||n.label)):W(a)}},[k,l,a,p]);const un=n=>{Q(n.value),W(n.displayLabel||n.label),tn(!1),rn(""),r&&r(n.value,n)},fn=null!==q&&J!==p,xn=hn?hn.length>0:pn&&pn.length>0;return(0,$.jsxs)(S,(0,m.A)((0,m.A)({ref:sn,style:d},v),{},{children:[(0,$.jsxs)(O,{onClick:()=>{u||(tn(!en),en&&rn(""))},disabled:u,isOpen:en,children:[(0,$.jsx)(F,{$hasValue:fn,children:J}),(0,$.jsxs)(B,{children:[x&&fn&&(0,$.jsx)(N,{onClick:n=>{n.stopPropagation(),Q(null),W(p),rn(""),r&&r(null)},children:(0,$.jsx)(z.A,{width:16,height:16})}),(0,$.jsx)(M,{$isOpen:en,children:(0,$.jsx)(j.A,{width:16,height:16})})]})]}),en&&(0,$.jsxs)(R,{children:[b&&(0,$.jsx)(E,{children:(0,$.jsx)(T,{ref:dn,type:"text",placeholder:"S\xf6k...",value:ln,onChange:n=>{rn(n.target.value)},autoFocus:!0})}),(0,$.jsx)(V,{children:xn?hn?hn.map(n=>(0,$.jsxs)(Y,{children:[(0,$.jsx)(G,{children:n.label}),(0,$.jsx)(D,{children:n.options.map(n=>(0,$.jsx)(H,{$selected:q===n.value,onClick:()=>un(n),children:n.label},n.value))})]},n.label)):pn.map(n=>(0,$.jsx)(H,{$selected:q===n.value,onClick:()=>un(n),children:n.label},n.value)):(0,$.jsx)(K,{children:"Inga resultat"})})]})]}))};C.Option=n=>{n.value,n.children;return null};const S=k.Ay.div(i||(i=(0,v.A)(["\n  position: relative;\n  width: 100%;\n  min-width: 130px;\n  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,\n    'Helvetica Neue', Arial, sans-serif;\n  font-size: 14px;\n"]))),O=k.Ay.div(o||(o=(0,v.A)(["\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  min-height: 32px;\n  padding: 4px 11px;\n  background-color: ",";\n  border: 1px solid ",";\n  border-radius: 4px;\n  cursor: ",";\n  transition: all 0.3s ease;\n\n  &:hover {\n    border-color: ",";\n  }\n\n  ","\n"])),n=>n.disabled?"#f5f5f5":"white",n=>n.isOpen?"#4B9CFF":"#d9d9d9",n=>n.disabled?"not-allowed":"pointer",n=>n.disabled?"#d9d9d9":"#4B9CFF",n=>n.isOpen&&"\n    box-shadow: 0 0 0 2px rgba(75, 156, 255, 0.2);\n  "),F=k.Ay.div(a||(a=(0,v.A)(["\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n  flex: 1;\n  color: ",";\n"])),n=>n.$hasValue?"#333":"#bfbfbf"),B=k.Ay.div(l||(l=(0,v.A)(["\n  display: flex;\n  align-items: center;
1\n"]))),M=k.Ay.div(r||(r=(0,v.A)(["\n  display: flex;\n  align-items: center;\n  transition: transform 0.3s ease;\n  transform: ",";\n  color: #999;\n"])),n=>n.$isOpen?"rotate(180deg)":"rotate(0deg)"),N=k.Ay.div(s||(s=(0,v.A)(["\n  display: flex;\n  align-items: center;\n  margin-right: 4px;\n  padding: 2px;\n  color: #999;\n\n  &:hover {\n    color: #666;\n  }\n"]))),R=k.Ay.div(d||(d=(0,v.A)(["\n  position: absolute;\n  top: 100%;\n  left: 0;\n  min-width: 100%;\n  width: max-content;\n  max-width: min(500px, 90vw);\n  margin-top: 4px;\n  background-color: white;\n  border-radius: 4px;\n  border: 1px solid #d9d9d9;\n  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n  z-index: 1050;\n  max-height: 300px;\n  display: flex;\n  flex-direction: column;\n"]))),E=k.Ay.div(c||(c=(0,v.A)(["\n  padding: 8px;\n  border-bottom: 1px solid #f0f0f0;\n"]))),T=k.Ay.input(p||(p=(0,v.A)(["\n  width: 100%;\n  padding: 8px;\n  border: 1px solid #d9d9d9;\n  border-radius: 4px;\n  outline: none;\n\n  &:focus {\n    border-color: #4b9cff;\n    box-shadow: 0 0 0 2px rgba(75, 156, 255, 0.2);\n  }\n"]))),V=k.Ay.div(h||(h=(0,v.A)(["\n  overflow-y: auto;\n  overflow-x: hidden;\n  max-height: 240px;\n  padding: 4px 0;\n"]))),Y=k.Ay.div(u||(u=(0,v.A)(["\n  &:not(:first-child) {\n    border-top: 1px solid #f0f0f0;\n  }\n"]))),D=k.Ay.div(f||(f=(0,v.A)(["\n  /* Indent sub-items under group headers */\n  & > div {\n    padding-left: 24px;\n  }\n"]))),G=k.Ay.div(x||(x=(0,v.A)(["\n  padding: 8px 12px 4px;\n  font-size: 13px;\n  font-weight: 600;\n  color: #222;\n  white-space: nowrap;\n  background: #fafafa;\n  position: sticky;\n  top: 0;\n  z-index: 1;\n"]))),H=k.Ay.div(g||(g=(0,v.A)(["\n  padding: 8px 12px;\n  cursor: pointer;\n  white-space: nowrap;\n  transition: background-color 0.3s ease;\n  background-color: ",";\n  color: ",";\n\n  &:hover {\n    background-color: ",";\n  }\n"])),n=>n.$selected?"#e6f7ff":"transparent",n=>n.$selected?"#4B9CFF":"inherit",n=>n.$selected?"#e6f7ff":"#f5f5f5"),K=k.Ay.div(b||(b=(0,v.A)(["\n  padding: 8px 12px;\n  color: #999;\n  text-align: center;\n  font-style: italic;\n"]))),I=C},69293(n,e,t){t.d(e,{$K:()=>F,H1:()=>L,Lo:()=>R,Qn:()=>O,R$:()=>E,Vs:()=>j,Y4:()=>B,YZ:()=>$,Zw:()=>C,eF:()=>z,f8:()=>N,pO:()=>M,s5:()=>V,wB:()=>S});var i,o,a,l,r,s,d,c,p,h,u,f,x,g,b,v=t(57528),m=(t(9950),t(84127)),w=t(16098),A=t(878),y=t(71819),k=t(44414);const j=m.Ay.div(i||(i=(0,v.A)(["\n  display: flex;\n  justify-content: space-between;\n  align-items: flex-end;\n  gap: 24px;\n  margin-bottom: 24px;\n\n  @media (max-width: 700px) {\n    flex-direction: column;\n    align-items: stretch;\n  }\n"]))),z=m.Ay.div(o||(o=(0,v.A)(["\n  flex: 1;\n  min-width: 0;\n"]))),$=m.Ay.div(a||(a=(0,v.A)(["\n  font-size: 11px;\n  letter-spacing: 1.2px;\n  color: #f5a623;\n  font-weight: 700;\n  margin-bottom: 6px;\n"]))),L=m.Ay.h1(l||(l=(0,v.A)(["\n  font-family: 'Ubuntu', sans-serif;\n  font-size: 1.85rem;\n  font-weight: 700;\n  color: #1a1a1a;\n  margin: 0 0 6px;\n  letter-spacing: -0.4px;\n"]))),C=m.Ay.p(r||(r=(0,v.A)(["\n  font-size: 0.95rem;\n  color: #666;\n  margin: 0;\n  max-width: 520px;\n"]))),S=m.Ay.div(s||(s=(0,v.A)(["\n  display: flex;\n  gap: 12px;\n  align-items: center;\n  flex-wrap: wrap;\n  /* Right-aligned when they wrap under the text on a narrow screen. */\n  justify-content: flex-end;\n  min-width: 0;\n\n  @media (max-width: 700px) {\n    justify-content: flex-start;\n  }\n"]))),O=m.Ay.div(d||(d=(0,v.A)(["\n  display: flex;\n  align-items: center;\n  gap: 12px;\n  margin-bottom: 20px;\n  flex-wrap: wrap;\n  /* Flex children default to min-width: auto, which is what stops the\n     scrollable segment strips inside from ever shrinking. */\n  min-width: 0;\n\n  & > * {\n    min-width: 0;\n  }\n"]))),F=m.Ay.div(c||(c=(0,v.A)(["\n  display: flex;\n  flex-shrink: 0;\n  background: #fff;\n  border-radius: 10px;\n  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);\n  max-width: 100%;\n  overflow-x: auto;\n  /* Hide the scrollbar; the segments themselves signal there's more. */\n  scrollbar-width: none;\n  &::-webkit-scrollbar {\n    display: none;\n  }\n"]))),B=m.Ay.button(p||(p=(0,v.A)(["\n  display: inline-flex;\n  align-items: center;\n  gap: 6px;\n  padding: 8px 14px;\n  font-family: inherit;\n  font-size: 0.82rem;\n  font-weight: ",";\n  color: ",";\n  background: ",";\n  border: none;\n  cursor: pointer;\n  transition: all 0.15s;\n  white-space: nowrap;\n\n  &:hover {\n    background: ",";\n  }\n"])),n=>n.$active?"600":"400",n=>(0,y.$P)(n.$active),n=>(0,y.IK)(n.$active),n=>(0,y.qU)(n.$active)),M=m.Ay.span(h||(h=(0,v.A)(["\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  min-width: 18px;\n  height: 18px;\n  padding: 0 5px;\n  border-radius: 9px;\n  font-size: 0.68rem;\n  font-weight: 600;\n  background: ",";\n  color: ",";\n"])),n=>n.$active?"rgba(255, 255, 255, 0.22)":"#eee",n=>n.$active?"#fff":"#666"),N=m.Ay.span(u||(u=(0,v.A)(["\n  font-size: 0.72rem;\n  font-weight: 600;\n  color: #999;\n  text-transform: uppercase;\n  letter-spacing: 0.06em;\n  white-space: nowrap;\n"]))),R=m.Ay.span(f||(f=(0,v.A)(["\n  flex: 1 1 auto;\n"]))),E=m.Ay.span(x||(x=(0,v.A)(["\n  font-size: 0.82rem;\n  color: #999;\n  white-space: nowrap;\n"]))),T=m.Ay.span(g||(g=(0,v.A)(["\n  font-size: 0.78rem;\n  color: #999;\n  white-space: nowrap;\n\n  strong {\n    color: #666;\n    font-weight: 500;\n  }\n"]))),V=n=>{let e=n.status,t=n.lastSyncedAt,i=n.syncing,o=void 0!==i&&i,a=n.syncingLabel,l=void 0===a?"H\xe4mtar\u2026":a,r=n.canSync,s=void 0!==r&&r,d=n.onSync,c=n.syncLabel,p=void 0===c?"Uppdatera":c,h=n.canDisconnect,u=void 0!==h&&h,f=n.onDisconnect;const x=o?l:t?(n=>{if(!n)return"";const e=new Date(n);if(isNaN(e.getTime()))return"";const t=Math.round((Date.now()-e.getTime())/1e3);return t<60?"just nu":t<3600?"f\xf6r ".concat(Math.round(t/60)," min sedan"):t<86400?"f\xf6r ".concat(Math.round(t/3600)," h sedan"):t<172800?"ig\xe5r":e.toLocaleDateString("sv-SE",{year:"numeric",month:"short",day:"numeric"})})(t):null;return null!==e&&void 0!==e&&e.connected||x||s?(0,k.jsxs)(Y,{"data-testid":"ekonomi-connection",children:[(0,k.jsx)(A.qy,{status:e}),x&&(0,k.jsx)(T,{children:o?x:(0,k.jsxs)(k.Fragment,{children:["Senast synkad ",(0,k.jsx)("strong",{children:x})]})}),s&&(0,k.jsx)(w.A,{size:"compact",onClick:d,disabled:o,children:o?l:p}),u&&(null===e||void 0===e?void 0:e.connected)&&(0,k.jsxs)(w.A,{size:"compact",onClick:f,children:["Koppla bort ",(0,A.sQ)(e.provider)]})]}):null},Y=m.Ay.div(b||(b=(0,v.A)(["\n  display: flex;\n  align-items: center;\n  gap: 10px;\n  flex-wrap: wrap;\n  min-width: 0;\n"])))},14480(n,e,t){t.d(e,{A:()=>i});const i=(0,t(46203).vt)(n=>({all:[],setAllQuotationRequests:e=>n({all:e})}))}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.