iobroker.lovelace
Version:
With this adapter you can build visualization for ioBroker with Home Assistant Lovelace UI
1 lines • 24.4 kB
JavaScript
export const __rspack_esm_id=31355;export const __rspack_esm_ids=[31355];export const __webpack_modules__={91069(e,t,i){i.a(e,async function(e,s){try{i.d(t,{EO:()=>b,Yq:()=>w,_U:()=>T,eE:()=>E,fU:()=>D,ol:()=>f,xo:()=>I});var a=i(78016),o=i(31810),r=i(87950),n=i(81977),d=i(36307),l=i(35932),h=i(73983),c=i(6946),_=i(92913),u=i(83339),m=i(77972),p=i(31886),g=i(46927),v=e([p]);p=(v.then?(await v)():v)[0];const y=(e,t,i,s)=>{const a=i(new p.BB(e,t),s);return a instanceof Date?new Date(a.getTime()):a},f=(e,t,i,s,a)=>i.time_zone===g.Wj.server?y(e,s.time_zone,t,a):t(e,a),I=(e,t,i,s,a)=>i.time_zone===g.Wj.server?y(e,s.time_zone,t,a):t(e,a),b=(e,t,i,s,a)=>I(e,i,s,a,s.time_zone===g.Wj.server?new p.BB(t,a.time_zone):t),E=(e,t,i,s,p)=>{let g,v;if(I(e,a.e,s,p)&&I(t,o.c,s,p)){const a=(b(t,e,r.W,s,p)+1)*(i?1:-1);g=f(e,n.P,s,p,a),v=f(f(t,n.P,s,p,a),d.p,s,p)}else if(I(e,e=>(0,l.o)(e).getMilliseconds()===e.getMilliseconds(),s,p)&&I(t,e=>(0,h.D)(e).getMilliseconds()===e.getMilliseconds(),s,p)){const a=(b(t,e,c.c,s,p)+1)*(i?1:-1);g=f(e,_.f,s,p,a),v=f(t,_.f,s,p,a)}else{const a=b(t,e,u.b,s,p)*(i?1:-1);g=f(e,m.A,s,p,a),v=f(t,m.A,s,p,a)}return{start:g,end:v}},T=(e,t)=>{const i=new p.BB(e,t);return new Date(i.getTime())},w=(e,t)=>new p.BB(e,t).toISOString().split("T")[0],D=(e,t)=>new p.BB(e,t).toISOString().split("T")[1].split(".")[0];s()}catch(e){s(e)}})},85938(e,t,i){i(18111),i(22489),i(46058);var s=i(62826),a=i(5124),o=i(22441),r=i(1087);class n extends a.WF{updated(e){e.has("disabled")&&(this.disabled?this._destroySortable():this._createSortable())}disconnectedCallback(){super.disconnectedCallback(),this._shouldBeDestroy=!0,setTimeout(()=>{this._shouldBeDestroy&&(this._destroySortable(),this._shouldBeDestroy=!1)},1)}connectedCallback(){super.connectedCallback(),this._shouldBeDestroy=!1,this.hasUpdated&&!this.disabled&&this._createSortable()}createRenderRoot(){return this}render(){return this.noStyle?a.s6:a.qy` <style>.sortable-fallback{display:none!important}.sortable-ghost{box-shadow:0 0 0 2px var(--primary-color);background:rgba(var(--rgb-primary-color),.25);border-radius:var(--ha-border-radius-sm);opacity:.4}.sortable-drag{border-radius:var(--ha-border-radius-sm);opacity:1;background:var(--card-background-color);box-shadow:0px 4px 8px 3px #00000026;cursor:grabbing}</style> `}async _createSortable(){if(this._sortable)return;const e=this.children[0];if(!e)return;const t=(await Promise.all([i.e(85283),i.e(70322)]).then(i.bind(i,80745))).default,s={scroll:!0,forceAutoScrollFallback:!0,scrollSpeed:20,animation:150,...this.options,onChoose:this._handleChoose,onStart:this._handleStart,onEnd:this._handleEnd,onUpdate:this._handleUpdate,onAdd:this._handleAdd,onRemove:this._handleRemove};this.draggableSelector&&(s.draggable=this.draggableSelector),this.handleSelector&&(s.handle=this.handleSelector),void 0!==this.invertSwap&&(s.invertSwap=this.invertSwap),this.group&&(s.group=this.group),this.filter&&(s.filter=this.filter),this._sortable=new t(e,s)}_destroySortable(){this._sortable&&(this._sortable.destroy(),this._sortable=void 0)}constructor(...e){super(...e),this.disabled=!1,this.noStyle=!1,this.invertSwap=!1,this.rollback=!0,this._shouldBeDestroy=!1,this._handleUpdate=e=>{(0,r.r)(this,"item-moved",{newIndex:e.newIndex,oldIndex:e.oldIndex})},this._handleAdd=e=>{(0,r.r)(this,"item-added",{index:e.newIndex,data:e.item.sortableData,item:e.item})},this._handleRemove=e=>{(0,r.r)(this,"item-removed",{index:e.oldIndex})},this._handleEnd=async e=>{(0,r.r)(this,"drag-end"),this.rollback&&e.item.placeholder&&(e.item.placeholder.replaceWith(e.item),delete e.item.placeholder)},this._handleStart=()=>{(0,r.r)(this,"drag-start")},this._handleChoose=e=>{this.rollback&&(e.item.placeholder=document.createComment("sort-placeholder"),e.item.after(e.item.placeholder))}}}(0,s.Cg)([(0,o.MZ)({type:Boolean})],n.prototype,"disabled",void 0),(0,s.Cg)([(0,o.MZ)({type:Boolean,attribute:"no-style"})],n.prototype,"noStyle",void 0),(0,s.Cg)([(0,o.MZ)({type:String,attribute:"draggable-selector"})],n.prototype,"draggableSelector",void 0),(0,s.Cg)([(0,o.MZ)({type:String,attribute:"handle-selector"})],n.prototype,"handleSelector",void 0),(0,s.Cg)([(0,o.MZ)({type:String,attribute:"filter"})],n.prototype,"filter",void 0),(0,s.Cg)([(0,o.MZ)({type:String})],n.prototype,"group",void 0),(0,s.Cg)([(0,o.MZ)({type:Boolean,attribute:"invert-swap"})],n.prototype,"invertSwap",void 0),(0,s.Cg)([(0,o.MZ)({attribute:!1})],n.prototype,"options",void 0),(0,s.Cg)([(0,o.MZ)({type:Boolean})],n.prototype,"rollback",void 0),n=(0,s.Cg)([(0,o.EM)("ha-sortable")],n)},65590(e,t,i){i.d(t,{EE:()=>d,Ed:()=>l,K1:()=>m,Pe:()=>p,Xf:()=>c,aO:()=>n,fk:()=>_,wE:()=>u,yU:()=>h});i(74423),i(18111),i(22489),i(61701);var s=i(71727),a=i(28978),o=i(52220),r=i(22675),n=function(e){return e.NeedsAction="needs_action",e.Completed="completed",e}({}),d=function(e){return e.NONE="none",e.ALPHA_ASC="alpha_asc",e.ALPHA_DESC="alpha_desc",e.DUEDATE_ASC="duedate_asc",e.DUEDATE_DESC="duedate_desc",e}({}),l=function(e){return e[e.CREATE_TODO_ITEM=1]="CREATE_TODO_ITEM",e[e.DELETE_TODO_ITEM=2]="DELETE_TODO_ITEM",e[e.UPDATE_TODO_ITEM=4]="UPDATE_TODO_ITEM",e[e.MOVE_TODO_ITEM=8]="MOVE_TODO_ITEM",e[e.SET_DUE_DATE_ON_ITEM=16]="SET_DUE_DATE_ON_ITEM",e[e.SET_DUE_DATETIME_ON_ITEM=32]="SET_DUE_DATETIME_ON_ITEM",e[e.SET_DESCRIPTION_ON_ITEM=64]="SET_DESCRIPTION_ON_ITEM",e}({});const h=(e,t=!0)=>Object.keys(e.states).filter(i=>"todo"===(0,s.m)(i)&&e.states[i].state!==r.Hh&&(t||!0!==e.entities[i]?.hidden)).map(t=>({...e.states[t],entity_id:t,name:(0,a.u)(e.states[t])})).sort((t,i)=>(0,o.xL)(t.name,i.name,e.locale.language)),c=(e,t,i)=>e.connection.subscribeMessage(i,{type:"todo/item/subscribe",entity_id:t}),_=(e,t,i)=>e.callService("todo","update_item",{item:i.uid,rename:i.summary,status:i.status,description:i.description,due_datetime:i.due?.includes("T")?i.due:void 0,due_date:void 0===i.due||i.due?.includes("T")?void 0:i.due},{entity_id:t}),u=(e,t,i)=>e.callService("todo","add_item",{item:i.summary,description:i.description||void 0,due_datetime:i.due?.includes("T")?i.due:void 0,due_date:void 0===i.due||i.due?.includes("T")?void 0:i.due},{entity_id:t}),m=(e,t,i)=>e.callService("todo","remove_item",{item:i},{entity_id:t}),p=(e,t,i,s)=>e.callWS({type:"todo/item/move",entity_id:t,uid:i,previous_uid:s})},62134(e,t,i){i.a(e,async function(e,s){try{i.r(t),i.d(t,{HuiTodoListCard:()=>Z,ITEM_TAP_ACTION_EDIT:()=>F,ITEM_TAP_ACTION_TOGGLE:()=>R});i(74423),i(18111),i(22489),i(20116),i(61701);var a=i(62826),o=i(92913),r=i(73983),n=i(66465),d=i(69137),l=i(81977),h=i(36307),c=i(56434),_=i(69748),u=i(83309),m=i(5124),p=i(22441),g=i(6412),v=i(75751),y=i(22786),f=i(91069),I=i(380),b=i(42372),E=i(82286),T=i(52220),w=(i(76776),i(30716),i(29823)),D=(i(70947),i(26300)),M=(i(8630),i(38377),i(36158)),S=i(606),A=(i(85938),i(67094),i(91485)),$=i(22675),C=i(65590),k=i(65063),x=i(12295),O=i(13632),H=i(85979),V=e([w,D,M,S,A,H,f]);[w,D,M,S,A,H,f]=V.then?(await V)():V;const P="M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M16.2,16.2L11,13V7H12.5V12.2L17,14.9L16.2,16.2Z",z="M19,4H15.5L14.5,3H9.5L8.5,4H5V6H19M6,19A2,2 0 0,0 8,21H16A2,2 0 0,0 18,19V7H6V19Z",L="M15,16H19V18H15V16M15,8H22V10H15V8M15,12H21V14H15V12M3,18A2,2 0 0,0 5,20H11A2,2 0 0,0 13,18V8H3V18M14,5H11L10,4H6L5,5H2V7H14V5Z",U="M12,16A2,2 0 0,1 14,18A2,2 0 0,1 12,20A2,2 0 0,1 10,18A2,2 0 0,1 12,16M12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12A2,2 0 0,1 12,10M12,4A2,2 0 0,1 14,6A2,2 0 0,1 12,8A2,2 0 0,1 10,6A2,2 0 0,1 12,4Z",q="M21 11H3V9H21V11M21 13H3V15H21V13Z",N="M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z",B="M18 21L14 17H17V7H14L18 3L22 7H19V17H22M2 19V17H12V19M2 13V11H9V13M2 7V5H6V7H2Z",F="edit",R="toggle";class Z extends m.WF{static async getConfigElement(){return await i.e(90143).then(i.bind(i,24770)),document.createElement("hui-todo-list-card-editor")}static getStubConfig(e,t,i){return{type:"todo-list",entity:(0,O.B)(e,1,t,i,["todo"])[0]||""}}connectedCallback(){super.connectedCallback(),this.hasUpdated&&this._subscribeItems(),this._setRefreshTimer()}disconnectedCallback(){super.disconnectedCallback(),this._unsubItems?.then(e=>e()),this._unsubItems=void 0,this._clearRefreshTimer()}getCardSize(){return 3+(this._config&&this._config.title?2:0)}setConfig(e){this.checkConfig(e),this._config=e,this._entityId=e.entity}checkConfig(e){if(!e.entity||"todo"!==e.entity.split(".")[0])throw new Error("Specify an entity from within the todo domain")}getEntityId(){}_sortItems(e,t){if(t===C.EE.ALPHA_ASC||t===C.EE.ALPHA_DESC){const i=t===C.EE.ALPHA_ASC?1:-1;return e.sort((e,t)=>i*(0,T.SH)(e.summary,t.summary,this.hass?.locale.language))}if(t===C.EE.DUEDATE_ASC||t===C.EE.DUEDATE_DESC){const i=t===C.EE.DUEDATE_ASC?1:-1;return e.sort((e,t)=>{const s=this._getDueDate(e)??1/0,a=this._getDueDate(t)??1/0;return s===a?0:s<a?-i:i})}return e}_filterItems(e,t,i){const s=i&&i.calendar&&i.calendar.period?this._addPeriod(new Date,i.calendar):void 0;return e.filter(e=>{if(!t.includes(e.status||null))return!1;if(!s)return!0;const i=this._getDueDate(e);return i&&i<=s})}_addPeriod(e,t){const i=this.hass.locale,s=this.hass.config,a=t.offset||0;switch(t.period){case"day":return(0,o.f)((0,f.ol)(e,r.D,i,s),a);case"week":{const t=(0,I.P)(i);return(0,n.J)((0,f.ol)(e,d.$,i,s,{weekStartsOn:t}),a)}case"month":return(0,l.P)((0,f.ol)(e,h.p,i,s),a);case"year":return(0,c.e)((0,f.ol)(e,_.Q,i,s),a);default:return}}_setRefreshTimer(){if(this._clearRefreshTimer(),!this.hass||!this._config?.due_date_period)return;const e=new Date,t=(0,f.ol)(e,r.D,this.hass.locale,this.hass.config);this._refreshTimer=window.setTimeout(()=>{this._refreshTimer=void 0,this.requestUpdate()},t.getTime()-e.getTime())}_clearRefreshTimer(){void 0!==this._refreshTimer&&(window.clearTimeout(this._refreshTimer),this._refreshTimer=void 0)}willUpdate(e){this.hasUpdated?!e.has("_entityId")&&this._items||(this._items=void 0,this._subscribeItems()):(this._entityId||(this._entityId=this.getEntityId()),this._subscribeItems()),this._refreshTimer||this._setRefreshTimer()}updated(e){if(super.updated(e),!this._config||!this.hass)return;const t=e.get("hass"),i=e.get("_config");(e.has("hass")&&t?.themes!==this.hass.themes||e.has("_config")&&i?.theme!==this._config.theme)&&(0,b.Q)(this,this.hass.themes,this._config.theme)}render(){if(!this._config||!this.hass||!this._entityId)return m.s6;const e=this.hass.states[this._entityId];if(!e)return m.qy` <hui-warning .hass="${this.hass}"> ${(0,H.j)(this.hass,this._entityId)} </hui-warning> `;const t=e.state===$.Hh||e.state===$.HV,i=this._config.due_date_period?(0,f.ol)(new Date,r.D,this.hass.locale,this.hass.config).getTime():0,s=this._getCheckedItems(this._items,this._config.display_order,this._config.due_date_period,i),a=this._getUncheckedItems(this._items,this._config.display_order,this._config.due_date_period,i),o=this._getItemsWithoutStatus(this._items,this._config.display_order,this._config.due_date_period,i),n=this._reordering?this._getUncheckedAndItemsWithoutStatus(this._items,this._config.display_order,this._config.due_date_period,i):void 0;return m.qy` <ha-card .header="${this._config.title}" class="${(0,g.H)({"has-header":"title"in this._config})}"> ${!this._config.hide_create&&this._todoListSupportsFeature(C.Ed.CREATE_TODO_ITEM)?m.qy` <div class="addRow"> <ha-input .placeholder="${this.hass.localize("ui.panel.lovelace.cards.todo-list.add_item")}" ="${this._addKeyPress}" .disabled="${t}"> <ha-icon-button slot="end" class="addButton" .path="${N}" .title="${this.hass.localize("ui.panel.lovelace.cards.todo-list.add_item")}" .disabled="${t}" ="${this._addItem}"> </ha-icon-button> </ha-input> </div> `:m.s6} <ha-sortable handle-selector="ha-svg-icon" draggable-selector=".draggable" .disabled="${!this._reordering}" -moved="${this._itemMoved}"> <ha-list wrapFocus multi> ${a.length||o.length?this._reordering?m.qy`<div class="header" role="separator"> <h2> ${this.hass.localize("ui.panel.lovelace.cards.todo-list.reorder_items")} </h2> ${this._renderMenu(this._config,t)} </div> ${this._renderItems(n??[],t)}`:m.s6:m.qy`<p class="empty"> ${this.hass.localize("ui.panel.lovelace.cards.todo-list.no_unchecked_items")} </p>`} ${!this._reordering&&a.length?m.qy` ${this._config.hide_section_headers?m.s6:m.qy`<div class="header"> <h2> ${this.hass.localize("ui.panel.lovelace.cards.todo-list.unchecked_items")} </h2> ${this._renderMenu(this._config,t)} </div>`} ${this._renderItems(a,t)} `:m.s6} ${!this._reordering&&o.length?m.qy` <div> ${a.length?m.qy`<div class="divider" role="separator"></div>`:m.s6} <div class="header" role="separator"> <h2> ${this.hass.localize("ui.panel.lovelace.cards.todo-list.no_status_items")} </h2> ${a.length?m.s6:this._renderMenu(this._config,t)} </div> </div> ${this._renderItems(o,t)} `:m.s6} ${!this._config.hide_completed&&s.length?m.qy` <div> <div class="divider" role="separator"></div> ${this._config.hide_section_headers?m.s6:m.qy`<div class="header"> <h2> ${this.hass.localize("ui.panel.lovelace.cards.todo-list.checked_items")} </h2> ${this._todoListSupportsFeature(C.Ed.DELETE_TODO_ITEM)?m.qy`<ha-dropdown -select="${this._handleCompletedMenuSelect}" placement="bottom-end"> <ha-icon-button slot="trigger" .path="${U}"></ha-icon-button> <ha-dropdown-item value="clear" variant="danger"> ${this.hass.localize("ui.panel.lovelace.cards.todo-list.clear_items")} <ha-svg-icon slot="icon" .path="${L}"> </ha-svg-icon> </ha-dropdown-item> </ha-dropdown>`:m.s6} </div>`} </div> ${this._renderItems(s,t)} `:m.s6} </ha-list> </ha-sortable> </ha-card> `}_renderMenu(e,t){return e.display_order&&e.display_order!==C.EE.NONE||!this._todoListSupportsFeature(C.Ed.MOVE_TODO_ITEM)?m.s6:m.qy`<ha-dropdown -select="${this._handlePrimaryMenuSelect}" placement="bottom-end"> <ha-icon-button slot="trigger" .path="${U}"></ha-icon-button> <ha-dropdown-item value="reorder"> ${this.hass.localize(this._reordering?"ui.panel.lovelace.cards.todo-list.exit_reorder_items":"ui.panel.lovelace.cards.todo-list.reorder_items")} <ha-svg-icon slot="icon" .path="${B}"> </ha-svg-icon> </ha-dropdown-item> </ha-dropdown>`}_getDueDate(e){return e.due?e.due.includes("T")?new Date(e.due):(0,r.D)(new Date(`${e.due}T00:00:00`)):void 0}_renderItems(e,t=!1){return m.qy` ${(0,v.u)(e,e=>e.uid,e=>{const i=this._todoListSupportsFeature(C.Ed.DELETE_TODO_ITEM)&&!this._todoListSupportsFeature(C.Ed.UPDATE_TODO_ITEM),s=e.status!==C.aO.Completed&&this._reordering,a=this._getDueDate(e),o=a&&!e.due.includes("T")&&(0,u.r)(new Date,a);return m.qy` <ha-check-list-item left .hasMeta="${s||i}" class="editRow ${(0,g.H)({draggable:e.status!==C.aO.Completed,completed:e.status===C.aO.Completed,multiline:Boolean(e.description||e.due)})}" .selected="${e.status===C.aO.Completed}" .disabled="${t}" .checkboxDisabled="${!this._todoListSupportsFeature(C.Ed.UPDATE_TODO_ITEM)}" .indeterminate="${!e.status}" .noninteractive="${!this._todoListSupportsFeature(C.Ed.UPDATE_TODO_ITEM)}" .itemId="${e.uid}" ="${this._completeItem}" ="${this._itemTap}" separate-checkbox-click -selected="${this._requestSelected}" ="${this._handleKeydown}"> <div class="column"> <span class="summary">${e.summary}</span> ${e.description?m.qy`<ha-markdown-element class="description" .content="${e.description}"></ha-markdown-element>`:m.s6} ${a?m.qy`<div class="due ${a<new Date?"overdue":""}"> <ha-svg-icon .path="${P}"></ha-svg-icon>${o?this.hass.localize("ui.panel.lovelace.cards.todo-list.today"):m.qy`<ha-relative-time capitalize .hass="${this.hass}" .datetime="${a}"></ha-relative-time>`} </div>`:m.s6} </div> ${s?m.qy` <ha-svg-icon .title="${this.hass.localize("ui.panel.lovelace.cards.todo-list.drag_and_drop")}" class="reorderButton handle" .path="${q}" slot="meta"> </ha-svg-icon> `:i?m.qy`<ha-icon-button .title="${this.hass.localize("ui.panel.lovelace.cards.todo-list.delete_item")}" class="deleteItemButton" .path="${z}" .itemId="${e.uid}" slot="meta" ="${this._deleteItem}"> </ha-icon-button>`:m.s6} </ha-check-list-item> `})} `}_todoListSupportsFeature(e){const t=this.hass.states[this._entityId];return t&&(0,E.$)(t,e)}async _subscribeItems(){this._unsubItems&&(this._unsubItems.then(e=>e()),this._unsubItems=void 0),this.hass&&this._entityId&&this._entityId in this.hass.states&&(this._unsubItems=(0,C.Xf)(this.hass,this._entityId,e=>{this._items=e.items}))}_getItem(e){return this._items?.find(t=>t.uid===e)}_requestSelected(e){e.stopPropagation()}_handleKeydown(e){" "!==e.key?"Enter"===e.key&&this._itemTap(e):this._completeItem(e)}_itemTap(e){this._config.item_tap_action&&this._config.item_tap_action!==F?this._config.item_tap_action===R&&this._completeItem(e):this._openItem(e)}_openItem(e){if(e.stopPropagation(),e.composedPath().find(e=>["input","a","button"].includes(e.localName)))return;const t=this._getItem(e.currentTarget.itemId);(0,x.X)(this,{entity:this._entityId,item:t})}async _completeItem(e){let t,i;"keydown"===e.type&&(i=this._list,t=i.getFocusedItemIndex());const s=this._getItem(e.currentTarget.itemId);s&&(await(0,C.fk)(this.hass,this._entityId,{uid:s.uid,summary:s.summary,status:s.status===C.aO.NeedsAction?C.aO.Completed:C.aO.NeedsAction}),void 0!==t&&i&&(await this.updateComplete,await i.updateComplete,i.focusItemAtIndex(t)))}_handleCompletedMenuSelect(e){"clear"===e.detail?.item?.value&&this._clearCompletedItems()}_clearCompletedItems(){if(!this.hass)return;const e=this._getCheckedItems(this._items).map(e=>e.uid);(0,k.dk)(this,{title:this.hass.localize("ui.panel.lovelace.cards.todo-list.delete_confirm_title"),text:this.hass.localize("ui.panel.lovelace.cards.todo-list.delete_confirm_text",{number:e.length}),dismissText:this.hass.localize("ui.common.cancel"),confirmText:this.hass.localize("ui.common.delete"),destructive:!0,confirm:()=>{(0,C.K1)(this.hass,this._entityId,e)}})}get _newItem(){return this._input}async _addItem(e){const t=this._newItem;if(t.value.length>0)if(this._config?.due_date_period){const e={summary:t.value,status:C.aO.NeedsAction};await(0,x.X)(this,{entity:this._entityId,item:e})}else(0,C.wE)(this.hass,this._entityId,{summary:t.value});t.value="",e&&t.focus()}_deleteItem(e){const t=this._getItem(e.target.itemId);t&&(0,C.K1)(this.hass,this._entityId,[t.uid])}_addKeyPress(e){"Enter"===e.key&&this._addItem(null)}_handlePrimaryMenuSelect(e){"reorder"===e.detail?.item?.value&&this._toggleReorder()}_toggleReorder(){this._reordering=!this._reordering}async _itemMoved(e){e.stopPropagation();const{oldIndex:t,newIndex:i}=e.detail;this._moveItem(t,i)}_findFirstItem(e,t,i){let s,a="up"===i?t-1:t;for(;"ha-check-list-item"!==s?.localName&&(s=e[a],a="up"===i?a-1:a+1,s););return s}async _moveItem(e,t){await this.updateComplete;const i=this._list.children,s=i[e].itemId,a=this._findFirstItem(i,t,t<e?"up":"down")?.itemId,o=this._items.findIndex(e=>e.uid===s),r=this._items.splice(o,1)[0];if(a){const e=this._items.findIndex(e=>e.uid===a);this._items.splice(e+1,0,r)}else this._items.unshift(r);this._items=[...this._items],await(0,C.Pe)(this.hass,this._entityId,s,a)}constructor(...e){super(...e),this._reordering=!1,this._getUncheckedAndItemsWithoutStatus=(0,y.A)((e,t,i,s)=>e?this._sortItems(this._filterItems(e,[null,C.aO.NeedsAction],i),t):[]),this._getCheckedItems=(0,y.A)((e,t,i,s)=>e?this._sortItems(this._filterItems(e,[C.aO.Completed],i),t):[]),this._getUncheckedItems=(0,y.A)((e,t,i,s)=>e?this._sortItems(this._filterItems(e,[C.aO.NeedsAction],i),t):[]),this._getItemsWithoutStatus=(0,y.A)((e,t,i,s)=>e?this._sortItems(this._filterItems(e,[null],i),t):[])}}Z.styles=m.AH`ha-card{height:100%;box-sizing:border-box;overflow-y:auto}.has-header{padding-top:0}.addRow{padding:16px;padding-bottom:0;position:relative}.addRow ha-icon-button{--ha-icon-button-size:32px}.addRow,.header{display:flex;flex-direction:row;align-items:center}.header{padding-left:var(--ha-space-4);padding-right:var(--ha-space-4);padding-inline-start:var(--ha-space-4);padding-inline-end:var(--ha-space-4);margin-top:var(--ha-space-2);justify-content:space-between;direction:var(--direction)}.header h2{color:var(--primary-text-color);font-size:inherit;font-weight:var(--ha-font-weight-medium)}.empty{padding:var(--ha-space-4) var(--ha-space-8);display:inline-block}.item{margin-top:var(--ha-space-2)}ha-check-list-item{min-height:40px;height:auto;--mdc-list-side-padding:var(--ha-space-5)}.row{display:flex;justify-content:space-between}.multiline .column{display:flex;flex-direction:column;margin-top:var(--ha-space-2);margin-bottom:var(--ha-space-2)}.completed .summary{text-decoration:line-through}.description,.due{font-size:var(--ha-font-size-s);color:var(--secondary-text-color)}.description{white-space:initial;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical}.description p{margin:0}.description a{color:var(--primary-color)}.due{display:flex;align-items:center}.due ha-svg-icon{margin-right:4px;margin-inline-end:4px;margin-inline-start:initial;--mdc-icon-size:14px}.due.overdue{color:var(--warning-color)}.completed .due.overdue{color:var(--secondary-text-color)}.handle{cursor:move;cursor:grab;height:24px;padding:16px 4px}.deleteItemButton{position:relative;left:8px;inset-inline-start:8px;inset-inline-end:initial}ha-input{flex-grow:1}.divider{height:1px;background-color:var(--divider-color);margin:10px 0}.clearall{cursor:pointer}.todoList{display:block;padding:8px}.warning{color:var(--error-color)}`,(0,a.Cg)([(0,p.MZ)({attribute:!1})],Z.prototype,"hass",void 0),(0,a.Cg)([(0,p.wk)()],Z.prototype,"_config",void 0),(0,a.Cg)([(0,p.wk)()],Z.prototype,"_entityId",void 0),(0,a.Cg)([(0,p.wk)()],Z.prototype,"_items",void 0),(0,a.Cg)([(0,p.wk)()],Z.prototype,"_reordering",void 0),(0,a.Cg)([(0,p.P)("ha-input",!0)],Z.prototype,"_input",void 0),(0,a.Cg)([(0,p.P)("ha-list")],Z.prototype,"_list",void 0),Z=(0,a.Cg)([(0,p.EM)("hui-todo-list-card")],Z),s()}catch(e){s(e)}})},12295(e,t,i){i.d(t,{X:()=>o});var s=i(1087);const a=()=>i.e(10734).then(i.bind(i,54653)),o=(e,t)=>{(0,s.r)(e,"show-dialog",{dialogTag:"dialog-todo-item-editor",dialogImport:a,dialogParams:t})}},77972(e,t,i){i.d(t,{A:()=>o});var s=i(73420),a=i(83504);function o(e,t,i){return(0,s.w)(i?.in||e,+(0,a.a)(e)+t)}},81977(e,t,i){i.d(t,{P:()=>o});var s=i(73420),a=i(83504);function o(e,t,i){const o=(0,a.a)(e,i?.in);if(isNaN(t))return(0,s.w)(i?.in||e,NaN);if(!t)return o;const r=o.getDate(),n=(0,s.w)(i?.in||e,o.getTime());n.setMonth(o.getMonth()+t+1,0);return r>=n.getDate()?n:(o.setFullYear(n.getFullYear(),n.getMonth(),r),o)}},66465(e,t,i){i.d(t,{J:()=>a});var s=i(92913);function a(e,t,i){return(0,s.f)(e,7*t,i)}},56434(e,t,i){i.d(t,{e:()=>a});var s=i(81977);function a(e,t,i){return(0,s.P)(e,12*t,i)}},95785(e,t,i){i.d(t,{z:()=>a});var s=i(83504);function a(e,t){const i=+(0,s.a)(e)-+(0,s.a)(t);return i<0?-1:i>0?1:i}},29224(e,t,i){i.d(t,{U:()=>a});var s=i(74816);function a(e,t,i){const[a,o]=(0,s.x)(i?.in,e,t);return 12*(a.getFullYear()-o.getFullYear())+(a.getMonth()-o.getMonth())}},87950(e,t,i){i.d(t,{W:()=>n});var s=i(74816),a=i(95785),o=i(29224),r=i(31810);function n(e,t,i){const[n,d,l]=(0,s.x)(i?.in,e,e,t),h=(0,a.z)(d,l),c=Math.abs((0,o.U)(d,l));if(c<1)return 0;1===d.getMonth()&&d.getDate()>27&&d.setDate(30),d.setMonth(d.getMonth()-h*c);let _=(0,a.z)(d,l)===-h;(0,r.c)(n)&&1===c&&1===(0,a.z)(n,l)&&(_=!1);const u=h*(c-+_);return 0===u?0:u}},73983(e,t,i){i.d(t,{D:()=>a});var s=i(83504);function a(e,t){const i=(0,s.a)(e,t?.in);return i.setHours(23,59,59,999),i}},36307(e,t,i){i.d(t,{p:()=>a});var s=i(83504);function a(e,t){const i=(0,s.a)(e,t?.in),a=i.getMonth();return i.setFullYear(i.getFullYear(),a+1,0),i.setHours(23,59,59,999),i}},69137(e,t,i){i.d(t,{$:()=>o});var s=i(2045),a=i(83504);function o(e,t){const i=(0,s.q)(),o=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??i.weekStartsOn??i.locale?.options?.weekStartsOn??0,r=(0,a.a)(e,t?.in),n=r.getDay(),d=6+(n<o?-7:0)-(n-o);return r.setDate(r.getDate()+d),r.setHours(23,59,59,999),r}},69748(e,t,i){i.d(t,{Q:()=>a});var s=i(83504);function a(e,t){const i=(0,s.a)(e,t?.in),a=i.getFullYear();return i.setFullYear(a+1,0,0),i.setHours(23,59,59,999),i}},78016(e,t,i){i.d(t,{e:()=>a});var s=i(83504);function a(e,t){return 1===(0,s.a)(e,t?.in).getDate()}},31810(e,t,i){i.d(t,{c:()=>r});var s=i(73983),a=i(36307),o=i(83504);function r(e,t){const i=(0,o.a)(e,t?.in);return+(0,s.D)(i,t)===+(0,a.p)(i,t)}},83309(e,t,i){i.d(t,{r:()=>o});var s=i(74816),a=i(35932);function o(e,t,i){const[o,r]=(0,s.x)(i?.in,e,t);return+(0,a.o)(o)===+(0,a.o)(r)}}};