The Importance of Sensors in the IoT Era

Modern society cannot function without sensors, such as those in mobile phones, robotic vacuum cleaners, and cars; without sensors, these devices would not operate properly.

var __INLINE_SCRIPT__ = (function () {
  'use strict';

  function _arrayLikeToArray$1(arr, len) {
    if (len == null || len > arr.length) len = arr.length;
    for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
    return arr2;
  }

  function _arrayWithoutHoles(arr) {
    if (Array.isArray(arr)) return _arrayLikeToArray$1(arr);
  }

  function _iterableToArray(iter) {
    if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
  }

  function _unsupportedIterableToArray$1(o, minLen) {
    if (!o) return;
    if (typeof o === "string") return _arrayLikeToArray$1(o, minLen);
    var n = Object.prototype.toString.call(o).slice(8, -1);
    if (n === "Object" && o.constructor) n = o.constructor.name;
    if (n === "Map" || n === "Set") return Array.from(o);
    if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$1(o, minLen);
  }

  function _nonIterableSpread() {
    throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
  }

  function _toConsumableArray(arr) {
    return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray$1(arr) || _nonIterableSpread();
  }

  function textOverflow(el, binding) {
    var _a, _b;
    var text = el.innerHTML;
    if (!text || !text.length) return;
    var retainTail = [];
    if ((_a = binding.value) === null || _a === void 0 ? void 0 : _a.tailNum) {
      retainTail = Array.from(el.childNodes).slice(-binding.value.tailNum);
    }
    var count = 0;
    function needTextOverflow() {
      var _a;
      if ((_a = binding.value) === null || _a === void 0 ? void 0 : _a.lineClamp) {
        return binding.value.lineClamp < computeLineNum(el);
      }
      return el.offsetHeight < el.scrollHeight;
    }
    if (needTextOverflow()) {
      try {
        var getLeaf = function getLeaf(node) {
          var result = [];
          if (!node.childNodes || node.childNodes.length === 0) {
            return [node];
          }
          node.childNodes.forEach(function (child) {
            result = [].concat(_toConsumableArray(result), _toConsumableArray(getLeaf(child)));
          });
          return result;
        };
        var getFragmentHTML = function getFragmentHTML(frag) {
          var _a, _b;
          var div = document.createDocumentFragment();
          div.appendChild(frag);
          var span = document.createElement('span');
          span.innerHTML = ((_a = binding.value) === null || _a === void 0 ? void 0 : _a.html) || '...';
          if (div.lastElementChild) {
            div.lastElementChild.style.display = 'inline';
          }
          div.appendChild(span);
          el.extraElement = span;
          if ((_b = binding.value) === null || _b === void 0 ? void 0 : _b.tailNum) {
            retainTail.forEach(function (tail) {
              div.appendChild(tail);
            });
          }
          return div;
        };
        var findLastNode = function findLastNode(start, end) {
          if (end - start <= 1) {
            range.setEndAfter(leaves[start]);
            setNewFrag(el, getFragmentHTML(range.cloneContents()));
            return needTextOverflow() ? start : end;
          }
          var mid = start + end >> 1;
          count++;
          range.setEndAfter(leaves[mid]);
          setNewFrag(el, getFragmentHTML(range.cloneContents()));
          return needTextOverflow() ? findLastNode(start, mid) : findLastNode(mid, end);
        };
        var findLastCharIndex = function findLastCharIndex(start, end) {
          if (end - start <= 1) {
            if (start === 0) {
              range.setEndAfter(leaves[Math.max(lastNodeIndex - 1, 0)]);
            } else {
              range.setEnd(lastNode, start);
            }
            setNewFrag(el, getFragmentHTML(range.cloneContents()));
            return start;
          }
          var mid = start + end >> 1;
          count++;
          range.setEnd(lastNode, mid);
          setNewFrag(el, getFragmentHTML(range.cloneContents()));
          return needTextOverflow() ? findLastCharIndex(start, mid) : findLastCharIndex(mid, end);
        };
        var dom = document.createElement('div');
        dom.innerHTML = text;
        var leaves = getLeaf(dom);
        var range = document.createRange();
        range.setStartBefore(leaves[0]);
        var lastNodeIndex = findLastNode(0, leaves.length - 1);
        var lastNode = leaves[lastNodeIndex];
        findLastCharIndex(0, lastNode.textContent.length);
        ((_b = binding.value) === null || _b === void 0 ? void 0 : _b.processExtraElement) && binding.value.processExtraElement(el.extraElement, el);
        console.log(count);
      } catch (error) {
        console.error(error);
      }
    }
  }
  function computeLineNum(el) {
    var computyStyle = getComputedStyle(el);
    return Math.round(el.offsetHeight / parseFloat(computyStyle.lineHeight));
  }
  function removeAllChild(el) {
    var childNodes = Array.from(el.childNodes);
    childNodes.forEach(function (child) {
      el.removeChild(child);
    });
  }
  function setNewFrag(el, frag) {
    removeAllChild(el);
    el.appendChild(frag);
  }

  // ... (rest of the JavaScript code)

  return __setDesc;
})();

Leave a Comment