UNPKG

@larva.io/webcomponents

Version:

Fentrica SmartUnits WebComponents package

148 lines (141 loc) 7.42 kB
/*! * (C) Fentrica http://fentrica.com - Seee LICENSE.md */ 'use strict'; var index = require('./index-B0SElCD3.js'); var reportCodesHelper = require('./report-codes-helper-B2sq9R2v.js'); var moment = require('./moment-BQC90J1E.js'); var has = require('./has-1ajHnNuK.js'); var _getAllKeys = require('./_getAllKeys-BC9TlVD6.js'); var _baseMap = require('./_baseMap-JOWSgF8Y.js'); var isArray = require('./isArray-D5T3FFPp.js'); var sortBy = require('./sortBy-Qx6X8Z-M.js'); var config = require('./config-DYlYJBug.js'); require('./_hasPath-Da_vD6kJ.js'); require('./isObjectLike-DYIul5Fz.js'); require('./global-C03WvntH.js'); require('./_isIndex-B1e9x--S.js'); require('./isLength-CPPfDVFI.js'); require('./isObject-BbrqXeY4.js'); require('./_getTag-BnylOe-u.js'); require('./_setToString-CLmf6rll.js'); require('./_defineProperty-iQdktGFd.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 = []; _baseMap.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.isArray(collection) ? _getAllKeys.arrayFilter : baseFilter; return func(collection, _baseMap.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 = class { constructor(hostRef) { index.registerInstance(this, hostRef); this.output = index.createEvent(this, "output"); this.config = 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.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.has(t, 'zone')); const groupedTroubles = { 'area.alarmsTroubles': alarms, 'area.systemTroubles': systemTroubles, 'area.zoneTroubles': zoneTroubles, }; sortBy.forOwn(groupedTroubles, (groupTroubles, group) => { if (groupTroubles.length > 0) { troubles.push(index.h("lar-list-header", null, index.h("lar-translate", { t: group }))); } groupTroubles = sortBy.sortBy(groupTroubles, 'created'); groupTroubles.forEach(trouble => { let text = index.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 && reportCodesHelper.ReportCodesHelpers.isSecurityEvent(trouble.zone.reportcode)) { const message = reportCodesHelper.distExports.getEventMessage(trouble.zone.reportcode); text = index.h("lar-translate", { t: 'log_entries.' + trouble.zone.reportcode, fallback: message }); } troubles.push(index.h("lar-list-item", null, index.h("div", { slot: "start", class: "circle" }, trouble.zone && index.h("lar-icon", { icon: trouble.zone.type, color: group === 'area.alarmsTroubles' ? 'danger' : 'warning' }), !trouble.zone && index.h("lar-icon", { icon: "device", color: "warning" })), index.h("div", null, index.h("h4", null, trouble.zone && index.h("span", null, index.h("lar-translate", { t: trouble.zone.name }), " - "), text), index.h("small", null, moment.hooks(trouble.created).format(formatDateTime)), trouble.resolved !== null && trouble.resolved !== undefined && index.h("small", null, index.h("br", null), moment.hooks(trouble.resolved).format(formatDateTime), "\u00A0", index.h("lar-badge", { color: "success" }, index.h("lar-translate", { t: 'log.resolved' }))), trouble.overridden && index.h("span", null, "\u00A0", index.h("lar-badge", { color: "danger" }, index.h("lar-translate", { t: 'area.zone_state.bypassed' })))), index.h("div", { slot: "end" }, trouble.resolved !== null && trouble.resolved !== undefined && index.h("lar-button", { size: "small", onClick: () => { this.acktrouble(trouble); }, outline: true, color: this.colorInputs }, index.h("lar-translate", { t: "area.clear" }))))); }); }); return index.h("lar-list", { class: "trouble-list" }, troubles); } }; AreaTroubleList.style = areaTroublesCss; exports.lar_area_troubles = AreaTroubleList; //# sourceMappingURL=lar-area-troubles.entry.cjs.js.map