@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-D6BfYa4f.cjs"),L=require("../../../emotion-styled-base.browser.esm-BenTvX6I.cjs"),_=require("react"),o=require("@hakit/core"),k=require("react-error-boundary"),m=require("../../../ThemeControlsModal-_0fTWRao.cjs"),t=require("../../Shared/Entity/Alarm/AlarmControls/shared.js"),x=require("lodash"),D=L.createStyled(m.ButtonCard,process.env.NODE_ENV==="production"?{target:"e1tay81o0"}:{target:"e1tay81o0",label:"Wrapper"})(),O={armed_home:"armed",armed_away:"arm_away",armed_night:"arm_night",armed_vacation:"arm_vacation",armed_custom_bypass:"custom_bypass",disarmed:"disarmed",disarm:"disarm",triggered:"pending",pending:"pending",arming:"pending"};function R({entity:a,cssStyles:s,key:A,className:b,title:i,states:g,modalProps:c,layoutType:y="slim-vertical",defaultCode:l,children:S,icon:p,...E}){const r=o.useEntity(a),M=o.useHass(e=>e.globalComponentStyles),v=_.useCallback(e=>e===o.UNAVAILABLE?o.localize("unavailable"):o.localize(O[e]),[]),h=_.useMemo(()=>i??r.attributes.friendly_name,[i,r.attributes.friendly_name]),C=v(r.state),u=g||t.filterSupportedAlarmStates(r,t.DEFAULT_STATES),f=e=>{l&&r.service[x.snakeCase(`alarm_${e}`)]({serviceData:{code:l.toString()}})},d=t._getActionColor(r.state,c?.customActionColor);return n.jsx(D,{as:"div",entity:a,layoutType:y,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);
}
}
}
${M.alarmCard??""}
${s??""}
`,features:l?(r.state==="disarmed"?u:["disarm"]).map((e,T)=>n.jsx(m.FeatureEntity,{entity:a,onClick:()=>{f(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)},T)):[],disableActiveState:!0,modalProps:{title:h,stateTitle:C,states:u,...c},...E,children:S},A)}function q(a){const s={xxs:12,xs:6,sm:6,md:4,lg:4,xlg:3};return n.jsx(k.ErrorBoundary,{...m.fallback({prefix:"AlarmCard"}),children:n.jsx(R,{...s,...a})})}exports.AlarmCard=q;
//# sourceMappingURL=index.js.map