@larva.io/webcomponents
Version:
Fentrica SmartUnits WebComponents package
206 lines (199 loc) • 9.35 kB
JavaScript
/*!
* (C) Fentrica http://fentrica.com - Seee LICENSE.md
*/
import { p as proxyCustomElement, H, c as createEvent, h } from './p-AOwgnAK2.js';
import { R as ReportCodesHelpers, d as distExports } from './p-BN3DZ42s.js';
import { h as hooks } from './p-DAuPur-P.js';
import { h as has } from './p-c4sz8_hg.js';
import { a as arrayFilter } from './p-BQF3cY6e.js';
import { b as baseEach, a as baseIteratee } from './p-C7LWA9xi.js';
import { i as isArray } from './p-Cvhpe3ZV.js';
import { f as forOwn, s as sortBy } from './p-C45Zg0QW.js';
import { b as config } from './p-Bt4QT_oL.js';
import { d as defineCustomElement$8 } from './p-DzVmQ9SH.js';
import { d as defineCustomElement$7 } from './p-BiG3U7GV.js';
import { d as defineCustomElement$6 } from './p-C9VBtzS4.js';
import { d as defineCustomElement$5 } from './p-p5eBnhDi.js';
import { d as defineCustomElement$4 } from './p-BcSt9bUd.js';
import { d as defineCustomElement$3 } from './p-DwjVtK9p.js';
import { d as defineCustomElement$2 } from './p-B-fmI6sr.js';
/**
* The base implementation of `_.filter` without support for iteratee shorthands.
*
* @private
* @param {Array|Object} collection The collection to iterate over.
* @param {Function} predicate The function invoked per iteration.
* @returns {Array} Returns the new filtered array.
*/
function baseFilter(collection, predicate) {
var result = [];
baseEach(collection, function(value, index, collection) {
if (predicate(value, index, collection)) {
result.push(value);
}
});
return result;
}
/**
* Iterates over elements of `collection`, returning an array of all elements
* `predicate` returns truthy for. The predicate is invoked with three
* arguments: (value, index|key, collection).
*
* **Note:** Unlike `_.remove`, this method returns a new array.
*
* @static
* @memberOf _
* @since 0.1.0
* @category Collection
* @param {Array|Object} collection The collection to iterate over.
* @param {Function} [predicate=_.identity] The function invoked per iteration.
* @returns {Array} Returns the new filtered array.
* @see _.reject
* @example
*
* var users = [
* { 'user': 'barney', 'age': 36, 'active': true },
* { 'user': 'fred', 'age': 40, 'active': false }
* ];
*
* _.filter(users, function(o) { return !o.active; });
* // => objects for ['fred']
*
* // The `_.matches` iteratee shorthand.
* _.filter(users, { 'age': 36, 'active': true });
* // => objects for ['barney']
*
* // The `_.matchesProperty` iteratee shorthand.
* _.filter(users, ['active', false]);
* // => objects for ['fred']
*
* // The `_.property` iteratee shorthand.
* _.filter(users, 'active');
* // => objects for ['barney']
*
* // Combining several predicates using `_.overEvery` or `_.overSome`.
* _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));
* // => objects for ['fred', 'barney']
*/
function filter(collection, predicate) {
var func = isArray(collection) ? arrayFilter : baseFilter;
return func(collection, baseIteratee(predicate));
}
const areaTroublesCss = "slot-fb[hidden],slot[hidden]{display:initial !important}lar-list-item{background-color:var(--lar-background-color-step-100, rgb(25.5, 25.5, 25.5)) !important;color:var(--lar-text-color, #fff) !important}.circle{background-color:var(--lar-background-color-step-200, #333333) !important;border-radius:50%;display:inline-block;padding:0.5rem;width:2rem;height:2rem;margin-right:1rem}.circle lar-icon{display:block;width:100%;height:100%}h4{margin:0;padding:0}h4 lar-badge{margin-top:0.2rem;margin-right:0.3rem;font-weight:normal}lar-button{--lar-button-font-size-small:.95rem;--lar-button-padding-top-small:.4rem;--lar-button-padding-bottom-small:.4rem;--lar-button-padding-left-small:.4rem;--lar-button-padding-right-small:.4rem}";
const AreaTroubleList = /*@__PURE__*/ proxyCustomElement(class AreaTroubleList extends H {
constructor(registerHost) {
super();
if (registerHost !== false) {
this.__registerHost();
}
this.__attachShadow();
this.output = createEvent(this, "output");
this.config = config;
}
acktrouble(trouble) {
this.output.emit({ command: 'ack_trouble', trouble_id: trouble.id });
}
render() {
const troubleList = JSON.parse(this.troubles);
if (troubleList.length === 0) {
this.modal.dismiss();
return;
}
const troubles = [];
const formatDateTime = this.config.get('formatDateTime', 'DD.MM.YYYY HH:mm');
const zoneTroubles = filter(troubleList, t => has(t, 'zone') && t.type_id !== 0 && t.type_id !== 3);
const alarms = filter(troubleList, t => t.type_id === 0 || t.type_id === 3);
const systemTroubles = filter(troubleList, t => !has(t, 'zone'));
const groupedTroubles = {
'area.alarmsTroubles': alarms,
'area.systemTroubles': systemTroubles,
'area.zoneTroubles': zoneTroubles,
};
forOwn(groupedTroubles, (groupTroubles, group) => {
if (groupTroubles.length > 0) {
troubles.push(h("lar-list-header", null, h("lar-translate", { t: group })));
}
groupTroubles = sortBy(groupTroubles, 'created');
groupTroubles.forEach(trouble => {
let text = h("lar-translate", { t: 'area.trouble_code_messages.' + trouble.type_id, fallback: trouble.text });
// tslint:disable-next-line: strict-boolean-conditions
if ((trouble.type_id === 0 || trouble.type_id === 3) && trouble.zone && trouble.zone.reportcode && ReportCodesHelpers.isSecurityEvent(trouble.zone.reportcode)) {
const message = distExports.getEventMessage(trouble.zone.reportcode);
text = h("lar-translate", { t: 'log_entries.' + trouble.zone.reportcode, fallback: message });
}
troubles.push(h("lar-list-item", null, h("div", { slot: "start", class: "circle" }, trouble.zone
&&
h("lar-icon", { icon: trouble.zone.type, color: group === 'area.alarmsTroubles' ? 'danger' : 'warning' }), !trouble.zone
&&
h("lar-icon", { icon: "device", color: "warning" })), h("div", null, h("h4", null, trouble.zone
&&
h("span", null, h("lar-translate", { t: trouble.zone.name }), " - "), text), h("small", null, hooks(trouble.created).format(formatDateTime)), trouble.resolved !== null && trouble.resolved !== undefined
&&
h("small", null, h("br", null), hooks(trouble.resolved).format(formatDateTime), "\u00A0", h("lar-badge", { color: "success" }, h("lar-translate", { t: 'log.resolved' }))), trouble.overridden &&
h("span", null, "\u00A0", h("lar-badge", { color: "danger" }, h("lar-translate", { t: 'area.zone_state.bypassed' })))), h("div", { slot: "end" }, trouble.resolved !== null && trouble.resolved !== undefined &&
h("lar-button", { size: "small", onClick: () => { this.acktrouble(trouble); }, outline: true, color: this.colorInputs }, h("lar-translate", { t: "area.clear" })))));
});
});
return h("lar-list", { class: "trouble-list" }, troubles);
}
static get style() { return areaTroublesCss; }
}, [257, "lar-area-troubles", {
"header": [8],
"modal": [8],
"troubles": [1],
"colorInputs": [1025, "color-inputs"]
}]);
function defineCustomElement$1() {
if (typeof customElements === "undefined") {
return;
}
const components = ["lar-area-troubles", "lar-badge", "lar-button", "lar-icon", "lar-list", "lar-list-header", "lar-list-item", "lar-translate"];
components.forEach(tagName => { switch (tagName) {
case "lar-area-troubles":
if (!customElements.get(tagName)) {
customElements.define(tagName, AreaTroubleList);
}
break;
case "lar-badge":
if (!customElements.get(tagName)) {
defineCustomElement$8();
}
break;
case "lar-button":
if (!customElements.get(tagName)) {
defineCustomElement$7();
}
break;
case "lar-icon":
if (!customElements.get(tagName)) {
defineCustomElement$6();
}
break;
case "lar-list":
if (!customElements.get(tagName)) {
defineCustomElement$5();
}
break;
case "lar-list-header":
if (!customElements.get(tagName)) {
defineCustomElement$4();
}
break;
case "lar-list-item":
if (!customElements.get(tagName)) {
defineCustomElement$3();
}
break;
case "lar-translate":
if (!customElements.get(tagName)) {
defineCustomElement$2();
}
break;
} });
}
defineCustomElement$1();
const LarAreaTroubles = AreaTroubleList;
const defineCustomElement = defineCustomElement$1;
export { LarAreaTroubles, defineCustomElement };
//# sourceMappingURL=lar-area-troubles.js.map
//# sourceMappingURL=lar-area-troubles.js.map