@hakit/components
Version:
A series of components to work with @hakit/core
19 lines (18 loc) • 2.62 kB
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("../../../emotion-react-jsx-runtime.browser.esm-CgJouFLh.cjs"),k=require("../../../emotion-styled-base.browser.esm-D0rcP917.cjs"),_=require("react"),o=require("@hakit/core"),x=require("react-error-boundary"),m=require("../../../ThemeControlsModal-B66Ntv_-.cjs"),t=require("../../Shared/Entity/Alarm/AlarmControls/shared.js"),D=require("lodash"),O=k.createStyled(m.ButtonCard,process.env.NODE_ENV==="production"?{target:"e1tay81o0"}:{target:"e1tay81o0",label:"Wrapper"})(),R={armed_home:"arm_home",armed_away:"arm_away",armed_night:"arm_night",armed_vacation:"arm_vacation",armed_custom_bypass:"custom_bypass",disarmed:"disarm",triggered:"pending",pending:"pending",arming:"pending"};function q({entity:a,cssStyles:s,key:A,className:b,title:i,states:g,modalProps:c,layoutType:S="slim-vertical",defaultCode:l,children:y,icon:p,...E}){const r=o.useEntity(a),{useStore:M}=o.useHass(),h=M(e=>e.globalComponentStyles),f=_.useCallback(e=>e===o.UNAVAILABLE?o.localize("unavailable"):o.localize(R[e]),[]),C=_.useMemo(()=>i??r.attributes.friendly_name,[i,r.attributes.friendly_name]),v=f(r.state),u=g||t.filterSupportedAlarmStates(r,t.DEFAULT_STATES),T=e=>{l&&r.service[D.snakeCase(`alarm_${e}`)]({serviceData:{code:l.toString()}})},d=t._getActionColor(r.state,c?.customActionColor);return n.jsx(O,{as:"div",entity:a,layoutType:S,icon:p??(r.state in t.ALARM_MODES?t.ALARM_MODES[r.state].icon:void 0),title:i,hideToggle:!0,className:`alarm-card ${b??""} ${r.state}`,fabProps:{style:{backgroundColor:d,color:"var(--ha-S500-contrast)"}},cssStyles:`
.fab-card-inner.icon {
background-color: ${d};
color: var(--ha-S500-contrast);
}
&:not(.disabled),
&:not(:disabled) {
&:not(:focus):hover {
.fab-card-inner.icon {
background-color: ${d};
color: var(--ha-S500-contrast);
}
}
}
${h.alarmCard??""}
${s??""}
`,features:l?(r.state==="disarmed"?u:["disarm"]).map((e,L)=>n.jsx(m.FeatureEntity,{entity:a,onClick:()=>{T(e)},icon:e in t.ALARM_MODE_STATE_MAP?t.ALARM_MODES[t.ALARM_MODE_STATE_MAP[e]].icon:void 0,children:t._getActionLabel(e,c?.labelMap)},L)):[],disableActiveState:!0,modalProps:{title:C,stateTitle:v,states:u,...c},...E,children:y},A)}function $(a){const s={xxs:12,xs:6,sm:6,md:4,lg:4,xlg:3};return n.jsx(x.ErrorBoundary,{...m.fallback({prefix:"AlarmCard"}),children:n.jsx(q,{...s,...a})})}exports.AlarmCard=$;
//# sourceMappingURL=index.js.map