"use strict";(self.webpackChunkunifiNetworkUi=self.webpackChunkunifiNetworkUi||[]).push([[78401],{14335:(e,t,a)=>{var n,i,r,l;a.d(t,{A$:()=>n,mk:()=>i,rA:()=>r}),function(e){e.ID="id",e.STATUS="isWanPortUp",e.ISP_NAME="ispName",e.NAME="name",e.IP="ip",e.IPV6="ipv6",e.PORT="port",e.UPTIME="uptime",e.PEAK_USE="peakUseDownload",e.LATENCY="latency"}(n||(n={})),function(e){e.K="k",e.M="M",e.G="G"}(i||(i={})),function(e){e.DAILY="daily",e.WEEKLY="weekly",e.MONTHLY="monthly"}(r||(r={})),function(e){e.TRUE="true",e.FALSE="false"}(l||(l={}))},24006:(e,t,a)=>{a.d(t,{A:()=>n});const n={k:{MAX:999999,MIN:64},M:{MAX:1e3,MIN:1}}},94752:(e,t,a)=>{a.d(t,{A:()=>i});var n=a(14335);const i=[{value:n.mk.K,label:"COMMON_UNIT_BPS",values:{prefix:n.mk.K}},{value:n.mk.M,label:"COMMON_UNIT_BPS",values:{prefix:n.mk.M}},{value:n.mk.G,label:"COMMON_UNIT_BPS",values:{prefix:n.mk.G}}]},104436:(e,t,a)=>{a.d(t,{Ay:()=>h,HX:()=>u,Ib:()=>T,l8:()=>m,mH:()=>O,tI:()=>A,tn:()=>R,v7:()=>p});var n=a(296540),i=a(870443),r=a(699784),l=a(94752),o=a(768941),s=a(153643),d=a(24006),E=a(112707),_=a(768195);const p=e=>i.A.number().when(`stormctrl_${e}_enabled`,{is:e=>e,then:i.A.number().label(`COMMON_PORTS_FORM_FIELD_STORMCTRL_${e.toUpperCase()}_LABEL`).min(s.A.MIN).max(s.A.MAX).integer().required()}),A=i.A.number().when("dot1x_ctrl",{is:e=>e===o.Je.MAC_BASED,then:i.A.number().label("COMMON_PORTS_FORM_FIELD_IDLE_TIMEOUT_LABEL").min(E.S.MIN).max(E.S.MAX).required()}),c=(e=!1)=>n.createElement(r.sA,{id:"COMMON_VALIDATION_HINT_RANGE",values:{min:d.A[l.A[e?1:0].value].MIN,max:d.A[l.A[e?1:0].value].MAX}}),T=i.A.number().when(["egress_rate_limit_kbps_enabled"],{is:!0,then:i.A.number().required(c(!0)).min(d.A.M.MIN,c(!0)).max(d.A.M.MAX,c(!0))}),O=i.A.array().of(i.A.string()).test({name:"dontAllowEmptyTaggedVlansWhileCustom",test:(e,t)=>t.parent.tagged_vlan_mgmt!==_.sg.CUSTOM||t.parent.taggedVlans?.length>0||t.createError({message:n.createElement(r.sA,{id:"PORTS_FORM_TAGGED_VLANS_VALIDATION"})})}),m=i.A.bool().test({name:"lldpmedEnabledValid",test:(e,t)=>!(!e&&t.parent.op_mode===o.RC.SWITCH)||!t.parent.voice_networkconf_id,message:n.createElement(r.sA,{id:"COMMON_PORTS_FORM_FIELD_LLDPMED_ENABLED_VALIDATION_REQUIRED"})}),I=i.A.string().label("COMMON_NAME").max(64,n.createElement(r.sA,{id:"SETTINGS_COMMON_FIELD_SHOULD_NOT_EXCEED_MAX_LENGTH",values:{name:n.createElement(r.sA,{id:"COMMON_NAME"}),limit:64}})).required(),u=i.A.boolean().test({name:"atLeastOneQosRule",test:(e,t)=>!(e&&!(t.parent.qos_profile?.qos_policies?.length>0))||t.createError({message:n.createElement(r.sA,{id:"PORTS_FORM_VALIDATION_QOS_AT_LEAST_ONE_POLICY"})})}),R=i.A.bool().test({name:"atLeastOneStormCtrlEnabled",test:(e,t)=>{if(!e)return!0;const{stormctrl_bcast_enabled:a,stormctrl_ucast_enabled:i,stormctrl_mcast_enabled:l}=t.parent;return!!(a||i||l)||t.createError({message:n.createElement(r.sA,{id:"PORTS_FORM_VALIDATION_STORMCTRL_AT_LEAST_ONE_ENABLED"})})}}),h=i.A.object().shape({dot1x_idle_timeout:A,egress_rate_limit_kbps:T,egress_rate_limit_kbps_enabled:i.A.bool(),lldpmed_enabled:m,name:I,stormControlEnabled:R,stormctrl_bcast_rate:p("bcast"),stormctrl_mcast_rate:p("mcast"),stormctrl_ucast_rate:p("ucast"),taggedVlans:O,qosEnabled:u})},112707:(e,t,a)=>{a.d(t,{S:()=>n});const n={MIN:10,MAX:65535,DEFAULT:300}},153643:(e,t,a)=>{a.d(t,{A:()=>i,r:()=>n});const n={MIN:1,MAX:100,DEFAULT:1},i={MAX:1488e4,MIN:100,DEFAULT:100}},161374:(e,t,a)=>{a.d(t,{EV:()=>I,MT:()=>O,Tg:()=>m,UH:()=>T,_C:()=>p,qL:()=>_,xR:()=>c,xx:()=>A});var n=a(967431),i=a(489391),r=a(137298),l=a(768941),o=a(356927),s=a(324609),d=a(768195),E=a(154828);const _=e=>({speed:e.speed||0,full_duplex:e.full_duplex||!1}),p=e=>{const{value:t,unit:a}=(0,i.cS)((0,r.N8)(e.speed),"bitrate");return`${(0,n.A)(t,1)}${a}`},A=(e,t,a)=>a||void 0===e||void 0===t?o.A[l.n5.PORTSPEED_AUTO_NEG]:Object.values(o.A).find(a=>a.full_duplex===e&&a.speed===t)||o.A[l.n5.PORTSPEED_AUTO_NEG],c=(e,t,a)=>A(e,t,a).type,T=(e,t)=>{const a={};return e.forEach(e=>{const n=t.find(t=>t.port_idx===e);n&&(a[e]=(0,s.dd)(n).map(e=>e.type))}),a},O=e=>({label:o.A[e].translation,value:e,values:{speed:p(o.A[e])}}),m=e=>e<=o.A[l.n5.PORTSPEED_FULL_25G].speed||e===o.A[l.n5.PORTSPEED_FULL_40G].speed?d._t.FC_FEC:d._t.RS_FEC,I=e=>Object.values(o.A).reduce((t,a)=>(e&E.A[a.type]&&t.push(a.type),t),[])},199582:(e,t,a)=>{a.d(t,{L:()=>n});const n="data-testid"},333422:(e,t,a)=>{a.d(t,{AC:()=>A,D7:()=>c,Ie:()=>N,JL:()=>I,JX:()=>h,KY:()=>T,O2:()=>p,Op:()=>_,Rm:()=>O,e$:()=>u,t7:()=>m,yr:()=>R});var n=a(927099),i=a(822336),r=a(71479),l=a(132196),o=a(311785),s=a(596441),d=a(566723),E=a(294303);const _=(0,r.A)(E.A,(0,o.A)("inline","wrap"))`
  position: relative;
  flex: ${({inline:e})=>e?"1 1 0":"0 0 100%"};
  align-items: flex-start;
  flex-flow: ${({wrap:e})=>"row "+(e?"wrap":"nowrap")};
  gap: ${d.kc};
`,p=(0,r.A)(E.A,{shouldForwardProp:e=>"editMaxHeight"!==e})`
  flex-direction: column;
  max-height: ${({editMaxHeight:e})=>`${e||300}px`};
  overflow-y: auto;
  overflow-x: hidden;
  gap: ${d.YC};
`,A=(0,r.A)("div",{shouldForwardProp:e=>!["isWindowsTable","rows","tableMaxHeight","marginTop"].includes(e)})`
  width: 100%;
  // windows table inherits height from parent container
  height: ${({rows:e,isWindowsTable:t})=>t&&`${s.I.ROW_HEIGHT*e+s.I.HEADER_HEIGHT}`}px;
  max-height: ${({tableMaxHeight:e})=>`${e}px`||"auto"};
  margin-top: ${({marginTop:e})=>e||d.Ln};

  table {
    td {
      max-width: 170px;

      span {
        overflow: hidden;
        text-overflow: ellipsis;
      }
    }
  }
`,c=(0,r.A)(n.A)`
  margin-right: ${d.YC};
`,T=l.AH`
  :first-of-type {
    padding: 0 ${d.fS} 0 0px;
  }
`,O="drag-and-drop-table-row-placeholder",m=(0,r.A)(E.A)`
  flex-direction: column;

  /* Adjust weird padding on the right side for the ID column when right aligned (drag & drop table) */
  table > thead > tr > th:last-of-type {
    padding-right: ${d.kc};
  }

  /* Add missing border between drag and drop groups (tbody elements) */
  table > tbody {
    border-bottom: ${({theme:{themeName:e}})=>i.Ay[`desktop-border-divider-${e}`]};
  }
  /* Last cell in table is hover content which is not used in this table */
  table > tbody[data-rbd-droppable-context-id] td:not(:last-of-type),
  table > thead > tr > th {
    /* Align drag & drop table cell padding to regular table padding */
    padding-right: ${d.kc} !important;
  }
  /* Align drop zone placeholder row when a row is dragged to matched the CSS overrides for drag and drop table we use */
  table .${O} {
    display: flex;
  }
`,I=l.AH`
  /* This is default for the table rows, so we need it for the header. */
  display: flex;
  width: 100%;

  > th:first-child {
    /* Since we flex the header, we must specify this to align with the table rows. */
    width: 24px;
  }
  > th:not(:first-child) {
    /* Something inside UIC sets the padding to 8px for table header and 5px for table rows. This aligns it to make flex work. */
    padding-right: ${d.kc} !important;
  }
`,u=l.AH`
  /* Override the padding-right of the first column to align with manage + drop modes. */
  > th:first-child {
    padding-right: ${d.kc} !important;
  }
  > th:first-child:has(> label) {
    padding-right: 1px !important;
    width: 36px;
  }
`,R=l.AH`
  /* UIC already does this for some table states, like drag and drop and when in manage mode. If we just use this ALWAYS, we're avoiding many issues related to using different alignment techniques in different places. */
  display: flex;
`,h=l.AH`
  tbody {
    display: flex;
    flex-direction: column;
  }
`;function N(e,t){return l.AH`
    width: ${t.width?`${t.width}px`:"auto"};
    min-width: ${t.minWidth?`${t.minWidth}px`:"0px"};
    flex: ${t.growthFactor||0} !important;
    padding-left: ${d.kc} !important;
    padding-right: ${d.kc} !important;
  `}},369596:(e,t,a)=>{a.d(t,{A:()=>H});var n=a(469733),i=a(296540),r=a(165126),l=a(566401),o=a(951272),s=a(429252),d=a.n(s),E=a(271856),_=a(56016),p=a(963070),A=a(758649),c=a(86838),T=a(718073),O=a(71479),m=a(132196),I=a(79760),u=a(596441),R=a(454195),h=a(566723),N=a(766624),S=a(143811),g=a(294303),b=a(955161),L=a(699784),C=a(602021),f=a(968906),P=a(586371),w=a(333422);const v=S.A,D=(0,O.A)(c.A)`
  padding-top: 0;
  padding-bottom: 0;
`,M=m.AH`
  opacity: ${h.xN};
`;const H=function({fieldName:e,newFields:t,fieldLabels:a={},onAddItem:s,onRemoveItem:c,validationSchema:O,initialValues:m,onEditSubmit:H,fieldVariant:F="secondary",max:y,isWindowTable:x=!1,addButtonText:W="COMMON_ACTION_ADD",validateOnChange:k=!0,validateOnBlur:V=!0,invalid:U,children:G,editColumns:B,tableMaxHeight:$=u.I.getHeight(6,6,u.I.ROW_HEIGHT),onEditActiveChange:Y,editable:K=!0,columns:X,maxTooltipTranslationId:q,editMaxHeight:j,allowSubmitInitial:z,renderHoverContent:Q,manageActions:J,onRowClick:Z,isDisabledOverride:ee}){const te=(0,n.useSelector)(C.EL),ae=ee||te,ne=(0,i.useCallback)(t=>{const a=async()=>c?.(t);return Q?Q(t,a):ae?null:i.createElement(g.A,{alignItems:"center",marginRight:h.kc},i.createElement(A.A,{name:`remove-${e}-${"id"in t?t.id:""}`,size:"inherit",type:"button",variant:"inline",color:"danger",onClick:a},i.createElement(L.sA,{id:"COMMON_ACTION_REMOVE"})))},[Q,ae,e,c]),ie=x?_.A:p.A,re=(0,i.useCallback)(e=>"function"==typeof t?t(e):t,[t]);return i.createElement(o.l1,{enableReinitialize:!0,onSubmit:t=>H?.(t[e]),initialValues:m,validationSchema:O,validateOnChange:k,validateOnBlur:V},({values:t,errors:n,setFieldValue:o,handleSubmit:_,handleReset:p,setTouched:O,dirty:u,touched:C,submitCount:H,resetForm:k})=>{const V=!(0,l.A)(n)||!Object.keys(t).some(e=>(0,I.If)(e,n,C,H)),Q=re(t);return i.createElement(g.A,{flexDirection:"column",width:"100%"},t[P.Vf]?null:i.createElement(E.A,{portal:!0,description:q&&void 0!==y&&t[e].length>=y?i.createElement(L.sA,{id:q}):void 0,noWrap:!0},i.createElement(g.A,{width:"100%",flexWrap:"wrap",gap:h.kc},Q.map((a,r)=>{const{name:l,inline:d,placeholder:E,type:_,label:p,tooltip:c,tooltipProps:m,parser:h,validated:S,hideMainFormInvalidState:D=!1,translateOptions:M,options:x,autoComplete:G,containerFlexProps:B,editable:$=!0,wrap:Y=!1,propFunc:K,...X}=a,q={};if(!$)return null;h&&(q.onChange=(...e)=>o(l,h(e)));const{valueInputTooltip:j,...J}=K?.(t)||{},Z=(0,I.t$)(l,n,C,H);return i.createElement(i.Fragment,{key:l},i.createElement(w.Op,{inline:d,wrap:Y,...f.A.addDataTestId(a.id),...B},i.createElement(b.A,{condition:!!c,wrapper:e=>"string"==typeof p?((e,t,a,n)=>i.createElement(g.A,{flexDirection:"column",width:"100%"},i.createElement(g.A,{alignItems:"center"},i.createElement(w.D7,{color:"inherit"},i.createElement(L.sA,{id:e})),i.createElement(N.A,{description:i.createElement(L.sA,{id:t}),...n})),a))(p,c,e,m):e},i.createElement(T.A,{description:j?i.createElement(L.sA,{id:j}):void 0},i.createElement(g.A,{flex:"1"},i.createElement(v,{full:!0,name:l,placeholder:E,type:_,label:c?null:p,variant:F,invalid:u&&Z||!D&&!!U&&V,..."dropdown"!==_?{autoComplete:G}:{options:x,translateLabel:"string"==typeof p,translateOptions:M,translatePlaceholder:!0,validated:S},disabled:t[P.Vf]||t[e].length>=y||ae,...q,...X,...J})))),r===Q.length-1&&!ae&&s?i.createElement(g.A,{alignSelf:"flex-start",height:R.b,marginTop:p?P.EE:0},i.createElement(A.A,{...f.A.addDataTestId(`add-new-table-record-${e}`),name:`add-${e}`,size:"medium",type:u?"submit":"button",variant:"inline",onClick:async e=>{e.preventDefault();const a=Q.reduce((e,t)=>(e[t.name]=!0,e),{}),n=await O(a,!0);Q.find(e=>n[e.name])||(s(t),k())},disabled:t[P.Vf]||t[e].length>=y||!u&&!z&&!J?.disabled},i.createElement(L.sA,{id:W}))):null))}))),U&&V?i.createElement(g.A,{width:"80%",marginBottom:t[e]?.length?h.Er:void 0},i.createElement(D,{label:U,isInvalid:!0})):null,t[P.Vf]?null:G,t[P.Vf]?i.createElement(i.Fragment,null,i.createElement(w.O2,{editMaxHeight:j},t[e].map((n,r)=>i.createElement(g.A,{key:n.id||`${e}-${r}`,width:"100%",gap:h.kc},(B||X).map((l,s)=>{const d=B&&l.getNewFieldIndex?Q[l.getNewFieldIndex()]:B?{}:Q[s];if(!d)return null;const{type:E,parser:_,validated:p,translateOptions:A,options:c,containerFlexProps:O,inline:m,editable:I=!0,wrap:u,propFunc:R,...h}=d;if(!I)return null;const N={},b=B&&l.getFieldName?.(n)||String(l.id),C=B&&l.getFieldLabel?.(n)||a[l.id];_&&(N.onChange=(...t)=>o(`${e}.${r}.${String(l.id)}`,_(t)));const{valueInputTooltip:f,...P}=R?.(n,t[e])||{};return i.createElement(g.A,{key:`${n.id}-${l.id}`,flexDirection:"column",flex:"1 1 50%",inline:m,...O},i.createElement(T.A,{description:f?i.createElement(L.sA,{id:f}):void 0},i.createElement(g.A,{flex:"1"},i.createElement(S.A,{...N,...h,full:!0,label:C,name:`${e}.${r}.${b}`,type:E||l.getFieldType?.(n),variant:F,fast:!0,..."dropdown"!==E?{}:{options:c,translateLabel:"string"==typeof C,translateOptions:A,translatePlaceholder:!0,type:E,validated:p,portal:!0},...P}))))})))),i.createElement(g.A,{justifyContent:"flex-end",width:"100%",marginTop:h.Ln,gap:h.Ln},i.createElement(A.A,{name:`edit-cancel-${e}`,type:"button",variant:"default",onClick:()=>{p(),o(P.Vf,!1),Y?.(!1)}},i.createElement(L.sA,{id:"COMMON_ACTION_CANCEL"})),i.createElement(A.A,{name:`edit-submit-${e}`,type:t[P.Vf]?"submit":"button",variant:"primary",onClick:_,disabled:d()((0,r.A)(t,P.Vf),(0,r.A)(m,P.Vf))},i.createElement(L.sA,{id:"COMMON_ACTION_SAVE_CHANGES"})))):t[e].length>0?i.createElement(g.A,{position:"relative"},t[e].length?i.createElement(w.AC,{tableMaxHeight:$,rows:t[e].length,isWindowsTable:x,marginTop:h.kc,className:ae?M:void 0,...f.A.addDataTestId(`editable-grid-table-wrapper-${e}`)},i.createElement(ie,{columns:X,disableColumnFilters:!0,disableSelection:!0,disableTextPointer:!0,items:t[e],renderHoverContent:!ae&&c?ne:void 0,cellClassName:w.KY,onRowClick:Z})):null,i.createElement(g.A,{position:"absolute",top:h.xO,right:0},J,!ae&&K?i.createElement(A.A,{name:`edit-${e}`,size:"medium",type:"button",variant:"inline",onClick:()=>{p(),o(P.Vf,!0),Y?.(!0)}},i.createElement(L.sA,{id:"COMMON_ACTION_EDIT"})):null)):null)})}},373229:(e,t,a)=>{a.d(t,{A:()=>d});var n=a(296540),i=a(758649),r=a(71479),l=a(566723),o=a(699784);const s=(0,r.A)("footer",{shouldForwardProp:e=>"hasFormResetButton"!==e})`
  display: flex;
  justify-content: ${({hasFormResetButton:e})=>e?"space-between":"flex-end"};
  padding: ${l.S2} ${l.fS};
  gap: ${l.kc};
`,d=({allowCancel:e,isDirty:t,isInvalid:a,isSubmitting:r,onFormSubmit:l,onFormReset:d,onFormCancel:E,className:_,submitButtonText:p,customButton:A,applyButton:c,applyButtonFirst:T,hideCancelButton:O,form:m})=>{const I=(0,n.useMemo)(()=>c||n.createElement(i.A,{name:"submit",variant:"primary",type:"submit",onClick:l,disabled:!t||a||r,form:m},n.createElement(o.sA,{id:p||"COMMON_ACTION_APPLY_CHANGES"})),[c,m,t,a,r,l,p]);return n.createElement(s,{className:_,hasFormResetButton:!!d},T?I:A,O?null:n.createElement(i.A,{name:"cancel",variant:"default",type:"button",onClick:E,disabled:!e&&!t},n.createElement(o.sA,{id:"COMMON_ACTION_CANCEL"})),d?n.createElement(i.A,{name:"reset",variant:"default",type:"button",onClick:d,disabled:!t},n.createElement(o.sA,{id:"COMMON_ACTION_RESET_TO_DEFAULTS"})):null,T?A:I)}},383725:(e,t,a)=>{var n;a.d(t,{b:()=>n}),function(e){e.DASHBOARD_WAN_GRAPH="dashboard-wan-graph",e.DASHBOARD_WIFI_GRAPH="dashboard-wifi-graph",e.DASHBOARD_FLOWS_GRAPH="dashboard-flows-graph",e.DASHBOARD_PANEL_LIVE_ACTIVITY="dashboard-panel-live-activity",e.DASHBOARD_PANEL_SPEED_TEST_ACTIVITY="dashboard-panel-speed-test-activity",e.INTERNET_HEALTH="internet-health",e.ISP_UPTIME="isp-uptime",e.SYSTEM_UPTIME="system-uptime",e.NETWORK_DASHBOARD="network-dashboard",e.DASHBOARD_LOADER="dashboard-loader",e.DASHBOARD_UNIFI_OS_VERSION="dashboard-unifi-os-version",e.DASHBOARD_NETWORK_VERSION="dashboard-network-version",e.HOTSPOT_PORTAL_MINIMIZER="hotspot-portal-minimizer",e.HOTSPOT_PORTAL_SETTINGS_RESTORE_DEFAULT="hotspot-portal-settings-restore-default",e.HOTSPOT_PORTAL_PREVIEW_BACKGROUND="hotspot-portal-preview-background",e.HOTSPOT_PORTAL_PREVIEW_CONTAINER="hotspot-portal-preview-container",e.HOTSPOT_PORTAL_PREVIEW_LOGO="hotspot-portal-preview-logo",e.HOTSPOT_PORTAL_PREVIEW_LANGUAGE="hotspot-portal-preview-language",e.HOTSPOT_PORTAL_PREVIEW_TITLE="hotspot-portal-preview-title",e.HOTSPOT_PORTAL_PREVIEW_WELCOME_TEXT="hotspot-portal-preview-welcome-text",e.HOTSPOT_PORTAL_PREVIEW_AUTHENTICATION_TEXT="hotspot-portal-preview-authentication-text",e.HOTSPOT_PORTAL_PREVIEW_BUTTON_TEXT="hotspot-portal-preview-button-text",e.HOTSPOT_PORTAL_PREVIEW_HOTSPOT_PACKAGES="hotspot-portal-preview-hotspot-packages",e.HOTSPOT_PORTAL_PREVIEW_FACEBOOK="hotspot-portal-preview-facebook",e.HOTSPOT_PORTAL_PREVIEW_VOUCHER="hotspot-portal-preview-voucher",e.HOTSPOT_PORTAL_PREVIEW_PASSWORD="hotspot-portal-preview-password",e.HOTSPOT_PORTAL_PREVIEW_RADIUS="hotspot-portal-preview-radius",e.HOTSPOT_PORTAL_BRANDING_INFORMATION="hotspot-portal-branding-information",e.HOTSPOT_PORTAL_BRANDING_SUCCESS="hotspot-portal-branding-success",e.HOTSPOT_PORTAL_BRANDING_LOGO="hotspot-portal-branding-logo",e.WATCHLIST_TABLE="watchlist-table",e.PROBLEMATIC_CLIENTS_TABLE="problematic-clients-table",e.NETWORK_VERSION="network-version",e.PLAY_PAUSE_BUTTON="play-pause-button",e.CONTROL_PANEL_HEADER="control-panel-header",e.CONTROL_PANEL_HEADER_FILTER_BUTTON="control-panel-header-filter-button",e.HEADER_SIGNOUT_BUTTON="header-signout-button",e.HEADER_USERICON="header_usericon",e.RESTORE_COLUMNS_BUTTON="restore-columns-button",e.WIFI_SECURITY_PROTOCOLS="wifi-security-protocols",e.WIFI_BANDWIDTH_PROFILE="wifi-bandwidth-profile",e.WIFI_PMF_MODE="wifi-pmf-mode",e.WIFI_VLAN_BANDS="wifi-vlan-bands",e.NETWORKCONF_ID="networkconf-id",e.APS_TABLE="aps-table",e.AP_GROUPS_TABLE="ap-groups-table",e.IP_ADDRESS_DROPDOWN="ip-address-dropdown",e.TUNNEL_SUBNET="tunnel-subnet",e.COPY_WIREGUARD_PUBLIC_KEY="copy-wireguard-public-key",e.IPSEC_ESP_LIFETIME_CONTAINER="ipsec-esp-lifetime-container",e.IPSEC_ESP_DH_GROUP_CONTAINER="ipsec-esp-dh-group-container",e.IPSEC_ESP_HASH_CONTAINER="ipsec-esp-hash-container",e.IPSEC_ESP_ENCRYPTION_CONTAINER="ipsec-esp-encryption-container",e.IPSEC_IKE_LIFETIME_CONTAINER="ipsec-ike-lifetime-container",e.IPSEC_IKE_HASH_CONTAINER="ipsec-ike-hash-container",e.IPSEC_IKE_ENCRYPTION_CONTAINER="ipsec-ike-encryption-container",e.EXTRAS_CONTAINER="extras-container",e.TELEPORT_LINK_EXPIRY="teleport-link-expiry",e.TELEPORT_TOKEN_TABLE="teleport-token-table",e.NETWORK_SUBNET_DROPDOWN="network-subnet-dropdown",e.NETWORKS_TABLE="networks-table",e.WS_USERS_TABLE="ws-users-table",e.TOGGLE_DHCP_MANAGEMENT="toggle-dhcp-management",e.DHCP_MODE_DROPDOWN="dhcp-mode-dropdown",e.ADD_NEW_DHCP_OPTION="add-new-dhcp-option",e.TOPOLOGY_FILTER_CONTROL="topology-filter-control",e.TOPOLOGY_ROTATION="topology-rotation",e.SETTINGS_DEVICE_UPDATE_CACHE="settings-device-update-cache",e.SETTINGS_DEVICE_UPDATE_SCHEDULE="settings-device-update-schedule",e.SETTINGS_DEVICE_FIRMWARE="settings-device-firmware",e.SETTINGS_DEVICE_FIRMWARE_RELEASE_CHANNEL="settings-device-firmware-release-channel",e.SETTINGS_EARLY_ACCESS_RELEASE_CHANNELS="settings-early-access-release-channels",e.SETTINGS_NETWORKS_NEW_VIRTUAL_NETWORK="settings-networks-new-virtual-network",e.LOGS_CATEGORY_PICKER="logs-category-picker",e.LOGS_SUBCATEGORY_PICKER="logs-subcategory-picker",e.LOGS_EVENT_PICKER="logs-event-picker",e.LOGS_SETTINGS="logs-settings",e.LOGS_RELOAD="logs-reload",e.PUSH_NOTIFICATIONS_PICKER="push-notifications-picker",e.VIEWER_NETWORK="viewer-network",e.VIEWER_INTERNET="viewer-internet",e.VIEWER_VPN_SERVER="viewer-vpn-server",e.VIEWER_VPN_CLIENT="viewer-vpn-client",e.VIEWER_POLICY_BASED_ROUTING="viewer-policy-based-routing",e.VIEWER_FIREWALL_RULES="viewer-firewall-rules",e.VIEWER_NAT="viewer-nat",e.VIEWER_SITE_TO_SITE_VPN="viewer-site-to-site-vpn",e.VIEWER_WIFI="viewer-wifi",e.CREATE_FIREWALL_ZONE_BUTTON="create-firewall-zone-button",e.CREATE_FIREWALL_POLICY_BUTTON="create-firewall-policy-button",e.FIREWALL_POLICY_ORDER_BUTTON="firewall-policy-order-button",e.POLICY_BASED_ROUTES_DOMAIN="editable-grid-table-wrapper-domains",e.ACL_POLICY_FORM_TYPE="acl-policy-form-type",e.ACL_POLICY_FORM_SOURCE="acl-policy-form-source",e.ACL_POLICY_FORM_ACTION="acl-policy-form-action",e.ACL_POLICY_FORM_DESTINATION="acl-policy-form-destination",e.VIEWER_CONTENT_FILTER="viewer-content-filter",e.CLIENTS_FILTER_FOOTER="clients-filter-footer",e.CLIENTS_FILTER_CONTENT="clients-filter-content",e.VIEWER_ETHERNET_PORTS_PROFILE="viewer-ethernet-ports-profile",e.VIEWER_WAN_SLA="viewer-wan-sla",e.VIEWER_NETWORK_LISTS="viewer-network-lists",e.VIEWER_WIFI_SPEED_LIMIT_PROFILE="viewer-wifi-speed-limit-profile",e.VIEWER_RADIUS_PROFILE="viewer-radius-profile"}(n||(n={}))},393832:(e,t,a)=>{a.d(t,{K:()=>l});var n=a(573531),i=a(951106),r=a(6510);const l=(e,t,a)=>{const l=e.find(e=>e.mac===a);if(l){const e=(0,r.Q)(l);if(e&&e!==a)return e;const t=(0,r.Lm)(l.model);if(t)return t}const o=t.find(e=>"mac"in e&&e.mac===a);if(o){const e=(0,i.tn)(o);if(e&&e!==a)return e}return n.L}},586371:(e,t,a)=>{var n;a.d(t,{EE:()=>r,Uh:()=>n,Vf:()=>i}),function(e){e.SINGLE="single",e.PLURAL="plural"}(n||(n={}));const i="editActive",r=20},596441:(e,t,a)=>{a.d(t,{I:()=>n});const n={HEADER_HEIGHT:32,ROW_HEIGHT:32,EDIT_FIELD_HEIGHT:36,getHeight(e,t,a,n){return Math.min((n||this.ROW_HEIGHT)*e+(a??this.HEADER_HEIGHT),(n||this.ROW_HEIGHT)*t+(a??this.HEADER_HEIGHT))},getEditContainerHeight(e,t,a){return Math.min((a||this.EDIT_FIELD_HEIGHT)*e,(a||this.EDIT_FIELD_HEIGHT)*t)}}},968906:(e,t,a)=>{a.d(t,{A:()=>l});var n=a(383725),i=a(199582);class r{static addDataTestId(e){return{[i.L]:e}}}r.TestId=n.b;const l=r}}]);