From a4af640217893051ae41796913a12a77b9b3c173 Mon Sep 17 00:00:00 2001 From: ppisljar Date: Mon, 18 Feb 2019 11:23:25 +0100 Subject: [PATCH] devices 14-22 --- README.md | 2 + build/app.js | 75 +++++++++++++++++++++++---------- build/app.js.map | 2 +- src/devices/14_si7021.js | 5 +++ src/devices/15_tls2561.js | 8 ++++ src/devices/17_pn532.js | 6 +++ src/devices/18_dust.js | 4 ++ src/devices/19_pcf8574.js | 6 +++ src/devices/20_ser2net.js | 17 ++++---- src/devices/21_level_control.js | 1 - src/devices/22_pca9685.js | 10 ++++- 11 files changed, 102 insertions(+), 34 deletions(-) diff --git a/README.md b/README.md index 20f439b..fc072eb 100644 --- a/README.md +++ b/README.md @@ -99,6 +99,8 @@ List of commonly used variables and their arduino code counterpart: - `configs[i]`: `PCONFIG(i)` - `configs_long[i]`: `PCONFIG_LONG(i)` - `configs_float[i]`: `PCONFIG_FLOAT(i)` +- `extra.plugin_config[i]`: `ExtraTaskSettings.TaskDevicePluginConfig[i]` +- `extra.plugin_config_long[i]`: `ExtraTaskSettings.TaskDevicePluginConfigLong[i]` 4) now that your file is complete, you need to import it in `index.js` (in `/src/devices/` folder) diff --git a/build/app.js b/build/app.js index f67b40e..8d479ce 100644 --- a/build/app.js +++ b/build/app.js @@ -4584,6 +4584,11 @@ const resolution = [{ name: 'Temp 11 bits, RH 11 bits' }]; const si7021 = { + defaults: () => ({ + interval: 60, + 'settings.values[0].name': 'Temperature', + 'settings.values[1].name': 'Humidity' + }), sensor: { name: 'Sensor', configs: { @@ -4634,6 +4639,12 @@ const measurmentMode = [{ name: '402 ms' }]; const tls2561 = { + defaults: () => ({ + 'configs[0]': 57, + 'settings.values[0].name': 'Lux', + 'settings.values[1].name': 'Infrared', + 'settings.values[2].name': 'Broadband' + }), sensor: { name: 'Sensor', configs: { @@ -4660,7 +4671,9 @@ const tls2561 = { var: 'configs[3]' } } - } + }, + data: true, + vals: 3 }; /***/ }), @@ -4678,6 +4691,10 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _defs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_defs */ "./src/devices/_defs.js"); const pn532 = { + defaults: () => ({ + gpio1: 255, + 'settings.values[0].name': 'Tag' + }), sensor: { name: 'Sensor', configs: { @@ -4688,7 +4705,9 @@ const pn532 = { var: 'gpio1' } } - } + }, + data: true, + vals: 1 }; /***/ }), @@ -4726,6 +4745,10 @@ const measurmentMode = [{ name: 'RESOLUTION_AUTO_HIGH' }]; const dust = { + defaults: () => ({ + gpio1: 255, + 'settings.values[0].name': 'Dust' + }), sensor: { name: 'Sensor', configs: { @@ -4769,6 +4792,10 @@ const eventTypes = [{ name: 'Active on LOW and HIGH' }]; const pcf8574 = { + defaults: () => ({ + gpio4: 0, + 'settings.values[0].name': 'Switch' + }), sensor: { name: 'Sensor', configs: { @@ -4825,7 +4852,9 @@ const pcf8574 = { var: 'configs_float[3]' } } - } + }, + data: true, + vals: 1 }; /***/ }), @@ -4975,7 +5004,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ser2net", function() { return ser2net; }); /* harmony import */ var _defs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_defs */ "./src/devices/_defs.js"); -const parity = [{ +const serialConfig = [{ value: 0, name: 'No Parity' }, { @@ -4996,45 +5025,38 @@ const eventProcessing = [{ name: 'RFLink' }]; const ser2net = { + defaults: () => ({ + gpio1: 255 + }), sensor: { name: 'Settings', configs: { port: { name: 'TCP Port', type: 'number', - var: 'configs_float[0]' + var: 'extra.plugin_config_long[0]' }, baudrate: { name: 'Baudrate', type: 'number', - var: 'configs_float[0]' + var: 'extra.plugin_config_long[1]' }, - data_bits: { + serial_config: { name: 'Data Bits', - type: 'number', - var: 'configs_float[0]' - }, - parity: { - name: 'Parity', type: 'select', - options: parity, - var: 'configs[0]' - }, - stop_bits: { - name: 'Stop Bits', - type: 'number', - var: 'configs_float[0]' + options: serialConfig, + var: 'configs[2]' }, reset_after_boot: { name: 'Reset target after boot', type: 'select', options: _defs__WEBPACK_IMPORTED_MODULE_0__["pins"], - var: 'configs[1]' + var: 'gpio1' }, timeout: { name: 'RX Receive Timeout', type: 'number', - var: 'configs_float[0]' + var: 'configs[0]' }, event_processing: { name: 'Event Processing', @@ -5079,7 +5101,6 @@ const sensorModel = [{ const levelControl = { defaults: () => ({ gpio1: 255, - interval: 0, 'settings.values[0].name': 'Output' }), sensor: { @@ -5142,6 +5163,12 @@ const i2c_address = [...Array(32)].map((v, i) => ({ name: `0x${(i + 64).toString(16)} (${i + 64})` })); const pca9685 = { + defaults: () => ({ + gpio1: 255, + 'configs_float[0]': 1500, + 'configs_float[1]': 4095, + 'settings.values[0].name': 'Output' + }), sensor: { name: 'Sensor', configs: { @@ -5160,11 +5187,15 @@ const pca9685 = { frequency: { name: 'Frequency (23 - 1500)', type: 'number', + min: 23, + max: 1500, var: 'configs_float[0]' }, range: { name: 'Range (1-10000)', type: 'number', + min: 1, + max: 10000, var: 'configs_float[1]' } } diff --git a/build/app.js.map b/build/app.js.map index 1aacd8c..c257633 100644 --- a/build/app.js.map +++ b/build/app.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/lodash/_Hash.js","webpack:///./node_modules/lodash/_ListCache.js","webpack:///./node_modules/lodash/_Map.js","webpack:///./node_modules/lodash/_MapCache.js","webpack:///./node_modules/lodash/_Symbol.js","webpack:///./node_modules/lodash/_arrayMap.js","webpack:///./node_modules/lodash/_assignValue.js","webpack:///./node_modules/lodash/_assocIndexOf.js","webpack:///./node_modules/lodash/_baseAssignValue.js","webpack:///./node_modules/lodash/_baseGet.js","webpack:///./node_modules/lodash/_baseGetTag.js","webpack:///./node_modules/lodash/_baseIsNative.js","webpack:///./node_modules/lodash/_baseSet.js","webpack:///./node_modules/lodash/_baseToString.js","webpack:///./node_modules/lodash/_castPath.js","webpack:///./node_modules/lodash/_coreJsData.js","webpack:///./node_modules/lodash/_defineProperty.js","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///./node_modules/lodash/_getMapData.js","webpack:///./node_modules/lodash/_getNative.js","webpack:///./node_modules/lodash/_getRawTag.js","webpack:///./node_modules/lodash/_getValue.js","webpack:///./node_modules/lodash/_hashClear.js","webpack:///./node_modules/lodash/_hashDelete.js","webpack:///./node_modules/lodash/_hashGet.js","webpack:///./node_modules/lodash/_hashHas.js","webpack:///./node_modules/lodash/_hashSet.js","webpack:///./node_modules/lodash/_isIndex.js","webpack:///./node_modules/lodash/_isKey.js","webpack:///./node_modules/lodash/_isKeyable.js","webpack:///./node_modules/lodash/_isMasked.js","webpack:///./node_modules/lodash/_listCacheClear.js","webpack:///./node_modules/lodash/_listCacheDelete.js","webpack:///./node_modules/lodash/_listCacheGet.js","webpack:///./node_modules/lodash/_listCacheHas.js","webpack:///./node_modules/lodash/_listCacheSet.js","webpack:///./node_modules/lodash/_mapCacheClear.js","webpack:///./node_modules/lodash/_mapCacheDelete.js","webpack:///./node_modules/lodash/_mapCacheGet.js","webpack:///./node_modules/lodash/_mapCacheHas.js","webpack:///./node_modules/lodash/_mapCacheSet.js","webpack:///./node_modules/lodash/_memoizeCapped.js","webpack:///./node_modules/lodash/_nativeCreate.js","webpack:///./node_modules/lodash/_objectToString.js","webpack:///./node_modules/lodash/_root.js","webpack:///./node_modules/lodash/_stringToPath.js","webpack:///./node_modules/lodash/_toKey.js","webpack:///./node_modules/lodash/_toSource.js","webpack:///./node_modules/lodash/eq.js","webpack:///./node_modules/lodash/get.js","webpack:///./node_modules/lodash/isArray.js","webpack:///./node_modules/lodash/isFunction.js","webpack:///./node_modules/lodash/isObject.js","webpack:///./node_modules/lodash/isObjectLike.js","webpack:///./node_modules/lodash/isSymbol.js","webpack:///./node_modules/lodash/memoize.js","webpack:///./node_modules/lodash/set.js","webpack:///./node_modules/lodash/toString.js","webpack:///./node_modules/mini-toastr/mini-toastr.js","webpack:///./node_modules/preact/dist/preact.mjs","webpack:///(webpack)/buildin/global.js","webpack:///./src/app.js","webpack:///./src/components/espeasy_p2p/index.js","webpack:///./src/components/form/index.js","webpack:///./src/components/menu/index.js","webpack:///./src/components/page/index.js","webpack:///./src/conf/config.dat.js","webpack:///./src/devices/10_light_lux.js","webpack:///./src/devices/11_pme.js","webpack:///./src/devices/12_lcd.js","webpack:///./src/devices/13_hcsr04.js","webpack:///./src/devices/14_si7021.js","webpack:///./src/devices/15_tls2561.js","webpack:///./src/devices/17_pn532.js","webpack:///./src/devices/18_dust.js","webpack:///./src/devices/19_pcf8574.js","webpack:///./src/devices/1_input_switch.js","webpack:///./src/devices/20_ser2net.js","webpack:///./src/devices/21_level_control.js","webpack:///./src/devices/22_pca9685.js","webpack:///./src/devices/23_oled1306.js","webpack:///./src/devices/24_mlx90614.js","webpack:///./src/devices/25_ads1115.js","webpack:///./src/devices/26_system_info.js","webpack:///./src/devices/27_ina219.js","webpack:///./src/devices/28_bmx280.js","webpack:///./src/devices/29_mqtt_domoticz.js","webpack:///./src/devices/2_analog_input.js","webpack:///./src/devices/30_bmp280.js","webpack:///./src/devices/31_sht1x.js","webpack:///./src/devices/32_ms5611.js","webpack:///./src/devices/33_dummy_device.js","webpack:///./src/devices/34_dht12.js","webpack:///./src/devices/36_sh1106.js","webpack:///./src/devices/37_mqtt_import.js","webpack:///./src/devices/38_neopixel_basic.js","webpack:///./src/devices/39_thermocouple.js","webpack:///./src/devices/3_generic_pulse.js","webpack:///./src/devices/41_neopixel_clock.js","webpack:///./src/devices/42_neopixel_candle.js","webpack:///./src/devices/43_output_clock.js","webpack:///./src/devices/44_wifi_gateway.js","webpack:///./src/devices/49_mhz19.js","webpack:///./src/devices/4_ds18b20.js","webpack:///./src/devices/52_senseair.js","webpack:///./src/devices/56_sds011.js","webpack:///./src/devices/59_rotary_encoder.js","webpack:///./src/devices/5_dht.js","webpack:///./src/devices/63_ttp229.js","webpack:///./src/devices/6_bmp085.js","webpack:///./src/devices/7_pcf8591.js","webpack:///./src/devices/8_rfid.js","webpack:///./src/devices/9_io_mcp.js","webpack:///./src/devices/_defs.js","webpack:///./src/devices/index.js","webpack:///./src/lib/espeasy.js","webpack:///./src/lib/floweditor.js","webpack:///./src/lib/helpers.js","webpack:///./src/lib/loader.js","webpack:///./src/lib/menu.js","webpack:///./src/lib/node_definitions.js","webpack:///./src/lib/parser.js","webpack:///./src/lib/plugins.js","webpack:///./src/lib/settings.js","webpack:///./src/pages/config.advanced.js","webpack:///./src/pages/config.hardware.js","webpack:///./src/pages/config.js","webpack:///./src/pages/controllers.edit.js","webpack:///./src/pages/controllers.js","webpack:///./src/pages/controllers.notifications.js","webpack:///./src/pages/devices.edit.js","webpack:///./src/pages/devices.js","webpack:///./src/pages/diff.js","webpack:///./src/pages/discover.js","webpack:///./src/pages/factory_reset.js","webpack:///./src/pages/fs.js","webpack:///./src/pages/index.js","webpack:///./src/pages/load.js","webpack:///./src/pages/reboot.js","webpack:///./src/pages/rules.editor.js","webpack:///./src/pages/rules.js","webpack:///./src/pages/setup.js","webpack:///./src/pages/tools.js","webpack:///./src/pages/tools.sysvars.js","webpack:///./src/pages/update.js"],"names":["miniToastr","init","clearSlashes","path","toString","replace","getFragment","match","window","location","href","fragment","App","Component","constructor","state","menuActive","menu","menus","page","changed","menuToggle","setState","render","props","params","split","slice","active","componentDidMount","loader","hide","current","fn","newFragment","diff","settings","length","parts","m","find","routes","route","interval","setInterval","componentWillUnmount","load","loadConfig","loadPlugins","document","body","EspEaspP2PComponent","nodes","refresh","fetch","then","res","json","map","node","first","name","ip","Form","onChange","id","prop","config","e","val","form","elements","value","type","checked","parseFloat","isNaN","parseInt","startsWith","set","selected","renderConfig","varName","min","max","options","option","Object","clickEvent","click","renderConfigGroup","configs","values","configArray","Array","isArray","conf","i","varId","var","get","if","CustomComponent","component","renderGroup","group","keys","getKeys","key","groups","ref","Menu","renderMenuItem","action","title","children","child","open","Page","PageComponent","pagetitle","class","TASKS_MAX","NOTIFICATION_MAX","CONTROLLER_MAX","PLUGIN_CONFIGVAR_MAX","PLUGIN_CONFIGFLOATVAR_MAX","PLUGIN_CONFIGLONGVAR_MAX","PLUGIN_EXTRACONFIGVAR_MAX","NAME_FORMULA_LENGTH_MAX","VARS_PER_TASK","configDatParseConfig","signed","x","flat","TaskSettings","ControllerSettings","NotificationSettings","SecuritySettings","response","arrayBuffer","parseConfig","tasks","extra","controllers","notificationResponse","notifications","securityResponse","security","binary","Uint8Array","console","log","ii","saveConfig","save","buffer","ArrayBuffer","writeConfig","saveData","bufferNotifications","bufferSecurity","a","createElement","appendChild","style","data","fileName","blob","Blob","url","URL","createObjectURL","download","revokeObjectURL","i2c_address","measurmentMode","bh1750","defaults","sensor","mode","send_to_sleep","vals","pme","port","displaySize","lcdCommand","lcd2004","size","line1","line2","line3","line4","button","pins","timeout","command","units","filters","hcsr04","gpio1","gpio2","treshold","max_distance","unit","filter","filter_size","resolution","si7021","tls2561","gain","pn532","dust","eventTypes","pcf8574","inversed","send_boot_state","advanced","debounce","dblclick","dblclick_interval","longpress","longpress_interval","safe_button","inputSwitch","pullup","gpio","switch_type","switch_button_type","parity","eventProcessing","ser2net","baudrate","data_bits","stop_bits","reset_after_boot","event_processing","sensorModel","levelControl","check_task","getTasks","check_value","getTaskValues","level","hysteresis","v","pca9685","frequency","range","oled1306","rotation","font","line5","line6","line7","line8","mlx90614","gainOptions","multiplexerOptions","ads1115","multiplexer","enabled","point1","point2","indicator","systemInfo","indicator1","measurmentRange","measurmentType","ina219","bmx280","ValueCount","SendDataOption","TimerOption","TimerOptional","GlobalSync","altitude","offset","mqttDomoticz","idx","analogInput","oversampling","bmp280","sht1x","ms5611","dummyDevice","dht12","sh1106","mqttImport","neopixelBasic","leds","thermocouple","modeTypes","counterTypes","genericPulse","counter_type","mode_type","neopixelClock","R","G","B","neopixelCandle","clock","event1","event2","event3","event4","event5","event6","event7","event8","wifiGateway","mhz19","ds18b20","senseAir","sds011","rotaryEncoder","gpio3","limit_min","limit_max","dht","ttp229","scancode","bmp085","pcf8591","vars","weigandType","rfidWeigand","inputMcp","gpio4","task","index","devices","fields","sort","b","localeCompare","getJsonStat","loadDevices","Sensors","getConfigNodes","device","taskValues","TaskValues","push","TaskName","Name","result","TaskNumber","Type","inputs","outputs","indent","comparison","toDsl","fnNames","fnName","findIndex","getVariables","urls","Promise","all","stat","System","Value","getDashboardConfigNodes","fetchProgress","opts","rej","xhr","XMLHttpRequest","method","k","headers","setRequestHeader","onload","target","responseText","onerror","upload","onProgress","onprogress","send","storeFile","filename","show","file","File","formData","FormData","append","success","error","message","deleteFile","storeDashboardConfig","loadDashboardConfig","storeRuleConfig","loadRuleConfig","storeRule","rule","color","saveChart","renderedNodes","triggers","trigger","walkRule","t","o","out","lines","line","input","nodeObject","c","position","y","loadChart","chart","from","n","configNode","NodeUI","canvas","cfg","fromDimension","getBoundingClientRect","toDimension","lineSvg","svgArrow","clientWidth","clientHeight","element","x1","width","y1","height","x2","y2","setPath","connection","output","svg","start","end","outputI","exportChart","r","rules","ruleset","padding","outI","subrule","trim","join","includes","dNd","enableNativeDrag","nodeElement","draggable","ondragstart","ev","dataTransfer","setData","enableNativeDrop","ondragover","preventDefault","ondrop","fill","createElementNS","setAttribute","setAttributeNS","tension","delta","hx1","hy1","hx2","hy2","Node","assign","toHtml","linesEnd","updateInputsOutputs","rect","handleMoveEvent","canEdit","shiftX","clientX","left","shiftY","clientY","top","onMouseMove","newy","newx","gridSize","onMouseUp","removeEventListener","addEventListener","handleDblClickEvent","showConfigBox","text","innerHTML","textContent","handleRightClickEvent","parentNode","removeChild","indexOf","splice","destroy","stopPropagation","className","onmousedown","oncontextmenu","rects","pageX","pageY","elemBelow","elementFromPoint","closest","remove","inputRect","ondblclick","bind","getCfgUI","template","getSelectOptions","content","cloneNode","onclose","configBox","querySelectorAll","okButton","getElementById","cancelButton","onclick","forms","cfgUI","FlowEditor","onSave","readOnly","debug","nodeConfig","getData","renderContainers","sidebar","saveBtn","JSON","stringify","loadBtn","prompt","parse","exportBtn","exported","renderConfigNodes","object","hasOwnProperty","Loader","querySelector","classList","add","setTimeout","Menus","addMenu","addRoute","forEach","DevicesPage","ControllersPage","RulesEditorPage","ConfigPage","ConfigHardwarePage","ConfigAdvancedPage","RulesPage","LoadPage","RebootPage","FactoryResetPage","ToolsPage","DiscoverPage","SysVarsPage","UpdatePage","FSPage","ControllerEditPage","ControllerNotificationsPage","DevicesEditPage","DiffPage","SetupPage","DataParser","view","DataView","bitbyte","bitbytepos","pad","nr","bit","write","byte","int16","int32","float","setFloat32","getFloat32","bytes","ints","longs","floats","string","code","charCodeAt","String","fromCharCode","apply","p","PLUGINS","dynamicallyLoadScript","resolve","script","src","onreadystatechange","head","getPluginAPI","espeasy","plugin","obj1","obj2","val1","val2","Settings","obj","warn","stored","settings1","logLevelOptions","formConfig","oldengine","mqtt","retain_flag","useunitname","changeclientid","ntp","host","dst","long","lat","syslog_ip","syslog_level","syslog_facility","serial_level","web_level","serial","experimental","ip_octet","WDI2CAddress","ssdp","ConnectionFailuresThreshold","WireClockStretchLimit","pinState","led","inverse","reset","pin","i2c","sda","scl","spi","ipBlockLevel","general","unitname","unitnr","appendunit","password","wifi","ssid","passwd","fallbackssid","fallbackpasswd","wpaapmode","clientIP","blocklevel","lowerrange","upperrange","IP","gw","subnet","dns","sleep","awaketime","sleeptime","sleeponfailiure","protocols","baseFields","hostname","minimal_time_between","max_queue_depth","max_retry","delete_oldest","must_check_reply","client_timeout","user","subscribe","publish","lwtTopicField","MQTT_lwt_topic","lwt_message_connect","lwt_message_disconnect","baseDefaults","getDefaults","public","Custom","setDefaultConfig","getFormConfig","additionalFields","additionalGroups","Number","global","protocol","currentTarget","editUrl","types","domain","sender","receiver","subject","pass","pin1","d","dataAcquisitionForm","send1","send2","send3","idx1","idx2","idx3","reduce","acc","groupKey","configKey","defaultConfig","alert","handleEnableToggle","dataset","deviceType","enabledProp","stage","calculateByteDiff","bytediffcount","bytediff","applyChanges","__html","change","formula","scani2c","scanwifi","keep","network","delete","files","saveForm","fileList","endsWith","hash","reload","unshift","ifElseNode","loaded","selectionChanged","saveRule","componentDidUpdate","WifiSSID","WifiKey","ssd","history","sendCommand","cmd","cmdOutput","Log","Entries","Date","timestamp","toLocaleTimeString","scrollTop","scrollHeight","clearInterval","v1","value1","progress","perc","total","Math","round"],"mappings":"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;;;;;;;;;ACZA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7BA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtBA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtBA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACxBA,cAAc,mBAAO,CAAC,mDAAW;AACjC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACdA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACZA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AClCA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;AClBA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA,WAAW,mBAAO,CAAC,+CAAS;AAC5B,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,UAAU,mBAAO,CAAC,6CAAQ;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpBA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACrBA,cAAc,mBAAO,CAAC,mDAAW;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA,gBAAgB,mBAAO,CAAC,yDAAc;;AAEtC;AACA;;AAEA;;;;;;;;;;;;ACLA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACrBA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;ACRA,oBAAoB,mBAAO,CAAC,iEAAkB;;AAE9C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;;;;;;;;;;;;AC1BA,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpBA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA,cAAc,mBAAO,CAAC,qDAAY;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA,iBAAiB,QAAQ,OAAO,SAAS,EAAE;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5BA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5BA,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;ACxEA,cAAc,mBAAO,CAAC,qDAAY;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA,iBAAiB,QAAQ,OAAO,SAAS,EAAE;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AClCA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;AC3BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO;AACP;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEO;;AAEA;AACA;AACA;AACA;AACA;AACA,8BAA8B,SAAS;AACvC,uBAAuB,SAAS;AAChC,sBAAsB,SAAS;AAC/B,yBAAyB,SAAS;AAClC,wBAAwB,MAAM;AAC9B,uBAAuB,KAAK;AAC5B,0BAA0B,QAAQ;AAClC,uBAAuB,KAAK;AAC5B;;AAEP;;AAEO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;AACA,iCAAiC,SAAS;AAC1C;AACA,oDAAoD;AACpD,eAAe,OAAO;AACtB;;AAEA,wCAAwC;;AAExC;AACA;;AAEO;AACP;AACA;AACA,oBAAoB,SAAS;AAC7B;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEO;AACP,UAAU,2BAA2B;AACrC;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,SAAS,gBAAgB;AACzB;AACA;AACA;AACA;AACA,KAAK;AACL,SAAS,mBAAmB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA,OAAO;AACP,YAAY,WAAW;AACvB;AACA,OAAO;AACP,YAAY,cAAc;AAC1B;AACA,OAAO;AACP,YAAY,WAAW;AACvB;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL,SAAS,YAAY;AACrB;AACA,KAAK;AACL,SAAS,cAAc;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC,mBAAmB,GAAG,mBAAmB;;AAE7E;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA,+BAA+B;AAC/B;AACA;;AAEe,yE;;;;;;;;;;;;AC3Of;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,KAAK;AAC9B;AACA;AACA,GAAG;AACH;;AAEA;AACA,kCAAkC,0DAA0D;AAC5F;;AAEA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,6CAA6C;AAC7C;AACA;;AAEA;;AAEA;AACA,2CAA2C;AAC3C;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,sBAAsB;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,uBAAuB;AACvB;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,2CAA2C;AAC3C,EAAE;AACF;AACA;AACA,GAAG;AACH;AACA,EAAE;AACF;;AAEA;AACA,sFAAsF;AACtF,GAAG;AACH,0FAA0F;AAC1F;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C,KAAK;AACjD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,UAAU;AAC3B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,6BAA6B;AAC7B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AAC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","file":"app.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/app.js\");\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var assignValue = require('./_assignValue'),\n castPath = require('./_castPath'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nmodule.exports = baseSet;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var baseSet = require('./_baseSet');\n\n/**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\nfunction set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n}\n\nmodule.exports = set;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","export function fadeOut (element, cb) {\n if (element.style.opacity && element.style.opacity > 0.05) {\n element.style.opacity = element.style.opacity - 0.05\n } else if (element.style.opacity && element.style.opacity <= 0.1) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n if (cb) cb()\n }\n } else {\n element.style.opacity = 0.9\n }\n setTimeout(() => fadeOut.apply(this, [element, cb]), 1000 / 30\n )\n}\n\nexport const LIB_NAME = 'mini-toastr'\n\nexport const ERROR = 'error'\nexport const WARN = 'warn'\nexport const SUCCESS = 'success'\nexport const INFO = 'info'\nexport const CONTAINER_CLASS = LIB_NAME\nexport const NOTIFICATION_CLASS = `${LIB_NAME}__notification`\nexport const TITLE_CLASS = `${LIB_NAME}-notification__title`\nexport const ICON_CLASS = `${LIB_NAME}-notification__icon`\nexport const MESSAGE_CLASS = `${LIB_NAME}-notification__message`\nexport const ERROR_CLASS = `-${ERROR}`\nexport const WARN_CLASS = `-${WARN}`\nexport const SUCCESS_CLASS = `-${SUCCESS}`\nexport const INFO_CLASS = `-${INFO}`\nexport const DEFAULT_TIMEOUT = 3000\n\nconst EMPTY_STRING = ''\n\nexport function flatten (obj, into, prefix) {\n into = into || {}\n prefix = prefix || EMPTY_STRING\n\n for (const k in obj) {\n if (obj.hasOwnProperty(k)) {\n const prop = obj[k]\n if (prop && typeof prop === 'object' && !(prop instanceof Date || prop instanceof RegExp)) {\n flatten(prop, into, prefix + k + ' ')\n } else {\n if (into[prefix] && typeof into[prefix] === 'object') {\n into[prefix][k] = prop\n } else {\n into[prefix] = {}\n into[prefix][k] = prop\n }\n }\n }\n }\n\n return into\n}\n\nexport function makeCss (obj) {\n const flat = flatten(obj)\n let str = JSON.stringify(flat, null, 2)\n str = str.replace(/\"([^\"]*)\": {/g, '$1 {')\n .replace(/\"([^\"]*)\"/g, '$1')\n .replace(/(\\w*-?\\w*): ([\\w\\d .#]*),?/g, '$1: $2;')\n .replace(/},/g, '}\\n')\n .replace(/ &([.:])/g, '$1')\n\n str = str.substr(1, str.lastIndexOf('}') - 1)\n\n return str\n}\n\nexport function appendStyles (css) {\n let head = document.head || document.getElementsByTagName('head')[0]\n let styleElem = makeNode('style')\n styleElem.id = `${LIB_NAME}-styles`\n styleElem.type = 'text/css'\n\n if (styleElem.styleSheet) {\n styleElem.styleSheet.cssText = css\n } else {\n styleElem.appendChild(document.createTextNode(css))\n }\n\n head.appendChild(styleElem)\n}\n\nexport const config = {\n types: {ERROR, WARN, SUCCESS, INFO},\n animation: fadeOut,\n timeout: DEFAULT_TIMEOUT,\n icons: {},\n appendTarget: document.body,\n node: makeNode(),\n allowHtml: false,\n style: {\n [`.${CONTAINER_CLASS}`]: {\n position: 'fixed',\n 'z-index': 99999,\n right: '12px',\n top: '12px'\n },\n [`.${NOTIFICATION_CLASS}`]: {\n cursor: 'pointer',\n padding: '12px 18px',\n margin: '0 0 6px 0',\n 'background-color': '#000',\n opacity: 0.8,\n color: '#fff',\n 'border-radius': '3px',\n 'box-shadow': '#3c3b3b 0 0 12px',\n width: '300px',\n [`&.${ERROR_CLASS}`]: {\n 'background-color': '#D5122B'\n },\n [`&.${WARN_CLASS}`]: {\n 'background-color': '#F5AA1E'\n },\n [`&.${SUCCESS_CLASS}`]: {\n 'background-color': '#7AC13E'\n },\n [`&.${INFO_CLASS}`]: {\n 'background-color': '#4196E1'\n },\n '&:hover': {\n opacity: 1,\n 'box-shadow': '#000 0 0 12px'\n }\n },\n [`.${TITLE_CLASS}`]: {\n 'font-weight': '500'\n },\n [`.${MESSAGE_CLASS}`]: {\n display: 'inline-block',\n 'vertical-align': 'middle',\n width: '240px',\n padding: '0 12px'\n }\n }\n}\n\nexport function makeNode (type = 'div') {\n return document.createElement(type)\n}\n\nexport function createIcon (node, type, config) {\n const iconNode = makeNode(config.icons[type].nodeType)\n const attrs = config.icons[type].attrs\n\n for (const k in attrs) {\n if (attrs.hasOwnProperty(k)) {\n iconNode.setAttribute(k, attrs[k])\n }\n }\n\n node.appendChild(iconNode)\n}\n\nexport function addElem (node, text, className, config) {\n const elem = makeNode()\n elem.className = className\n if (config.allowHtml) {\n elem.innerHTML = text\n } else {\n elem.appendChild(document.createTextNode(text))\n }\n node.appendChild(elem)\n}\n\nexport function getTypeClass (type) {\n if (type === SUCCESS) return SUCCESS_CLASS\n if (type === WARN) return WARN_CLASS\n if (type === ERROR) return ERROR_CLASS\n if (type === INFO) return INFO_CLASS\n\n return EMPTY_STRING\n}\n\nconst miniToastr = {\n config,\n isInitialised: false,\n showMessage (message, title, type, timeout, cb, overrideConf) {\n const config = {}\n Object.assign(config, this.config)\n Object.assign(config, overrideConf)\n\n const notificationElem = makeNode()\n notificationElem.className = `${NOTIFICATION_CLASS} ${getTypeClass(type)}`\n\n notificationElem.onclick = function () {\n config.animation(notificationElem, null)\n }\n\n if (title) addElem(notificationElem, title, TITLE_CLASS, config)\n if (config.icons[type]) createIcon(notificationElem, type, config)\n if (message) addElem(notificationElem, message, MESSAGE_CLASS, config)\n\n config.node.insertBefore(notificationElem, config.node.firstChild)\n setTimeout(() => config.animation(notificationElem, cb), timeout || config.timeout\n )\n\n if (cb) cb()\n return this\n },\n init (aConfig) {\n const newConfig = {}\n Object.assign(newConfig, config)\n Object.assign(newConfig, aConfig)\n this.config = newConfig\n\n const cssStr = makeCss(newConfig.style)\n appendStyles(cssStr)\n\n newConfig.node.id = CONTAINER_CLASS\n newConfig.node.className = CONTAINER_CLASS\n newConfig.appendTarget.appendChild(newConfig.node)\n\n Object.keys(newConfig.types).forEach(v => {\n this[newConfig.types[v]] = function (message, title, timeout, cb, config) {\n this.showMessage(message, title, newConfig.types[v], timeout, cb, config)\n return this\n }.bind(this)\n }\n )\n\n this.isInitialised = true\n\n return this\n },\n setIcon (type, nodeType = 'i', attrs = []) {\n attrs.class = attrs.class ? attrs.class + ' ' + ICON_CLASS : ICON_CLASS\n\n this.config.icons[type] = {nodeType, attrs}\n }\n}\n\nexport default miniToastr","var VNode = function VNode() {};\n\nvar options = {};\n\nvar stack = [];\n\nvar EMPTY_CHILDREN = [];\n\nfunction h(nodeName, attributes) {\n\tvar children = EMPTY_CHILDREN,\n\t lastSimple,\n\t child,\n\t simple,\n\t i;\n\tfor (i = arguments.length; i-- > 2;) {\n\t\tstack.push(arguments[i]);\n\t}\n\tif (attributes && attributes.children != null) {\n\t\tif (!stack.length) stack.push(attributes.children);\n\t\tdelete attributes.children;\n\t}\n\twhile (stack.length) {\n\t\tif ((child = stack.pop()) && child.pop !== undefined) {\n\t\t\tfor (i = child.length; i--;) {\n\t\t\t\tstack.push(child[i]);\n\t\t\t}\n\t\t} else {\n\t\t\tif (typeof child === 'boolean') child = null;\n\n\t\t\tif (simple = typeof nodeName !== 'function') {\n\t\t\t\tif (child == null) child = '';else if (typeof child === 'number') child = String(child);else if (typeof child !== 'string') simple = false;\n\t\t\t}\n\n\t\t\tif (simple && lastSimple) {\n\t\t\t\tchildren[children.length - 1] += child;\n\t\t\t} else if (children === EMPTY_CHILDREN) {\n\t\t\t\tchildren = [child];\n\t\t\t} else {\n\t\t\t\tchildren.push(child);\n\t\t\t}\n\n\t\t\tlastSimple = simple;\n\t\t}\n\t}\n\n\tvar p = new VNode();\n\tp.nodeName = nodeName;\n\tp.children = children;\n\tp.attributes = attributes == null ? undefined : attributes;\n\tp.key = attributes == null ? undefined : attributes.key;\n\n\tif (options.vnode !== undefined) options.vnode(p);\n\n\treturn p;\n}\n\nfunction extend(obj, props) {\n for (var i in props) {\n obj[i] = props[i];\n }return obj;\n}\n\nfunction applyRef(ref, value) {\n if (ref != null) {\n if (typeof ref == 'function') ref(value);else ref.current = value;\n }\n}\n\nvar defer = typeof Promise == 'function' ? Promise.resolve().then.bind(Promise.resolve()) : setTimeout;\n\nfunction cloneElement(vnode, props) {\n return h(vnode.nodeName, extend(extend({}, vnode.attributes), props), arguments.length > 2 ? [].slice.call(arguments, 2) : vnode.children);\n}\n\nvar IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i;\n\nvar items = [];\n\nfunction enqueueRender(component) {\n\tif (!component._dirty && (component._dirty = true) && items.push(component) == 1) {\n\t\t(options.debounceRendering || defer)(rerender);\n\t}\n}\n\nfunction rerender() {\n\tvar p;\n\twhile (p = items.pop()) {\n\t\tif (p._dirty) renderComponent(p);\n\t}\n}\n\nfunction isSameNodeType(node, vnode, hydrating) {\n\tif (typeof vnode === 'string' || typeof vnode === 'number') {\n\t\treturn node.splitText !== undefined;\n\t}\n\tif (typeof vnode.nodeName === 'string') {\n\t\treturn !node._componentConstructor && isNamedNode(node, vnode.nodeName);\n\t}\n\treturn hydrating || node._componentConstructor === vnode.nodeName;\n}\n\nfunction isNamedNode(node, nodeName) {\n\treturn node.normalizedNodeName === nodeName || node.nodeName.toLowerCase() === nodeName.toLowerCase();\n}\n\nfunction getNodeProps(vnode) {\n\tvar props = extend({}, vnode.attributes);\n\tprops.children = vnode.children;\n\n\tvar defaultProps = vnode.nodeName.defaultProps;\n\tif (defaultProps !== undefined) {\n\t\tfor (var i in defaultProps) {\n\t\t\tif (props[i] === undefined) {\n\t\t\t\tprops[i] = defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn props;\n}\n\nfunction createNode(nodeName, isSvg) {\n\tvar node = isSvg ? document.createElementNS('http://www.w3.org/2000/svg', nodeName) : document.createElement(nodeName);\n\tnode.normalizedNodeName = nodeName;\n\treturn node;\n}\n\nfunction removeNode(node) {\n\tvar parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n\nfunction setAccessor(node, name, old, value, isSvg) {\n\tif (name === 'className') name = 'class';\n\n\tif (name === 'key') {} else if (name === 'ref') {\n\t\tapplyRef(old, null);\n\t\tapplyRef(value, node);\n\t} else if (name === 'class' && !isSvg) {\n\t\tnode.className = value || '';\n\t} else if (name === 'style') {\n\t\tif (!value || typeof value === 'string' || typeof old === 'string') {\n\t\t\tnode.style.cssText = value || '';\n\t\t}\n\t\tif (value && typeof value === 'object') {\n\t\t\tif (typeof old !== 'string') {\n\t\t\t\tfor (var i in old) {\n\t\t\t\t\tif (!(i in value)) node.style[i] = '';\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (var i in value) {\n\t\t\t\tnode.style[i] = typeof value[i] === 'number' && IS_NON_DIMENSIONAL.test(i) === false ? value[i] + 'px' : value[i];\n\t\t\t}\n\t\t}\n\t} else if (name === 'dangerouslySetInnerHTML') {\n\t\tif (value) node.innerHTML = value.__html || '';\n\t} else if (name[0] == 'o' && name[1] == 'n') {\n\t\tvar useCapture = name !== (name = name.replace(/Capture$/, ''));\n\t\tname = name.toLowerCase().substring(2);\n\t\tif (value) {\n\t\t\tif (!old) node.addEventListener(name, eventProxy, useCapture);\n\t\t} else {\n\t\t\tnode.removeEventListener(name, eventProxy, useCapture);\n\t\t}\n\t\t(node._listeners || (node._listeners = {}))[name] = value;\n\t} else if (name !== 'list' && name !== 'type' && !isSvg && name in node) {\n\t\ttry {\n\t\t\tnode[name] = value == null ? '' : value;\n\t\t} catch (e) {}\n\t\tif ((value == null || value === false) && name != 'spellcheck') node.removeAttribute(name);\n\t} else {\n\t\tvar ns = isSvg && name !== (name = name.replace(/^xlink:?/, ''));\n\n\t\tif (value == null || value === false) {\n\t\t\tif (ns) node.removeAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase());else node.removeAttribute(name);\n\t\t} else if (typeof value !== 'function') {\n\t\t\tif (ns) node.setAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase(), value);else node.setAttribute(name, value);\n\t\t}\n\t}\n}\n\nfunction eventProxy(e) {\n\treturn this._listeners[e.type](options.event && options.event(e) || e);\n}\n\nvar mounts = [];\n\nvar diffLevel = 0;\n\nvar isSvgMode = false;\n\nvar hydrating = false;\n\nfunction flushMounts() {\n\tvar c;\n\twhile (c = mounts.shift()) {\n\t\tif (options.afterMount) options.afterMount(c);\n\t\tif (c.componentDidMount) c.componentDidMount();\n\t}\n}\n\nfunction diff(dom, vnode, context, mountAll, parent, componentRoot) {\n\tif (!diffLevel++) {\n\t\tisSvgMode = parent != null && parent.ownerSVGElement !== undefined;\n\n\t\thydrating = dom != null && !('__preactattr_' in dom);\n\t}\n\n\tvar ret = idiff(dom, vnode, context, mountAll, componentRoot);\n\n\tif (parent && ret.parentNode !== parent) parent.appendChild(ret);\n\n\tif (! --diffLevel) {\n\t\thydrating = false;\n\n\t\tif (!componentRoot) flushMounts();\n\t}\n\n\treturn ret;\n}\n\nfunction idiff(dom, vnode, context, mountAll, componentRoot) {\n\tvar out = dom,\n\t prevSvgMode = isSvgMode;\n\n\tif (vnode == null || typeof vnode === 'boolean') vnode = '';\n\n\tif (typeof vnode === 'string' || typeof vnode === 'number') {\n\t\tif (dom && dom.splitText !== undefined && dom.parentNode && (!dom._component || componentRoot)) {\n\t\t\tif (dom.nodeValue != vnode) {\n\t\t\t\tdom.nodeValue = vnode;\n\t\t\t}\n\t\t} else {\n\t\t\tout = document.createTextNode(vnode);\n\t\t\tif (dom) {\n\t\t\t\tif (dom.parentNode) dom.parentNode.replaceChild(out, dom);\n\t\t\t\trecollectNodeTree(dom, true);\n\t\t\t}\n\t\t}\n\n\t\tout['__preactattr_'] = true;\n\n\t\treturn out;\n\t}\n\n\tvar vnodeName = vnode.nodeName;\n\tif (typeof vnodeName === 'function') {\n\t\treturn buildComponentFromVNode(dom, vnode, context, mountAll);\n\t}\n\n\tisSvgMode = vnodeName === 'svg' ? true : vnodeName === 'foreignObject' ? false : isSvgMode;\n\n\tvnodeName = String(vnodeName);\n\tif (!dom || !isNamedNode(dom, vnodeName)) {\n\t\tout = createNode(vnodeName, isSvgMode);\n\n\t\tif (dom) {\n\t\t\twhile (dom.firstChild) {\n\t\t\t\tout.appendChild(dom.firstChild);\n\t\t\t}\n\t\t\tif (dom.parentNode) dom.parentNode.replaceChild(out, dom);\n\n\t\t\trecollectNodeTree(dom, true);\n\t\t}\n\t}\n\n\tvar fc = out.firstChild,\n\t props = out['__preactattr_'],\n\t vchildren = vnode.children;\n\n\tif (props == null) {\n\t\tprops = out['__preactattr_'] = {};\n\t\tfor (var a = out.attributes, i = a.length; i--;) {\n\t\t\tprops[a[i].name] = a[i].value;\n\t\t}\n\t}\n\n\tif (!hydrating && vchildren && vchildren.length === 1 && typeof vchildren[0] === 'string' && fc != null && fc.splitText !== undefined && fc.nextSibling == null) {\n\t\tif (fc.nodeValue != vchildren[0]) {\n\t\t\tfc.nodeValue = vchildren[0];\n\t\t}\n\t} else if (vchildren && vchildren.length || fc != null) {\n\t\t\tinnerDiffNode(out, vchildren, context, mountAll, hydrating || props.dangerouslySetInnerHTML != null);\n\t\t}\n\n\tdiffAttributes(out, vnode.attributes, props);\n\n\tisSvgMode = prevSvgMode;\n\n\treturn out;\n}\n\nfunction innerDiffNode(dom, vchildren, context, mountAll, isHydrating) {\n\tvar originalChildren = dom.childNodes,\n\t children = [],\n\t keyed = {},\n\t keyedLen = 0,\n\t min = 0,\n\t len = originalChildren.length,\n\t childrenLen = 0,\n\t vlen = vchildren ? vchildren.length : 0,\n\t j,\n\t c,\n\t f,\n\t vchild,\n\t child;\n\n\tif (len !== 0) {\n\t\tfor (var i = 0; i < len; i++) {\n\t\t\tvar _child = originalChildren[i],\n\t\t\t props = _child['__preactattr_'],\n\t\t\t key = vlen && props ? _child._component ? _child._component.__key : props.key : null;\n\t\t\tif (key != null) {\n\t\t\t\tkeyedLen++;\n\t\t\t\tkeyed[key] = _child;\n\t\t\t} else if (props || (_child.splitText !== undefined ? isHydrating ? _child.nodeValue.trim() : true : isHydrating)) {\n\t\t\t\tchildren[childrenLen++] = _child;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (vlen !== 0) {\n\t\tfor (var i = 0; i < vlen; i++) {\n\t\t\tvchild = vchildren[i];\n\t\t\tchild = null;\n\n\t\t\tvar key = vchild.key;\n\t\t\tif (key != null) {\n\t\t\t\tif (keyedLen && keyed[key] !== undefined) {\n\t\t\t\t\tchild = keyed[key];\n\t\t\t\t\tkeyed[key] = undefined;\n\t\t\t\t\tkeyedLen--;\n\t\t\t\t}\n\t\t\t} else if (min < childrenLen) {\n\t\t\t\t\tfor (j = min; j < childrenLen; j++) {\n\t\t\t\t\t\tif (children[j] !== undefined && isSameNodeType(c = children[j], vchild, isHydrating)) {\n\t\t\t\t\t\t\tchild = c;\n\t\t\t\t\t\t\tchildren[j] = undefined;\n\t\t\t\t\t\t\tif (j === childrenLen - 1) childrenLen--;\n\t\t\t\t\t\t\tif (j === min) min++;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\tchild = idiff(child, vchild, context, mountAll);\n\n\t\t\tf = originalChildren[i];\n\t\t\tif (child && child !== dom && child !== f) {\n\t\t\t\tif (f == null) {\n\t\t\t\t\tdom.appendChild(child);\n\t\t\t\t} else if (child === f.nextSibling) {\n\t\t\t\t\tremoveNode(f);\n\t\t\t\t} else {\n\t\t\t\t\tdom.insertBefore(child, f);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif (keyedLen) {\n\t\tfor (var i in keyed) {\n\t\t\tif (keyed[i] !== undefined) recollectNodeTree(keyed[i], false);\n\t\t}\n\t}\n\n\twhile (min <= childrenLen) {\n\t\tif ((child = children[childrenLen--]) !== undefined) recollectNodeTree(child, false);\n\t}\n}\n\nfunction recollectNodeTree(node, unmountOnly) {\n\tvar component = node._component;\n\tif (component) {\n\t\tunmountComponent(component);\n\t} else {\n\t\tif (node['__preactattr_'] != null) applyRef(node['__preactattr_'].ref, null);\n\n\t\tif (unmountOnly === false || node['__preactattr_'] == null) {\n\t\t\tremoveNode(node);\n\t\t}\n\n\t\tremoveChildren(node);\n\t}\n}\n\nfunction removeChildren(node) {\n\tnode = node.lastChild;\n\twhile (node) {\n\t\tvar next = node.previousSibling;\n\t\trecollectNodeTree(node, true);\n\t\tnode = next;\n\t}\n}\n\nfunction diffAttributes(dom, attrs, old) {\n\tvar name;\n\n\tfor (name in old) {\n\t\tif (!(attrs && attrs[name] != null) && old[name] != null) {\n\t\t\tsetAccessor(dom, name, old[name], old[name] = undefined, isSvgMode);\n\t\t}\n\t}\n\n\tfor (name in attrs) {\n\t\tif (name !== 'children' && name !== 'innerHTML' && (!(name in old) || attrs[name] !== (name === 'value' || name === 'checked' ? dom[name] : old[name]))) {\n\t\t\tsetAccessor(dom, name, old[name], old[name] = attrs[name], isSvgMode);\n\t\t}\n\t}\n}\n\nvar recyclerComponents = [];\n\nfunction createComponent(Ctor, props, context) {\n\tvar inst,\n\t i = recyclerComponents.length;\n\n\tif (Ctor.prototype && Ctor.prototype.render) {\n\t\tinst = new Ctor(props, context);\n\t\tComponent.call(inst, props, context);\n\t} else {\n\t\tinst = new Component(props, context);\n\t\tinst.constructor = Ctor;\n\t\tinst.render = doRender;\n\t}\n\n\twhile (i--) {\n\t\tif (recyclerComponents[i].constructor === Ctor) {\n\t\t\tinst.nextBase = recyclerComponents[i].nextBase;\n\t\t\trecyclerComponents.splice(i, 1);\n\t\t\treturn inst;\n\t\t}\n\t}\n\n\treturn inst;\n}\n\nfunction doRender(props, state, context) {\n\treturn this.constructor(props, context);\n}\n\nfunction setComponentProps(component, props, renderMode, context, mountAll) {\n\tif (component._disable) return;\n\tcomponent._disable = true;\n\n\tcomponent.__ref = props.ref;\n\tcomponent.__key = props.key;\n\tdelete props.ref;\n\tdelete props.key;\n\n\tif (typeof component.constructor.getDerivedStateFromProps === 'undefined') {\n\t\tif (!component.base || mountAll) {\n\t\t\tif (component.componentWillMount) component.componentWillMount();\n\t\t} else if (component.componentWillReceiveProps) {\n\t\t\tcomponent.componentWillReceiveProps(props, context);\n\t\t}\n\t}\n\n\tif (context && context !== component.context) {\n\t\tif (!component.prevContext) component.prevContext = component.context;\n\t\tcomponent.context = context;\n\t}\n\n\tif (!component.prevProps) component.prevProps = component.props;\n\tcomponent.props = props;\n\n\tcomponent._disable = false;\n\n\tif (renderMode !== 0) {\n\t\tif (renderMode === 1 || options.syncComponentUpdates !== false || !component.base) {\n\t\t\trenderComponent(component, 1, mountAll);\n\t\t} else {\n\t\t\tenqueueRender(component);\n\t\t}\n\t}\n\n\tapplyRef(component.__ref, component);\n}\n\nfunction renderComponent(component, renderMode, mountAll, isChild) {\n\tif (component._disable) return;\n\n\tvar props = component.props,\n\t state = component.state,\n\t context = component.context,\n\t previousProps = component.prevProps || props,\n\t previousState = component.prevState || state,\n\t previousContext = component.prevContext || context,\n\t isUpdate = component.base,\n\t nextBase = component.nextBase,\n\t initialBase = isUpdate || nextBase,\n\t initialChildComponent = component._component,\n\t skip = false,\n\t snapshot = previousContext,\n\t rendered,\n\t inst,\n\t cbase;\n\n\tif (component.constructor.getDerivedStateFromProps) {\n\t\tstate = extend(extend({}, state), component.constructor.getDerivedStateFromProps(props, state));\n\t\tcomponent.state = state;\n\t}\n\n\tif (isUpdate) {\n\t\tcomponent.props = previousProps;\n\t\tcomponent.state = previousState;\n\t\tcomponent.context = previousContext;\n\t\tif (renderMode !== 2 && component.shouldComponentUpdate && component.shouldComponentUpdate(props, state, context) === false) {\n\t\t\tskip = true;\n\t\t} else if (component.componentWillUpdate) {\n\t\t\tcomponent.componentWillUpdate(props, state, context);\n\t\t}\n\t\tcomponent.props = props;\n\t\tcomponent.state = state;\n\t\tcomponent.context = context;\n\t}\n\n\tcomponent.prevProps = component.prevState = component.prevContext = component.nextBase = null;\n\tcomponent._dirty = false;\n\n\tif (!skip) {\n\t\trendered = component.render(props, state, context);\n\n\t\tif (component.getChildContext) {\n\t\t\tcontext = extend(extend({}, context), component.getChildContext());\n\t\t}\n\n\t\tif (isUpdate && component.getSnapshotBeforeUpdate) {\n\t\t\tsnapshot = component.getSnapshotBeforeUpdate(previousProps, previousState);\n\t\t}\n\n\t\tvar childComponent = rendered && rendered.nodeName,\n\t\t toUnmount,\n\t\t base;\n\n\t\tif (typeof childComponent === 'function') {\n\n\t\t\tvar childProps = getNodeProps(rendered);\n\t\t\tinst = initialChildComponent;\n\n\t\t\tif (inst && inst.constructor === childComponent && childProps.key == inst.__key) {\n\t\t\t\tsetComponentProps(inst, childProps, 1, context, false);\n\t\t\t} else {\n\t\t\t\ttoUnmount = inst;\n\n\t\t\t\tcomponent._component = inst = createComponent(childComponent, childProps, context);\n\t\t\t\tinst.nextBase = inst.nextBase || nextBase;\n\t\t\t\tinst._parentComponent = component;\n\t\t\t\tsetComponentProps(inst, childProps, 0, context, false);\n\t\t\t\trenderComponent(inst, 1, mountAll, true);\n\t\t\t}\n\n\t\t\tbase = inst.base;\n\t\t} else {\n\t\t\tcbase = initialBase;\n\n\t\t\ttoUnmount = initialChildComponent;\n\t\t\tif (toUnmount) {\n\t\t\t\tcbase = component._component = null;\n\t\t\t}\n\n\t\t\tif (initialBase || renderMode === 1) {\n\t\t\t\tif (cbase) cbase._component = null;\n\t\t\t\tbase = diff(cbase, rendered, context, mountAll || !isUpdate, initialBase && initialBase.parentNode, true);\n\t\t\t}\n\t\t}\n\n\t\tif (initialBase && base !== initialBase && inst !== initialChildComponent) {\n\t\t\tvar baseParent = initialBase.parentNode;\n\t\t\tif (baseParent && base !== baseParent) {\n\t\t\t\tbaseParent.replaceChild(base, initialBase);\n\n\t\t\t\tif (!toUnmount) {\n\t\t\t\t\tinitialBase._component = null;\n\t\t\t\t\trecollectNodeTree(initialBase, false);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (toUnmount) {\n\t\t\tunmountComponent(toUnmount);\n\t\t}\n\n\t\tcomponent.base = base;\n\t\tif (base && !isChild) {\n\t\t\tvar componentRef = component,\n\t\t\t t = component;\n\t\t\twhile (t = t._parentComponent) {\n\t\t\t\t(componentRef = t).base = base;\n\t\t\t}\n\t\t\tbase._component = componentRef;\n\t\t\tbase._componentConstructor = componentRef.constructor;\n\t\t}\n\t}\n\n\tif (!isUpdate || mountAll) {\n\t\tmounts.push(component);\n\t} else if (!skip) {\n\n\t\tif (component.componentDidUpdate) {\n\t\t\tcomponent.componentDidUpdate(previousProps, previousState, snapshot);\n\t\t}\n\t\tif (options.afterUpdate) options.afterUpdate(component);\n\t}\n\n\twhile (component._renderCallbacks.length) {\n\t\tcomponent._renderCallbacks.pop().call(component);\n\t}if (!diffLevel && !isChild) flushMounts();\n}\n\nfunction buildComponentFromVNode(dom, vnode, context, mountAll) {\n\tvar c = dom && dom._component,\n\t originalComponent = c,\n\t oldDom = dom,\n\t isDirectOwner = c && dom._componentConstructor === vnode.nodeName,\n\t isOwner = isDirectOwner,\n\t props = getNodeProps(vnode);\n\twhile (c && !isOwner && (c = c._parentComponent)) {\n\t\tisOwner = c.constructor === vnode.nodeName;\n\t}\n\n\tif (c && isOwner && (!mountAll || c._component)) {\n\t\tsetComponentProps(c, props, 3, context, mountAll);\n\t\tdom = c.base;\n\t} else {\n\t\tif (originalComponent && !isDirectOwner) {\n\t\t\tunmountComponent(originalComponent);\n\t\t\tdom = oldDom = null;\n\t\t}\n\n\t\tc = createComponent(vnode.nodeName, props, context);\n\t\tif (dom && !c.nextBase) {\n\t\t\tc.nextBase = dom;\n\n\t\t\toldDom = null;\n\t\t}\n\t\tsetComponentProps(c, props, 1, context, mountAll);\n\t\tdom = c.base;\n\n\t\tif (oldDom && dom !== oldDom) {\n\t\t\toldDom._component = null;\n\t\t\trecollectNodeTree(oldDom, false);\n\t\t}\n\t}\n\n\treturn dom;\n}\n\nfunction unmountComponent(component) {\n\tif (options.beforeUnmount) options.beforeUnmount(component);\n\n\tvar base = component.base;\n\n\tcomponent._disable = true;\n\n\tif (component.componentWillUnmount) component.componentWillUnmount();\n\n\tcomponent.base = null;\n\n\tvar inner = component._component;\n\tif (inner) {\n\t\tunmountComponent(inner);\n\t} else if (base) {\n\t\tif (base['__preactattr_'] != null) applyRef(base['__preactattr_'].ref, null);\n\n\t\tcomponent.nextBase = base;\n\n\t\tremoveNode(base);\n\t\trecyclerComponents.push(component);\n\n\t\tremoveChildren(base);\n\t}\n\n\tapplyRef(component.__ref, null);\n}\n\nfunction Component(props, context) {\n\tthis._dirty = true;\n\n\tthis.context = context;\n\n\tthis.props = props;\n\n\tthis.state = this.state || {};\n\n\tthis._renderCallbacks = [];\n}\n\nextend(Component.prototype, {\n\tsetState: function setState(state, callback) {\n\t\tif (!this.prevState) this.prevState = this.state;\n\t\tthis.state = extend(extend({}, this.state), typeof state === 'function' ? state(this.state, this.props) : state);\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t},\n\tforceUpdate: function forceUpdate(callback) {\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\trenderComponent(this, 2);\n\t},\n\trender: function render() {}\n});\n\nfunction render(vnode, parent, merge) {\n return diff(merge, vnode, {}, false, parent, false);\n}\n\nfunction createRef() {\n\treturn {};\n}\n\nvar preact = {\n\th: h,\n\tcreateElement: h,\n\tcloneElement: cloneElement,\n\tcreateRef: createRef,\n\tComponent: Component,\n\trender: render,\n\trerender: rerender,\n\toptions: options\n};\n\nexport default preact;\nexport { h, h as createElement, cloneElement, createRef, Component, render, rerender, options };\n//# sourceMappingURL=preact.mjs.map\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","import { h, render, Component } from 'preact';\nimport miniToastr from 'mini-toastr';\nimport { Menu } from './components/menu';\nimport { Page } from './components/page';\nimport { loadConfig } from './conf/config.dat';\nimport { settings } from './lib/settings';\nimport { loader } from './lib/loader';\nimport { loadPlugins } from './lib/plugins';\nimport { menu } from './lib/menu';\n\nminiToastr.init({})\n\nconst clearSlashes = path => {\n return path.toString().replace(/\\/$/, '').replace(/^\\//, '');\n};\n\nconst getFragment = () => {\n const match = window.location.href.match(/#(.*)$/);\n const fragment = match ? match[1] : '';\n return clearSlashes(fragment);\n};\n\nclass App extends Component {\n constructor() {\n super();\n this.state = {\n menuActive: false,\n menu: menu.menus[0],\n page: menu.menus[0],\n changed: false,\n }\n\n this.menuToggle = () => {\n this.setState({ menuActive: !this.state.menuActive });\n }\n }\n\n render(props, state) {\n \n const params = getFragment().split('/').slice(2);\n const active = this.state.menuActive ? 'active' : '';\n return (\n
\n \n \n \n \n \n
\n );\n }\n\n componentDidMount() {\n loader.hide();\n\n let current = '';\n const fn = () => {\n const newFragment = getFragment();\n const diff = settings.diff();\n if(this.state.changed !== !!diff.length) {\n this.setState({changed: !this.state.changed})\n }\n if(current !== newFragment) {\n current = newFragment;\n const parts = current.split('/');\n const m = menu.menus.find(menu => menu.href === parts[0]);\n const page = parts.length > 1 ? menu.routes.find(route => route.href === `${parts[0]}/${parts[1]}`) : m;\n if (page) {\n this.setState({ page, menu: m, menuActive: false });\n }\n }\n }\n this.interval = setInterval(fn, 100);\n }\n\n componentWillUnmount() {}\n}\n\nconst load = async () => {\n await loadConfig();\n await loadPlugins();\n render(, document.body);\n}\n\nload();","import { h, Component } from 'preact';\r\n\r\nexport class EspEaspP2PComponent extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = { nodes: [] }\r\n\r\n this.refresh = () => {\r\n fetch('/node_list_json').then(res => res.json()).then((nodes) => {\r\n this.setState({ nodes })\r\n });\r\n \r\n }\r\n }\r\n\r\n render(props) {\r\n return (\r\n \r\n )\r\n }\r\n\r\n componentDidMount() {\r\n this.refresh();\r\n }\r\n}","import { h, Component } from 'preact';\r\nimport { get, set, getKeys } from '../../lib/helpers';\r\nimport { settings } from '../../lib/settings';\r\n\r\nexport class Form extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.onChange = (id, prop, config = {}) => {\r\n return (e) => {\r\n let val = this.form.elements[id].value;\r\n if (config.type === 'checkbox') {\r\n val = this.form.elements[id].checked ? 1 : 0;\r\n } else if (config.type === 'number' || config.type === 'ip') {\r\n val = parseFloat(val);\r\n } else if (config.type === 'select') {\r\n val = isNaN(val) ? val : parseInt(val);\r\n }\r\n if (prop.startsWith('ROOT')) {\r\n settings.set(prop.replace('ROOT.', ''), val);\r\n } else {\r\n set(this.props.selected, prop, val);\r\n }\r\n if (config.onChange) {\r\n config.onChange(e);\r\n }\r\n }\r\n }\r\n }\r\n\r\n renderConfig(id, config, value, varName) {\r\n switch (config.type) {\r\n case 'string':\r\n return (\r\n \r\n );\r\n case 'number':\r\n return (\r\n \r\n ) ;\r\n case 'ip':\r\n return [\r\n (),\r\n (),\r\n (),\r\n ()\r\n ]\r\n case 'password':\r\n return (\r\n \r\n ) ;\r\n case 'checkbox':\r\n return (\r\n \r\n ) ;\r\n case 'select':\r\n const options = (typeof config.options === 'function') ? config.options() : config.options;\r\n return (\r\n \r\n ) ;\r\n case 'file':\r\n return (\r\n \r\n )\r\n case 'button':\r\n const clickEvent = () => {\r\n if (!config.click) return;\r\n config.click(this.props.selected);\r\n }\r\n return (\r\n \r\n );\r\n }\r\n }\r\n\r\n renderConfigGroup(id, configs, values) {\r\n const configArray = Array.isArray(configs) ? configs : [configs];\r\n\r\n return (\r\n
\r\n {configArray.map((conf, i) => {\r\n const varId = configArray.length > 1 ? `${id}.${i}` : id;\r\n const varName = conf.var ? conf.var : varId;\r\n const val = varName.startsWith('ROOT') ? settings.get(varName.replace('ROOT.', '')) : get(values, varName, null);\r\n\r\n if (conf.if) {\r\n if (!get(settings.settings, conf.if, false)) return(null);\r\n }\r\n if (conf.type === 'custom') {\r\n const CustomComponent = conf.component;\r\n return ();\r\n }\r\n return [\r\n (),\r\n this.renderConfig(varId, conf, val, varName)\r\n ];\r\n })}\r\n
\r\n )\r\n }\r\n\r\n renderGroup(id, group, values) {\r\n if (!group.configs || !Object.keys(group.configs).length) return (null);\r\n const keys = getKeys(group.configs);\r\n return (\r\n
\r\n \r\n {keys.map(key => {\r\n const conf = group.configs[key];\r\n return this.renderConfigGroup(`${id}.${key}`, conf, values);\r\n })}\r\n
\r\n )\r\n }\r\n\r\n render(props) {\r\n const keys = getKeys(props.config.groups);\r\n return (
this.form = ref}>\r\n {keys.map(key => this.renderGroup(key, props.config.groups[key], props.selected))}\r\n
)\r\n }\r\n}","import { h, Component } from 'preact';\r\n\r\nexport class Menu extends Component {\r\n renderMenuItem(menu) {\r\n if (menu.action) {\r\n return (\r\n
  • \r\n {menu.title}\r\n
  • \r\n )\r\n }\r\n if (menu.href === this.props.selected.href) {\r\n return [\r\n (
  • \r\n {menu.title}\r\n
  • ),\r\n ...menu.children.map(child => {\r\n if (child.action) {\r\n return (\r\n
  • \r\n {child.title}\r\n
  • \r\n )\r\n }\r\n return (
  • \r\n {child.title}\r\n
  • );\r\n })\r\n ]\r\n }\r\n return (
  • \r\n {menu.title}\r\n
  • );\r\n }\r\n\r\n render(props) {\r\n if (props.open === false) return;\r\n \r\n return (\r\n
    \r\n
    \r\n ESPEasy\r\n
      \r\n {props.menus.map(menu => (this.renderMenuItem(menu)))}\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}","import { h, Component } from 'preact';\r\n\r\nexport class Page extends Component {\r\n render(props) {\r\n const PageComponent = props.page.component;\r\n return (\r\n
    \r\n
    \r\n > {props.page.pagetitle == null ? props.page.title : props.page.pagetitle}\r\n { props.changed ? (\r\n CHANGED! Click here to SAVE\r\n ) : (null) }\r\n
    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}","import { parseConfig, writeConfig } from '../lib/parser';\r\nimport { settings } from '../lib/settings';\r\n\r\nconst TASKS_MAX = 12;\r\nconst NOTIFICATION_MAX = 3;\r\nconst CONTROLLER_MAX = 3;\r\nconst PLUGIN_CONFIGVAR_MAX = 8;\r\nconst PLUGIN_CONFIGFLOATVAR_MAX = 4;\r\nconst PLUGIN_CONFIGLONGVAR_MAX = 4;\r\nconst PLUGIN_EXTRACONFIGVAR_MAX = 16;\r\nconst NAME_FORMULA_LENGTH_MAX = 40;\r\nconst VARS_PER_TASK = 4;\r\n\r\nexport const configDatParseConfig = [\r\n { prop: 'status.PID', type: 'int32' },\r\n { prop: 'status.version', type: 'int32' },\r\n { prop: 'status.build', type: 'int16' },\r\n { prop: 'config.IP.ip', type: 'bytes', length: 4 },\r\n { prop: 'config.IP.gw', type: 'bytes', length: 4 }, \r\n { prop: 'config.IP.subnet', type: 'bytes', length: 4 },\r\n { prop: 'config.IP.dns', type: 'bytes', length: 4 },\r\n { prop: 'config.experimental.ip_octet', type: 'byte' },\r\n { prop: 'config.general.unitnr', type: 'byte' },\r\n { prop: 'config.general.unitname', type: 'string', length: 26 },\r\n { prop: 'config.ntp.host', type: 'string', length: 64 },\r\n { prop: 'config.sleep.sleeptime', type: 'int32' },\r\n { prop: 'hardware.i2c.sda', type: 'byte' },\r\n { prop: 'hardware.i2c.scl', type: 'byte' },\r\n { prop: 'hardware.led.gpio', type: 'byte' },\r\n { prop: 'Pin_sd_cs', type: 'byte' }, // TODO\r\n { prop: 'hardware.gpio', type: 'bytes', length: 17 },\r\n { prop: 'config.log.syslog_ip', type: 'bytes', length: 4 },\r\n { prop: 'config.espnetwork.port', type: 'int32' },\r\n { prop: 'config.log.syslog_level', type: 'byte' },\r\n { prop: 'config.log.serial_level', type: 'byte' },\r\n { prop: 'config.log.web_level', type: 'byte' },\r\n { prop: 'config.log.sd_level', type: 'byte' },\r\n { prop: 'config.serial.baudrate', type: 'int32' },\r\n { prop: 'config.mqtt.interval', type: 'int32' },\r\n { prop: 'config.sleep.awaketime', type: 'byte' },\r\n { prop: 'CustomCSS', type: 'byte' }, // TODO\r\n { prop: 'config.dst.enabled', type: 'byte' },\r\n { prop: 'config.experimental.WDI2CAddress', type: 'byte' },\r\n { prop: 'config.rules.enabled', type: 'byte' },\r\n { prop: 'config.serial.enabled', type: 'byte' },\r\n { prop: 'config.ssdp.enabled', type: 'byte' },\r\n { prop: 'config.ntp.enabled', type: 'byte' },\r\n { prop: 'config.experimental.WireClockStretchLimit', type: 'int32' },\r\n { prop: 'GlobalSync', type: 'byte' }, // TODO\r\n { prop: 'config.experimental.ConnectionFailuresThreshold', type: 'int32' },\r\n { prop: 'TimeZone', type: 'int16', signed: true},// TODO\r\n { prop: 'config.mqtt.retain_flag', type: 'byte' },\r\n { prop: 'hardware.spi.enabled', type: 'byte' },\r\n [...Array(CONTROLLER_MAX)].map((x, i) => ({ prop: `controllers[${i}].protocol`, type:'byte' })),\r\n [...Array(NOTIFICATION_MAX)].map((x, i) => ({ prop: `notifications[${i}].type`, type:'byte' })),\r\n [...Array(TASKS_MAX)].map((x, i) => ({ prop: `tasks[${i}].device`, type:'byte' })),\r\n [...Array(TASKS_MAX)].map((x, i) => ({ prop: `tasks[${i}].OLD_TaskDeviceID`, type:'int32' })),\r\n [...Array(TASKS_MAX)].map((x, i) => ({ prop: `tasks[${i}].gpio1`, type:'byte' })),\r\n [...Array(TASKS_MAX)].map((x, i) => ({ prop: `tasks[${i}].gpio2`, type:'byte' })),\r\n [...Array(TASKS_MAX)].map((x, i) => ({ prop: `tasks[${i}].gpio3`, type:'byte' })),\r\n [...Array(TASKS_MAX)].map((x, i) => ({ prop: `tasks[${i}].gpio4`, type:'byte' })),\r\n [...Array(TASKS_MAX)].map((x, i) => ({ prop: `tasks[${i}].pin1pullup`, type:'byte' })),\r\n [...Array(TASKS_MAX)].map((x, i) => ({ prop: `tasks[${i}].configs`, type:'ints', length: PLUGIN_CONFIGVAR_MAX })),\r\n [...Array(TASKS_MAX)].map((x, i) => ({ prop: `tasks[${i}].pin1inversed`, type:'byte' })),\r\n [...Array(TASKS_MAX)].map((x, i) => ({ prop: `tasks[${i}].configs_float`, type:'floats', length: PLUGIN_CONFIGFLOATVAR_MAX })), \r\n [...Array(TASKS_MAX)].map((x, i) => ({ prop: `tasks[${i}].configs_long`, type:'longs', length: PLUGIN_CONFIGLONGVAR_MAX })),\r\n [...Array(TASKS_MAX)].map((x, i) => ({ prop: `tasks[${i}].OLD_senddata`, type:'byte' })),\r\n [...Array(TASKS_MAX)].map((x, i) => ({ prop: `tasks[${i}].global_sync`, type:'byte' })),\r\n [...Array(TASKS_MAX)].map((x, i) => ({ prop: `tasks[${i}].data_feed`, type:'byte' })),\r\n [...Array(TASKS_MAX)].map((x, i) => ({ prop: `tasks[${i}].interval`, type:'int32' })),\r\n [...Array(TASKS_MAX)].map((x, i) => ({ prop: `tasks[${i}].enabled`, type:'byte' })),\r\n [...Array(CONTROLLER_MAX)].map((x, i) => ({ prop: `controllers[${i}].enabled`, type:'byte' })),\r\n [...Array(NOTIFICATION_MAX)].map((x, i) => ({ prop: `notifications[${i}].enabled`, type:'byte' })), \r\n [...Array(TASKS_MAX)].map((x, i) => ({ prop: `tasks[${i}].TaskDeviceID`, type:'longs', length: CONTROLLER_MAX })),\r\n [...Array(TASKS_MAX)].map((x, i) => ({ prop: `tasks[${i}].TaskDeviceSendData`, type:'bytes', length: CONTROLLER_MAX })),\r\n { prop: 'hardware.led.inverse', type: 'byte' }, \r\n { prop: 'config.sleep.sleeponfailiure', type: 'byte' },\r\n { prop: 'UseValueLogger', type: 'byte' },// TODO\r\n { prop: 'ArduinoOTAEnable', type: 'byte' },// TODO\r\n { prop: 'config.dst.DST_Start', type: 'int16' },\r\n { prop: 'config.dst.DST_End', type: 'int16' },\r\n { prop: 'UseRTOSMultitasking', type: 'byte' },// TODO\r\n { prop: 'hardware.reset.pin', type: 'byte' }, \r\n { prop: 'config.log.syslog_facility', type: 'byte' }, \r\n { prop: 'StructSize', type: 'int32' },// TODO\r\n { prop: 'config.mqtt.useunitname', type: 'byte' },\r\n { prop: 'config.location.lat', type: 'float' },\r\n { prop: 'config.location.long', type: 'float' },\r\n { prop: 'config._emptyBit', type: 'bit' },\r\n { prop: 'config.general.appendunit', type: 'bit' },\r\n { prop: 'config.mqtt.changeclientid', type: 'bit' },\r\n { prop: 'config.rules.oldengine', type: 'bit' },\r\n { prop: 'config._bit4', type: 'bit' },\r\n { prop: 'config._bit5', type: 'bit' },\r\n { prop: 'config._bit6', type: 'bit' },\r\n { prop: 'config._bit7', type: 'bit' },\r\n { prop: 'config._bits1', type: 'byte' },\r\n { prop: 'config._bits2', type: 'byte' },\r\n { prop: 'config._bits3', type: 'byte' },\r\n { prop: 'ResetFactoryDefaultPreference', type: 'int32' },// TODO\r\n].flat();\r\n\r\nexport const TaskSettings = [\r\n { prop: 'index', type:'byte' },\r\n { prop: 'name', type:'string', length: NAME_FORMULA_LENGTH_MAX + 1 },\r\n [...Array(VARS_PER_TASK)].map((x, i) => ({ prop: `values[${i}].formula`, type:'string', length: NAME_FORMULA_LENGTH_MAX + 1 })),\r\n [...Array(VARS_PER_TASK)].map((x, i) => ({ prop: `values[${i}].name`, type:'string', length: NAME_FORMULA_LENGTH_MAX + 1 })),\r\n { prop: 'value_names', type:'string', length: NAME_FORMULA_LENGTH_MAX + 1 },\r\n { prop: 'plugin_config_long', type:'longs', length: PLUGIN_EXTRACONFIGVAR_MAX },\r\n { prop: 'decimals', type:'bytes', length: VARS_PER_TASK },\r\n { prop: 'plugin_config', type:'ints', length: PLUGIN_EXTRACONFIGVAR_MAX },\r\n].flat();\r\n\r\nexport const ControllerSettings = [\r\n { prop: 'dns', type:'byte' },\r\n { prop: 'IP', type:'bytes', length: 4 },\r\n { prop: 'port', type:'int32' },\r\n { prop: 'hostname', type:'string', length: 65 },\r\n { prop: 'publish', type:'string', length: 129 },\r\n { prop: 'subscribe', type:'string', length: 129 },\r\n { prop: 'MQTT_lwt_topic', type:'string', length: 129 },\r\n { prop: 'lwt_message_connect', type:'string', length: 129 },\r\n { prop: 'lwt_message_disconnect', type:'string', length: 129 },\r\n { prop: 'minimal_time_between', type:'int32' },\r\n { prop: 'max_queue_depth', type:'int32' },\r\n { prop: 'max_retry', type:'int32' },\r\n { prop: 'delete_oldest', type:'byte' },\r\n { prop: 'client_timeout', type:'int32' },\r\n { prop: 'must_check_reply', type:'byte' },\r\n];\r\n\r\nexport const NotificationSettings = [\r\n { prop: 'server', type:'string', length: 65 },\r\n { prop: 'port', type:'int16' },\r\n { prop: 'domain', type:'string', length: 65 },\r\n { prop: 'sender', type:'string', length: 65 },\r\n { prop: 'receiver', type:'string', length: 65 },\r\n { prop: 'subject', type:'string', length: 129 },\r\n { prop: 'body', type:'string', length: 513 },\r\n { prop: 'pin1', type:'byte' },\r\n { prop: 'pin2', type:'byte' },\r\n { prop: 'user', type:'string', length: 49 },\r\n { prop: 'pass', type:'string', length: 33 },\r\n];\r\n\r\nexport const SecuritySettings = [\r\n { prop: 'WifiSSID', type:'string', length: 32 },\r\n { prop: 'WifiKey', type:'string', length: 64 },\r\n { prop: 'WifiSSID2', type:'string', length: 32 },\r\n { prop: 'WifiKey2', type:'string', length: 64 },\r\n { prop: 'WifiAPKey', type:'string', length: 64 },\r\n [...Array(CONTROLLER_MAX)].map((x, i) => ({ prop: `controllers[${i}].user`, type:'string', length: 26 })),\r\n [...Array(CONTROLLER_MAX)].map((x, i) => ({ prop: `controllers[${i}].password`, type:'string', length: 64 })),\r\n { prop: 'password', type:'string', length: 26 },\r\n { prop: 'AllowedIPrangeLow', type:'bytes', length: 4 },\r\n { prop: 'AllowedIPrangeHigh', type:'bytes', length: 4 },\r\n { prop: 'IPblockLevel', type:'byte' },\r\n { prop: 'ProgmemMd5', type:'bytes', length: 16 },\r\n { prop: 'md5', type:'bytes', length: 16 },\r\n].flat();\r\n\r\nexport const loadConfig = () => {\r\n return fetch('config.dat').then(response => response.arrayBuffer()).then(async response => { \r\n const settings = parseConfig(response, configDatParseConfig);\r\n\r\n [...Array(12)].map((x, i) => {\r\n settings.tasks[i].settings = parseConfig(response, TaskSettings, 1024*4 + 1024 * 2 * i);\r\n settings.tasks[i].extra = parseConfig(response, TaskSettings, 1024*5 + 1024 * 2 * i);\r\n });\r\n \r\n [...Array(3)].map((x, i) => {\r\n settings.controllers[i].settings = parseConfig(response, ControllerSettings, 1024*27 + 1024 * 2 * i);\r\n settings.controllers[i].extra = parseConfig(response, ControllerSettings, 1024*28 + 1024 * 2 * i);\r\n });\r\n \r\n const notificationResponse = await fetch('notification.dat').then(response => response.arrayBuffer());\r\n [...Array(3)].map((x, i) => {\r\n settings.notifications[i].settings = parseConfig(notificationResponse, NotificationSettings, 1024 * i);\r\n });\r\n \r\n const securityResponse = await fetch('security.dat').then(response => response.arrayBuffer());\r\n settings.config.security = [...Array(3)].map((x, i) => {\r\n return parseConfig(securityResponse, SecuritySettings, 1024 * i);\r\n });\r\n \r\n return { response, settings };\r\n }).then(conf => {\r\n settings.init(conf.settings);\r\n settings.binary = new Uint8Array(conf.response);\r\n console.log(conf.settings);\r\n });\r\n}\r\n\r\nlet ii = 0;\r\nexport const saveConfig = (save = true) => {\r\n if (ii === 0) {\r\n const buffer = new ArrayBuffer(65536);\r\n writeConfig(buffer, settings.settings, configDatParseConfig);\r\n [...Array(12)].map((x, i) => {\r\n return {\r\n settings: writeConfig(buffer, settings.settings.tasks[i].settings, TaskSettings, 1024*4 + 1024 * 2 * i),\r\n extra: writeConfig(buffer, settings.settings.tasks[i].extra, TaskSettings, 1024*5 + 1024 * 2 * i),\r\n };\r\n });\r\n\r\n [...Array(3)].map((x, i) => {\r\n return {\r\n settings: writeConfig(buffer, settings.settings.controllers[i].settings, ControllerSettings, 1024*27 + 1024 * 2 * i),\r\n extra: writeConfig(buffer, settings.settings.controllers[i].extra, ControllerSettings, 1024*28 + 1024 * 2 * i),\r\n };\r\n });\r\n if (save) saveData(buffer, 'config.dat');\r\n else return buffer;\r\n } else if (ii === 1) {\r\n const bufferNotifications = new ArrayBuffer(4096);\r\n [...Array(3)].map((x, i) => {\r\n return writeConfig(bufferNotifications, settings.settings.notifications[i], NotificationSettings, 1024 * i);\r\n });\r\n saveData(bufferNotifications, 'notification.dat');\r\n } else if (ii === 2) {\r\n const bufferSecurity = new ArrayBuffer(4096);\r\n [...Array(3)].map((x, i) => {\r\n return writeConfig(bufferSecurity, settings.settings.security[i], SecuritySettings, 1024 * i);\r\n });\r\n saveData(bufferSecurity, 'security.dat');\r\n }\r\n ii = (ii + 1) % 3;\r\n}\r\n\r\nconst saveData = (function () {\r\n const a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n return function (data, fileName) {\r\n const blob = new Blob([new Uint8Array(data)]);\r\n const url = window.URL.createObjectURL(blob);\r\n a.href = url;\r\n a.download = fileName;\r\n a.click();\r\n window.URL.revokeObjectURL(url);\r\n };\r\n}());\r\n","import { pins } from './_defs';\r\n\r\nconst i2c_address = [\r\n { value: 35, name: '0x23 (35) - default' }, \r\n { value: 92, name: '0x5c (92)' }, \r\n]\r\n\r\nconst measurmentMode = [\r\n { value: 1, name: 'RESOLUTION_LOW' }, \r\n { value: 2, name: 'RESOLUTION_NORMAL' }, \r\n { value: 3, name: 'RESOLUTION_HIGH' }, \r\n { value: 99, name: 'RESOLUTION_AUTO_HIGH' }, \r\n]\r\n\r\nexport const bh1750 = {\r\n defaults: () => ({\r\n 'configs[0]': 35,\r\n 'settings.values[0].name': 'Lux',\r\n }),\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n i2c_address: { name: 'I2C Address', type: 'select', options: i2c_address, var: 'configs[0]' },\r\n mode: { name: 'Measurement mode', type: 'select', options: measurmentMode, var: 'configs[1]' },\r\n send_to_sleep: { name: 'Send sensor to sleep', type: 'checkbox', var: 'configs[2]' },\r\n }\r\n },\r\n data: true,\r\n vals: 1,\r\n}","import { pins } from './_defs';\r\n\r\nconst mode = [\r\n { value: 0, name: 'Digital' }, \r\n { value: 1, name: 'Analog' }, \r\n]\r\n\r\nexport const pme = {\r\n defaults: () => ({\r\n 'settings.values[0].name': 'Value',\r\n }),\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n port: { name: 'Port', type: 'number', var: 'gpio4' },\r\n mode: { name: 'Port Type', type: 'select', options: mode, var: 'configs[0]' },\r\n }\r\n },\r\n data: true,\r\n vals: 1\r\n}","import { pins } from './_defs';\r\n\r\nconst i2c_address = [\r\n { value: 35, name: '0x23 (35) - default' }, \r\n { value: 92, name: '0x5c (92)' }, \r\n]\r\n\r\nconst displaySize = [\r\n { value: 1, name: 'RESOLUTION_LOW' }, \r\n { value: 2, name: 'RESOLUTION_NORMAL' }, \r\n { value: 3, name: 'RESOLUTION_HIGH' }, \r\n { value: 99, name: 'RESOLUTION_AUTO_HIGH' }, \r\n]\r\n\r\nconst lcdCommand = [\r\n { value: 1, name: 'RESOLUTION_LOW' }, \r\n { value: 2, name: 'RESOLUTION_NORMAL' }, \r\n { value: 3, name: 'RESOLUTION_HIGH' }, \r\n { value: 99, name: 'RESOLUTION_AUTO_HIGH' }, \r\n]\r\n\r\nexport const lcd2004 = {\r\n defaults: () => ({\r\n 'configs[0]': 32,\r\n }),\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n i2c_address: { name: 'I2C Address', type: 'select', options: i2c_address, var: 'configs[0]' },\r\n size: { name: 'Display Size', type: 'select', options: displaySize, var: 'configs[1]' },\r\n line1: { name: 'Line 1', type: 'string', /*var: 'configs[2]' */ },\r\n line2: { name: 'Line 2', type: 'string', /*var: 'configs[2]' */ },\r\n line3: { name: 'Line 3', type: 'string', /*var: 'configs[2]' */ },\r\n line4: { name: 'Line 4', type: 'string', /*var: 'configs[2]' */ },\r\n button: { name: 'Display Button', type: 'select', options: pins, var: 'gpio3' },\r\n timeout: { name: 'Display Timeout', type: 'number', var: 'configs[2]' },\r\n command: { name: 'LCD Command Mode', type: 'select', options: lcdCommand, var: 'configs[3]' },\r\n }\r\n },\r\n}","import { pins } from './_defs';\r\n\r\nconst mode = [\r\n { value: 0, name: 'Value' }, \r\n { value: 1, name: 'State' }, \r\n]\r\n\r\nconst units = [\r\n { value: 0, name: 'Metric' }, \r\n { value: 1, name: 'Imperial' }, \r\n]\r\n\r\nconst filters = [\r\n { value: 0, name: 'None' }, \r\n { value: 1, name: 'Median' }, \r\n]\r\n\r\nexport const hcsr04 = {\r\n defaults: () => ({\r\n gpio1: 255,\r\n gpio2: 255,\r\n 'settings.values[0].name': 'Distance',\r\n }),\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n gpio1: { name: 'GPIO Trigger', type: 'select', options: pins, var: 'gpio1' },\r\n gpio2: { name: 'GPIO Echo, 5V', type: 'select', options: pins, var: 'gpio2' },\r\n mode: { name: 'Mode', type: 'select', options: mode, var: 'configs[0]' },\r\n treshold: { name: 'Treshold', type: 'number', var: 'configs[1]' },\r\n max_distance: { name: 'Max Distance', type: 'number', var: 'configs[2]' },\r\n unit: { name: 'Unit', type: 'select', options: units, var: 'configs[3]' },\r\n filter: { name: 'Filter', type: 'select', options: filters, var: 'configs[4]' },\r\n filter_size: { name: 'Filter Size', type: 'number', var: 'configs[5]' },\r\n }\r\n },\r\n data: true,\r\n vals: 1,\r\n}","import { pins } from './_defs';\r\n\r\n\r\nconst resolution = [\r\n { value: 0, name: 'Temp 14 bits, RH 12 bits' }, \r\n { value: 128, name: 'Temp 13 bits, RH 10 bits' }, \r\n { value: 1, name: 'Temp 12 bits, RH 8 bits' }, \r\n { value: 129, name: 'Temp 11 bits, RH 11 bits' }, \r\n]\r\n\r\nexport const si7021 = {\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n resolution: { name: 'Resolution', type: 'select', options: resolution, var: 'configs[0]' },\r\n }\r\n },\r\n data: true,\r\n vals: 2,\r\n}","import { pins } from './_defs';\r\n\r\nconst i2c_address = [\r\n { value: 57, name: '0x39 (57) - default' }, \r\n { value: 73, name: '0x49 (73)' }, \r\n { value: 41, name: '0x29 (41)' }, \r\n]\r\n\r\nconst measurmentMode = [\r\n { value: 0, name: '13 ms' }, \r\n { value: 1, name: '101 ms' }, \r\n { value: 2, name: '402 ms' }, \r\n]\r\n\r\nexport const tls2561 = {\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n i2c_address: { name: 'I2C Address', type: 'select', options: i2c_address, var: 'configs[0]' },\r\n mode: { name: 'Integration time', type: 'select', options: measurmentMode, var: 'configs[1]' },\r\n send_to_sleep: { name: 'Send sensor to sleep', type: 'checkbox', var: 'configs[2]' },\r\n gain: { name: 'Enable 16x gain', type: 'checkbox', var: 'configs[3]' },\r\n }\r\n },\r\n}\r\n","import { pins } from './_defs';\r\n\r\nexport const pn532 = {\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n gpio1: { name: 'Reset Pin', type: 'select', options: pins, var: 'gpio1' },\r\n }\r\n },\r\n}","import { pins } from './_defs';\r\n\r\nconst i2c_address = [\r\n { value: 35, name: '0x23 (35) - default' }, \r\n { value: 92, name: '0x5c (92)' }, \r\n]\r\n\r\nconst measurmentMode = [\r\n { value: 1, name: 'RESOLUTION_LOW' }, \r\n { value: 2, name: 'RESOLUTION_NORMAL' }, \r\n { value: 3, name: 'RESOLUTION_HIGH' }, \r\n { value: 99, name: 'RESOLUTION_AUTO_HIGH' }, \r\n]\r\n\r\nexport const dust = {\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n gpio1: { name: 'GPIO - LED', type: 'select', options: pins, var: 'gpio1' },\r\n }\r\n },\r\n data: true,\r\n vals: 1,\r\n}","import { pins } from './_defs';\r\n\r\nconst eventTypes = [\r\n { value: 0, name: 'Disabled' }, \r\n { value: 1, name: 'Active on LOW' }, \r\n { value: 2, name: 'Active on HIGH' }, \r\n { value: 3, name: 'Active on LOW and HIGH' }, \r\n]\r\n\r\nexport const pcf8574 = {\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n port: { name: 'PORT', type: 'number', var: 'gpio4' },\r\n inversed: { name: 'Inversed logic', type: 'checkbox', var: 'pin1inversed' },\r\n send_boot_state: { name: 'Send Boot State', type: 'checkbox', var: 'configs[3]' },\r\n }\r\n },\r\n advanced: {\r\n name: 'Advanced event management',\r\n configs: {\r\n debounce: { name: 'De-bounce (ms)', type: 'number', var: 'configs_float[0]' },\r\n dblclick: { name: 'Doublclick Event', type: 'select', options: eventTypes, var: 'configs[4]' },\r\n dblclick_interval: { name: 'Doubleclick Max interval (ms)', type: 'number', var: 'configs_float[1]' },\r\n longpress: { name: 'Longpress event', type: 'select', options: eventTypes, var: 'configs[5]' },\r\n longpress_interval: { name: 'Longpress min interval (ms)', type: 'number', var: 'configs_float[2]' },\r\n safe_button: { name: 'Use safe button', type: 'checkbox', var: 'configs_float[3]' },\r\n }\r\n },\r\n}","import { pins } from './_defs';\r\n\r\nconst eventTypes = [\r\n { value: 0, name: 'Disabled' }, \r\n { value: 1, name: 'Active on LOW' }, \r\n { value: 2, name: 'Active on HIGH' }, \r\n { value: 3, name: 'Active on LOW and HIGH' }, \r\n]\r\n\r\nexport const inputSwitch = {\r\n defaults: () => ({\r\n gpio1: 255,\r\n interval: 60,\r\n 'configs_float[1]': 1000,\r\n 'configs_float[2]': 1000,\r\n 'settings.values[0].name': 'Switch',\r\n }),\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n pullup: { name: 'Internal PullUp', type: 'checkbox', var: 'pin1pullup' },\r\n inversed: { name: 'Inversed logic', type: 'checkbox', var: 'pin1inversed' },\r\n gpio: { name: 'GPIO', type: 'select', options: pins, var: 'gpio1' },\r\n switch_type: { name: 'Switch Type', type: 'select', options: [{ name: 'switch', value: 0}, { name: 'dimmer', value: 3 }], var: 'configs[0]' },\r\n switch_button_type: { name: 'Switch Button Type', type: 'select', options: [\r\n { name: 'normal', value: 0}, { name: 'active low', value: 1 }, { name: 'active high', value: 2 }\r\n ], var: 'configs[2]' },\r\n send_boot_state: { name: 'Send Boot State', type: 'checkbox', var: 'configs[3]' },\r\n }\r\n },\r\n advanced: {\r\n name: 'Advanced event management',\r\n configs: {\r\n debounce: { name: 'De-bounce (ms)', type: 'number', var: 'configs_float[0]' },\r\n dblclick: { name: 'Doublclick Event', type: 'select', options: eventTypes, var: 'configs[4]' },\r\n dblclick_interval: { name: 'Doubleclick Max interval (ms)', min: 1000, max: 3000, type: 'number', var: 'configs_float[1]' },\r\n longpress: { name: 'Longpress event', type: 'select', options: eventTypes, var: 'configs[5]' },\r\n longpress_interval: { name: 'Longpress min interval (ms)', min: 1000, max: 5000, type: 'number', var: 'configs_float[2]' },\r\n safe_button: { name: 'Use safe button', type: 'checkbox', var: 'configs_float[3]' },\r\n }\r\n },\r\n data: true,\r\n vals: 1,\r\n}","import { pins } from './_defs';\r\n\r\nconst parity = [\r\n { value: 0, name: 'No Parity' }, \r\n { value: 1, name: 'Even' }, \r\n { value: 2, name: 'Odd' }, \r\n]\r\n\r\nconst eventProcessing = [\r\n { value: 0, name: 'None' }, \r\n { value: 1, name: 'Generic' }, \r\n { value: 2, name: 'RFLink' }, \r\n]\r\n\r\nexport const ser2net = {\r\n sensor: {\r\n name: 'Settings',\r\n configs: {\r\n port: { name: 'TCP Port', type: 'number', var: 'configs_float[0]' },\r\n baudrate: { name: 'Baudrate', type: 'number', var: 'configs_float[0]' },\r\n data_bits: { name: 'Data Bits', type: 'number', var: 'configs_float[0]' },\r\n parity: { name: 'Parity', type: 'select', options: parity, var: 'configs[0]' },\r\n stop_bits: { name: 'Stop Bits', type: 'number', var: 'configs_float[0]' },\r\n reset_after_boot: { name: 'Reset target after boot', type: 'select', options: pins, var: 'configs[1]' },\r\n timeout: { name: 'RX Receive Timeout', type: 'number', var: 'configs_float[0]' },\r\n event_processing: { name: 'Event Processing', type: 'select', options: eventProcessing, var: 'configs[1]' },\r\n }\r\n },\r\n}","import { pins, getTasks, getTaskValues } from './_defs';\r\n\r\nconst sensorModel = [\r\n { value: 11, name: 'DHT11' }, \r\n { value: 22, name: 'DHT22' }, \r\n { value: 12, name: 'DHT12' }, \r\n { value: 23, name: 'Sonoff am2301' }, \r\n { value: 70, name: 'Sonoff si7021' },\r\n]\r\n\r\nexport const levelControl = {\r\n defaults: () => ({\r\n gpio1: 255,\r\n interval: 0,\r\n 'settings.values[0].name': 'Output',\r\n }),\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n gpio: { name: 'GPIO Level Low', type: 'select', options: pins, var: 'gpio1' },\r\n check_task: { name: 'Check Task', type: 'select', options: getTasks, var: 'configs[0]' },\r\n check_value: { name: 'Check Value', type: 'select', options: getTaskValues, var: 'configs[1]' },\r\n level: { name: 'Set Level', type: 'number', var: 'configs_float[0]' },\r\n hysteresis: { name: 'Hysteresis', type: 'number', var: 'configs_float[1]' },\r\n }\r\n },\r\n data: true,\r\n vals: 1,\r\n}","import { pins, getTasks, getTaskValues } from './_defs';\r\n\r\nconst mode = [...Array(32)].map((v, i) => ({ value: i, name: `0x${i.toString(16)} (${i})` }));\r\nconst i2c_address = [...Array(32)].map((v, i) => ({ value: i+64, name: `0x${(i+64).toString(16)} (${i+64})` }));\r\n\r\nexport const pca9685 = {\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n i2c_address: { name: 'I2C Address', type: 'select', options: i2c_address, var: 'configs[0]' },\r\n mode: { name: 'Mode 2', type: 'select', options: mode, var: 'configs[1]' },\r\n frequency: { name: 'Frequency (23 - 1500)', type: 'number', var: 'configs_float[0]' },\r\n range: { name: 'Range (1-10000)', type: 'number', var: 'configs_float[1]' },\r\n }\r\n },\r\n}","import { pins } from './_defs';\r\n\r\nconst i2c_address = [\r\n { value: 35, name: '0x23 (35) - default' }, \r\n { value: 92, name: '0x5c (92)' }, \r\n]\r\n\r\nconst displaySize = [\r\n { value: 1, name: 'RESOLUTION_LOW' }, \r\n { value: 2, name: 'RESOLUTION_NORMAL' }, \r\n { value: 3, name: 'RESOLUTION_HIGH' }, \r\n { value: 99, name: 'RESOLUTION_AUTO_HIGH' }, \r\n]\r\n\r\nexport const oled1306 = {\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n i2c_address: { name: 'I2C Address', type: 'select', options: i2c_address, var: 'configs[0]' },\r\n rotation: { name: 'Rotation', type: 'select', options: displaySize, var: 'configs[1]' },\r\n size: { name: 'Display Size', type: 'select', options: displaySize, var: 'configs[1]' },\r\n font: { name: 'Font Width', type: 'select', options: displaySize, var: 'configs[1]' },\r\n line1: { name: 'Line 1', type: 'text', var: 'configs[2]' },\r\n line2: { name: 'Line 2', type: 'text', var: 'configs[2]' },\r\n line3: { name: 'Line 3', type: 'text', var: 'configs[2]' },\r\n line4: { name: 'Line 4', type: 'text', var: 'configs[2]' },\r\n line5: { name: 'Line 4', type: 'text', var: 'configs[2]' },\r\n line6: { name: 'Line 4', type: 'text', var: 'configs[2]' },\r\n line7: { name: 'Line 4', type: 'text', var: 'configs[2]' },\r\n line8: { name: 'Line 4', type: 'text', var: 'configs[2]' },\r\n button: { name: 'Display Button', type: 'select', options: pins, var: 'gpio1' },\r\n timeout: { name: 'Display Timeout', type: 'number', var: 'configs[2]' },\r\n }\r\n },\r\n}","const options = [\r\n { value: 0, name: 'IR Object Temperature' }, \r\n { value: 1, name: 'Ambient Temperature' }, \r\n]\r\n\r\nexport const mlx90614 = {\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n port: { name: 'Port', type: 'number', var: 'gpio4' },\r\n option: { name: 'Option', type: 'select', options: options, var: 'configs[0]' },\r\n }\r\n },\r\n}","\r\nconst i2c_address = [\r\n { value: 72, name: '0x48 (72)' }, \r\n { value: 73, name: '0x49 (73)' }, \r\n { value: 74, name: '0x4A (74)' }, \r\n { value: 75, name: '0x4B (75)' }, \r\n];\r\n\r\nconst gainOptions = [\r\n { value: 0, name: '2/3x gain (FS=6.144V)' }, \r\n { value: 1, name: '1x gain (FS=4.096V)' }, \r\n { value: 2, name: '2x gain (FS=2.048V)' }, \r\n { value: 3, name: '4x gain (FS=1.024V)' }, \r\n { value: 4, name: '8x gain (FS=0.512V)' },\r\n { value: 5, name: '16x gain (FS=0.256V)' },\r\n];\r\n\r\nconst multiplexerOptions = [\r\n { value: 0, name: 'AIN0 - AIN1 (Differential)' }, \r\n { value: 1, name: 'AIN0 - AIN3 (Differential)' }, \r\n { value: 2, name: 'AIN1 - AIN3 (Differential)' }, \r\n { value: 3, name: 'AIN2 - AIN3 (Differential)' }, \r\n { value: 4, name: 'AIN0 - GND (Single-Ended)' }, \r\n { value: 5, name: 'AIN1 - GND (Single-Ended)' }, \r\n { value: 6, name: 'AIN2 - GND (Single-Ended)' }, \r\n { value: 7, name: 'AIN3 - GND (Single-Ended)' }, \r\n];\r\n\r\n\r\nexport const ads1115 = {\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n i2c_address: { name: 'I2C Address', type: 'select', options: i2c_address, var: 'configs[0]' },\r\n gain: { name: 'Gain', type: 'select', options: gainOptions, var: 'configs[1]' },\r\n multiplexer: { name: 'Input Multiplexer', type: 'select', options: multiplexerOptions, var: 'configs[2]' },\r\n }\r\n },\r\n advanced: {\r\n name: 'Two point calibration',\r\n configs: {\r\n enabled: { name: 'Calibration Enabled', type: 'number', var: 'configs[3]' },\r\n point1: [{ name: 'Point 1', type: 'number', var: 'configs_long[0]' }, { name: '=', type: 'number', var: 'configs_float[1]' }],\r\n point2: [{ name: 'Point 2', type: 'number', var: 'configs_long[1]' }, { name: '=', type: 'number', var: 'configs_float[1]' }],\r\n }\r\n },\r\n}","const indicator = [\r\n { value: 0, name: 'Uptime' }, \r\n { value: 1, name: 'Free Ram' }, \r\n { value: 2, name: 'WiFi RSSI' }, \r\n { value: 3, name: 'Input VCC' }, \r\n { value: 4, name: 'System load' }, \r\n { value: 5, name: 'IP 1.Octet' }, \r\n { value: 6, name: 'IP 2.Octet' }, \r\n { value: 7, name: 'IP 3.Octet' }, \r\n { value: 8, name: 'IP 4.Octet' }, \r\n { value: 9, name: 'Web activity' }, \r\n { value: 10, name: 'Free Stack' }, \r\n { value: 11, name: 'None' }, \r\n]\r\n\r\nexport const systemInfo = {\r\n sensor: {\r\n name: 'Settings',\r\n configs: {\r\n indicator1: { name: 'Indicator 1', type: 'select', options: indicator, var: 'configs_long[0]' },\r\n indicator1: { name: 'Indicator 2', type: 'select', options: indicator, var: 'configs_long[1]' },\r\n indicator1: { name: 'Indicator 3', type: 'select', options: indicator, var: 'configs_long[2]' },\r\n indicator1: { name: 'Indicator 4', type: 'select', options: indicator, var: 'configs_long[3]' },\r\n }\r\n },\r\n}","import { pins, getTasks, getTaskValues } from './_defs';\r\n\r\nconst measurmentRange = [\r\n { value: 0, name: '32V, 2A' }, \r\n { value: 1, name: '32V, 1A' }, \r\n { value: 2, name: '16V, 0.4A' }, \r\n]\r\n\r\nconst measurmentType = [\r\n { value: 0, name: 'Voltage' }, \r\n { value: 1, name: 'Current' }, \r\n { value: 2, name: 'Power' }, \r\n { value: 3, name: 'Voltage/Current/Power' }, \r\n]\r\n\r\nconst i2c_address = [\r\n { value: 64, name: '0x40 (64) - (default)' }, \r\n { value: 65, name: '0x41 (65)' }, \r\n { value: 68, name: '0x44 (68)' }, \r\n { value: 69, name: '0x45 (69)' }, \r\n]\r\n\r\nexport const ina219 = {\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n i2c_address: { name: 'I2C Address', type: 'select', options: i2c_address, var: 'configs[0]' },\r\n check_task: { name: 'Measurment Range', type: 'select', options: measurmentRange, var: 'configs[1]' },\r\n check_value: { name: 'Measurment Type', type: 'select', options: measurmentType, var: 'configs[2]' },\r\n }\r\n },\r\n}","import { pins, getTasks, getTaskValues } from './_defs';\r\n\r\nconst i2c_address = [\r\n { value: 118, name: '0x76 (118) - (default)' }, \r\n { value: 119, name: '0x77 (119) - (default)' }, \r\n]\r\n\r\nexport const bmx280 = {\r\n defaults: () => ({\r\n ValueCount: 1,\r\n SendDataOption: 1,\r\n TimerOption: 1,\r\n TimerOptional: 1,\r\n GlobalSync: 1,\r\n 'settings.values[0].name': 'Temperature',\r\n 'settings.values[1].name': 'Humidity',\r\n 'settings.values[2].name': 'Pressure',\r\n }),\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n i2c_address: { name: 'I2C Address', type: 'select', options: i2c_address, var: 'configs[0]' },\r\n altitude: { name: 'Altitude', type: 'number', var: 'configs[1]' },\r\n offset: { name: 'Temperature Offset', type: 'number', var: 'configs[2]' },\r\n }\r\n },\r\n data: true,\r\n vals: 3,\r\n}","import { pins, getTasks, getTaskValues } from './_defs';\r\n\r\nexport const mqttDomoticz = {\r\n sensor: {\r\n name: 'Actuator',\r\n configs: {\r\n gpio: { name: 'GPIO', type: 'select', options: pins, var: 'gpio1' },\r\n idx: { name: 'IDX', type: 'number', var: 'configs[0]' },\r\n }\r\n },\r\n}","import { pins } from './_defs';\r\n\r\nexport const analogInput = {\r\n defaults: () => ({\r\n 'settings.values[0].name': 'Analog',\r\n }),\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n oversampling: { name: 'Oversampling', type: 'checkbox', var: 'configs[0]' },\r\n }\r\n },\r\n advanced: {\r\n name: 'Two point calibration',\r\n configs: {\r\n enabled: { name: 'Calibration Enabled', type: 'checkbox', var: 'configs[3]' },\r\n point1: [{ name: 'Point 1', type: 'number', var: 'configs_long[0]' }, { name: '=', type: 'number', var: 'configs_float[0]' }],\r\n point2: [{ name: 'Point 2', type: 'number', var: 'configs_long[1]' }, { name: '=', type: 'number', var: 'configs_float[1]' }],\r\n }\r\n },\r\n data: true,\r\n vals: 1,\r\n}","import { pins, getTasks, getTaskValues } from './_defs';\r\n\r\nconst i2c_address = [\r\n { value: 118, name: '0x76 (118) - (default)' }, \r\n { value: 119, name: '0x77 (119) - (default)' }, \r\n]\r\n\r\nexport const bmp280 = {\r\n defaults: () => ({\r\n ValueCount: 1,\r\n SendDataOption: 1,\r\n TimerOption: 1,\r\n TimerOptional: 1,\r\n GlobalSync: 1,\r\n 'settings.values[0].name': 'Temperature',\r\n 'settings.values[1].name': 'Pressure',\r\n }),\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n i2c_address: { name: 'I2C Address', type: 'select', options: i2c_address, var: 'configs[0]' },\r\n altitude: { name: 'Altitude', type: 'number', var: 'configs[1]' },\r\n }\r\n },\r\n data: true,\r\n vals: 2\r\n}","import { pins, getTasks, getTaskValues } from './_defs';\r\n\r\nexport const sht1x = {\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n pullup: { name: 'Internal PullUp', type: 'checkbox', var: 'pin1pullup' },\r\n gpio1: { name: 'GPIO Data', type: 'select', options: pins, var: 'gpio1' },\r\n gpio2: { name: 'GPIO SCK', type: 'select', options: pins, var: 'gpio2' },\r\n },\r\n },\r\n data: true,\r\n vals: 1,\r\n}","import { pins, getTasks, getTaskValues } from './_defs';\r\n\r\nconst i2c_address = [\r\n { value: 118, name: '0x76 (118)' }, \r\n { value: 119, name: '0x77 (119) - (default)' }, \r\n]\r\n\r\n\r\nexport const ms5611 = {\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n i2c_address: { name: 'I2C Address', type: 'select', options: i2c_address, var: 'configs[0]' },\r\n altitude: { name: 'Altitude', type: 'number', var: 'configs[1]' },\r\n }\r\n },\r\n data: true,\r\n vals: 1,\r\n}","\r\nconst sensorModel = [\r\n { value: 1, name: 'SENSOR_TYPE_SINGLE' }, \r\n { value: 2, name: 'SENSOR_TYPE_TEMP_HUM' }, \r\n { value: 3, name: 'SENSOR_TYPE_TEMP_BARO' }, \r\n { value: 4, name: 'SENSOR_TYPE_TEMP_HUM_BARO' }, \r\n { value: 5, name: 'SENSOR_TYPE_DUAL' },\r\n { value: 5, name: 'SENSOR_TYPE_TRIPLE' },\r\n { value: 7, name: 'SENSOR_TYPE_QUAD' },\r\n { value: 10, name: 'SENSOR_TYPE_SWITCH' },\r\n { value: 11, name: 'SENSOR_TYPE_DIMMER' },\r\n { value: 20, name: 'SENSOR_TYPE_LONG' },\r\n { value: 21, name: 'SENSOR_TYPE_WIND' },\r\n]\r\n\r\nexport const dummyDevice = {\r\n defaults: () => ({\r\n interval: 0,\r\n 'settings.values[0].name': 'Dummy1',\r\n 'settings.values[1].name': 'Dummy1',\r\n 'settings.values[2].name': 'Dummy3',\r\n 'settings.values[3].name': 'Dummy4',\r\n }),\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n switch_type: { name: 'Simulate Sensor Type', type: 'select', options: sensorModel, var: 'configs[0]' },\r\n interval: { name: 'Interval', type: 'number' },\r\n }\r\n },\r\n data: true,\r\n vals: 4,\r\n}","\r\nconst sensorModel = [\r\n { value: 1, name: 'SENSOR_TYPE_SINGLE' }, \r\n { value: 2, name: 'SENSOR_TYPE_TEMP_HUM' }, \r\n { value: 3, name: 'SENSOR_TYPE_TEMP_BARO' }, \r\n { value: 4, name: 'SENSOR_TYPE_TEMP_HUM_BARO' }, \r\n { value: 5, name: 'SENSOR_TYPE_DUAL' },\r\n { value: 5, name: 'SENSOR_TYPE_TRIPLE' },\r\n { value: 7, name: 'SENSOR_TYPE_QUAD' },\r\n { value: 10, name: 'SENSOR_TYPE_SWITCH' },\r\n { value: 11, name: 'SENSOR_TYPE_DIMMER' },\r\n { value: 20, name: 'SENSOR_TYPE_LONG' },\r\n { value: 21, name: 'SENSOR_TYPE_WIND' },\r\n]\r\n\r\nexport const dht12 = {\r\n data: {\r\n name: 'Data Acquisition',\r\n configs: {\r\n interval: { name: 'Interval', type: 'number' },\r\n }\r\n },\r\n data: true,\r\n vals: 2,\r\n}","import { pins } from './_defs';\r\n\r\nconst i2c_address = [\r\n { value: 35, name: '0x23 (35) - default' }, \r\n { value: 92, name: '0x5c (92)' }, \r\n]\r\n\r\nconst displaySize = [\r\n { value: 1, name: 'RESOLUTION_LOW' }, \r\n { value: 2, name: 'RESOLUTION_NORMAL' }, \r\n { value: 3, name: 'RESOLUTION_HIGH' }, \r\n { value: 99, name: 'RESOLUTION_AUTO_HIGH' }, \r\n]\r\n\r\nexport const sh1106 = {\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n i2c_address: { name: 'I2C Address', type: 'select', options: i2c_address, var: 'configs[0]' },\r\n rotation: { name: 'Rotation', type: 'select', options: displaySize, var: 'configs[1]' },\r\n size: { name: 'Display Size', type: 'select', options: displaySize, var: 'configs[1]' },\r\n font: { name: 'Font Width', type: 'select', options: displaySize, var: 'configs[1]' },\r\n line1: { name: 'Line 1', type: 'text', var: 'configs[2]' },\r\n line2: { name: 'Line 2', type: 'text', var: 'configs[2]' },\r\n line3: { name: 'Line 3', type: 'text', var: 'configs[2]' },\r\n line4: { name: 'Line 4', type: 'text', var: 'configs[2]' },\r\n line5: { name: 'Line 4', type: 'text', var: 'configs[2]' },\r\n line6: { name: 'Line 4', type: 'text', var: 'configs[2]' },\r\n line7: { name: 'Line 4', type: 'text', var: 'configs[2]' },\r\n line8: { name: 'Line 4', type: 'text', var: 'configs[2]' },\r\n button: { name: 'Display Button', type: 'select', options: pins, var: 'gpio1' },\r\n timeout: { name: 'Display Timeout', type: 'number', var: 'configs[2]' },\r\n }\r\n },\r\n data: true,\r\n vals: 1,\r\n}","\r\n\r\nexport const mqttImport = {\r\n data: {\r\n name: 'Data Acquisition',\r\n configs: {\r\n switch_type: { name: 'MQTT Topic 1', type: 'text', var: 'configs[0]' },\r\n switch_type: { name: 'MQTT Topic 2', type: 'text', var: 'configs[0]' },\r\n switch_type: { name: 'MQTT Topic 3', type: 'text', var: 'configs[0]' },\r\n switch_type: { name: 'MQTT Topic 4', type: 'text', var: 'configs[0]' },\r\n }\r\n }\r\n}","import { pins, getTasks, getTaskValues } from './_defs';\r\n\r\nconst type = [\r\n { value: 1, name: 'GRB' }, \r\n { value: 2, name: 'GRBW' }, \r\n]\r\n\r\nexport const neopixelBasic = {\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n leds: { name: 'LEd Count', type: 'number', var: 'configs[0]' },\r\n gpio: { name: 'GPIO', type: 'select', options: pins, var: 'gpio1' },\r\n type: { name: 'Strip Type', type: 'select', options: type, var: 'configs[1]' },\r\n }\r\n },\r\n}","import { pins, getTasks, getTaskValues } from './_defs';\r\n\r\nconst type = [\r\n { value: 1, name: 'MAX 6675' }, \r\n { value: 2, name: 'MAX 31855' }, \r\n]\r\n\r\nexport const thermocouple = {\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n gpio: { name: 'GPIO', type: 'select', options: pins, var: 'gpio1' },\r\n type: { name: 'Adapter IC', type: 'select', options: type, var: 'configs[0]' },\r\n }\r\n },\r\n}","import { pins } from './_defs';\r\n\r\nconst modeTypes = [\r\n { value: 0, name: 'LOW' }, \r\n { value: 1, name: 'CHANGE' }, \r\n { value: 2, name: 'RISING' }, \r\n { value: 3, name: 'FALLING' }, \r\n]\r\n\r\nconst counterTypes = [\r\n { value: 0, name: 'Delta' }, \r\n { value: 1, name: 'Delta/Total/Time' }, \r\n { value: 2, name: 'Total' }, \r\n { value: 3, name: 'Delta/Total' }, \r\n]\r\n\r\nexport const genericPulse = {\r\n sensor: {\r\n defaults: () => ({\r\n gpio1: 255,\r\n 'settings.values[0].name': 'Count',\r\n 'settings.values[1].name': 'Total',\r\n 'settings.values[2].name': 'Time',\r\n }),\r\n name: 'Sensor',\r\n configs: {\r\n gpio: { name: 'GPIO', type: 'select', options: pins, var: 'gpio1' },\r\n debounce: { name: 'De-bounce (ms)', type: 'number', var: 'configs[0]' },\r\n counter_type: { name: 'Counter Type', type: 'select', options: counterTypes, var: 'configs[1]' },\r\n mode_type: { name: 'Switch Button Type', type: 'select', options: modeTypes, var: 'configs[2]' },\r\n }\r\n },\r\n data: true,\r\n vals: 3,\r\n}","import { pins, getTasks, getTaskValues } from './_defs';\r\n\r\nexport const neopixelClock = {\r\n sensor: {\r\n name: 'Actuator',\r\n configs: {\r\n gpio: { name: 'GPIO', type: 'select', options: pins, var: 'gpio1' },\r\n R: { name: 'Red', type: 'number', min: 0, max: 255, var: 'configs[0]' },\r\n G: { name: 'Green', type: 'number', min: 0, max: 255, var: 'configs[1]' },\r\n B: { name: 'Blue', type: 'number', min: 0, max: 255, var: 'configs[2]' },\r\n }\r\n },\r\n}","import { pins, getTasks, getTaskValues } from './_defs';\r\n\r\nexport const neopixelCandle = {\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n gpio: { name: 'GPIO', type: 'select', options: pins, var: 'gpio1' },\r\n }\r\n },\r\n}","import { pins, getTasks, getTaskValues } from './_defs';\r\n\r\nconst type = [\r\n { value: 0, name: '' },\r\n { value: 1, name: 'Off' }, \r\n { value: 2, name: 'On' }, \r\n]\r\n\r\nexport const clock = {\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n gpio: { name: 'GPIO - Clock Event', type: 'select', options: pins, var: 'gpio1' },\r\n event1: [{ name: 'Day, Time 1', type: 'string', var: 'configs[0]' }, { name: '', type: 'select', options: type, var: 'configs[1]' }],\r\n event2: [{ name: 'Day, Time 1', type: 'string', var: 'configs[0]' }, { name: '', type: 'select', options: type, var: 'configs[1]' }],\r\n event3: [{ name: 'Day, Time 1', type: 'string', var: 'configs[0]' }, { name: '', type: 'select', options: type, var: 'configs[1]' }],\r\n event4: [{ name: 'Day, Time 1', type: 'string', var: 'configs[0]' }, { name: '', type: 'select', options: type, var: 'configs[1]' }],\r\n event5: [{ name: 'Day, Time 1', type: 'string', var: 'configs[0]' }, { name: '', type: 'select', options: type, var: 'configs[1]' }],\r\n event6: [{ name: 'Day, Time 1', type: 'string', var: 'configs[0]' }, { name: '', type: 'select', options: type, var: 'configs[1]' }],\r\n event7: [{ name: 'Day, Time 1', type: 'string', var: 'configs[0]' }, { name: '', type: 'select', options: type, var: 'configs[1]' }],\r\n event8: [{ name: 'Day, Time 1', type: 'string', var: 'configs[0]' }, { name: '', type: 'select', options: type, var: 'configs[1]' }],\r\n }\r\n },\r\n}","import { pins } from './_defs';\r\n\r\nconst parity = [\r\n { value: 0, name: 'No Parity' }, \r\n { value: 1, name: 'Even' }, \r\n { value: 2, name: 'Odd' }, \r\n]\r\n\r\nexport const wifiGateway = {\r\n sensor: {\r\n name: 'Settings',\r\n configs: {\r\n port: { name: 'TCP Port', type: 'number', var: 'configs_float[0]' },\r\n baudrate: { name: 'Baudrate', type: 'number', var: 'configs_float[0]' },\r\n data_bits: { name: 'Data Bits', type: 'number', var: 'configs_float[0]' },\r\n parity: { name: 'Parity', type: 'select', options: parity, var: 'configs[0]' },\r\n stop_bits: { name: 'Stop Bits', type: 'number', var: 'configs_float[0]' },\r\n reset_after_boot: { name: 'Reset target after boot', type: 'select', options: pins, var: 'configs[1]' },\r\n timeout: { name: 'RX Receive Timeout', type: 'number', var: 'configs_float[0]' },\r\n }\r\n }\r\n}","\r\nimport { pins } from './_defs';\r\n\r\nexport const mhz19 = {\r\n sensor: {\r\n name: 'Data Acquisition',\r\n configs: {\r\n gpio1: { name: 'GPIO - TX', type: 'select', options: pins, var: 'gpio1' },\r\n gpio2: { name: 'GPIO - RX', type: 'select', options: pins, var: 'gpio2' },\r\n }\r\n },\r\n data: true,\r\n vals: 1,\r\n}","import { pins } from './_defs';\r\n\r\nexport const ds18b20 = {\r\n defaults: () => ({\r\n gpio1: 255,\r\n 'settings.values[0].name': 'Temperature',\r\n }),\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n gpio: { name: 'GPIO', type: 'select', options: pins, var: 'gpio1' },\r\n }\r\n },\r\n data: true,\r\n vals: 1,\r\n}","\r\nimport { pins } from './_defs';\r\n\r\nexport const senseAir = {\r\n sensor: {\r\n name: 'Data Acquisition',\r\n configs: {\r\n gpio1: { name: 'GPIO - TX', type: 'select', options: pins, var: 'gpio1' },\r\n gpio2: { name: 'GPIO - RX', type: 'select', options: pins, var: 'gpio2' },\r\n }\r\n },\r\n data: true,\r\n vals: 1,\r\n}","\r\nimport { pins } from './_defs';\r\n\r\nexport const sds011 = {\r\n sensor: {\r\n name: 'Data Acquisition',\r\n configs: {\r\n gpio1: { name: 'GPIO - TX', type: 'select', options: pins, var: 'gpio1' },\r\n gpio2: { name: 'GPIO - RX', type: 'select', options: pins, var: 'gpio2' },\r\n }\r\n },\r\n data: true,\r\n vals: 1,\r\n}","\r\nimport { pins } from './_defs';\r\n\r\nexport const rotaryEncoder = {\r\n defaults: () => ({\r\n ValueCount: 1,\r\n SendDataOption: 1,\r\n TimerOption: 1,\r\n TimerOptional: 1,\r\n GlobalSync: 1,\r\n }),\r\n sensor: {\r\n name: 'Data Acquisition',\r\n configs: {\r\n gpio1: { name: 'GPIO A - CLK', type: 'select', options: pins, var: 'gpio1' },\r\n gpio2: { name: 'GPIO B - DT', type: 'select', options: pins, var: 'gpio2' },\r\n gpio3: { name: 'GPIO I - Z', type: 'select', options: pins, var: 'gpio3' },\r\n limit_min: { name: 'Limit - Min', type: 'number', var: 'configs_long[0]' },\r\n limit_max: { name: 'Limit - Max', type: 'number', var: 'configs_long[1]' },\r\n }\r\n },\r\n data: true,\r\n vals: 1,\r\n}","import { pins } from './_defs';\r\n\r\nconst sensorModel = [\r\n { value: 11, name: 'DHT11' }, \r\n { value: 22, name: 'DHT22' }, \r\n { value: 12, name: 'DHT12' }, \r\n { value: 23, name: 'Sonoff am2301' }, \r\n { value: 70, name: 'Sonoff si7021' },\r\n]\r\n\r\nexport const dht = {\r\n defaults: () => ({\r\n gpio1: 255,\r\n interval: 60,\r\n 'configs[0]': 11,\r\n 'settings.values[0].name': 'Temperature',\r\n 'settings.values[1].name': 'Humidity',\r\n }),\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n gpio: { name: 'GPIO Data', type: 'select', options: pins, var: 'gpio1' },\r\n switch_type: { name: 'Sensor model', type: 'select', options: sensorModel, var: 'configs[0]' },\r\n }\r\n },\r\n data: true,\r\n vals: 2,\r\n}","\r\nimport { pins } from './_defs';\r\n\r\nexport const ttp229 = {\r\n defaults: () => ({\r\n 'gpio1' : 1,\r\n }),\r\n sensor: {\r\n defaults: () => ({\r\n ValueCount: 1,\r\n SendDataOption: 1,\r\n TimerOption: 1,\r\n TimerOptional: 1,\r\n GlobalSync: 1,\r\n }),\r\n name: 'Sensor',\r\n configs: {\r\n gpio1: { name: 'GPIO A - CLK', type: 'select', options: pins, var: 'gpio1' },\r\n gpio2: { name: 'GPIO B - DT', type: 'select', options: pins, var: 'gpio2' },\r\n scancode: { name: 'ScanCode', type: 'checkbox', options: pins, var: 'configs[1]' },\r\n }\r\n },\r\n data: true,\r\n vals: 1,\r\n}","import { pins } from './_defs';\r\n\r\nconst eventTypes = [\r\n { value: 0, name: 'Disabled' }, \r\n { value: 1, name: 'Active on LOW' }, \r\n { value: 2, name: 'Active on HIGH' }, \r\n { value: 3, name: 'Active on LOW and HIGH' }, \r\n]\r\n\r\nexport const bmp085 = {\r\n defaults: () => ({\r\n 'settings.values[0].name': 'Temperature',\r\n 'settings.values[1].name': 'Pressure',\r\n }),\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n altitude: { name: 'Altitude', type: 'number', var: 'configs[1]' },\r\n }\r\n },\r\n data: true,\r\n vals: 2,\r\n}","import { pins } from './_defs';\r\n\r\n\r\nexport const pcf8591 = {\r\n defaults: () => ({\r\n 'settings.values[0].name': 'Analog',\r\n }),\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n port: { name: 'PORT', type: 'number', var: 'gpio4' },\r\n }\r\n },\r\n data: true,\r\n vars: 1\r\n}","import { pins } from './_defs';\r\n\r\nconst weigandType = [\r\n { value: 26, name: '26 Bits' }, \r\n { value: 34, name: '34 Bits' }, \r\n]\r\n\r\nexport const rfidWeigand = {\r\n defaults: () => ({\r\n gpio1: 255,\r\n gpio2: 255,\r\n 'settings.values[0].name': 'Tag',\r\n }),\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n gpio1: { name: 'GPIO D0 (green, 5V)', type: 'select', options: pins, var: 'gpio1' },\r\n gpio2: { name: 'GPIO D1 (white, 5V)', type: 'select', options: pins, var: 'gpio2' },\r\n type: { name: 'Weigand Type', type: 'select', options: weigandType, var: 'configs[0]' },\r\n }\r\n },\r\n data: true,\r\n vars: 1\r\n}","import { pins } from './_defs';\r\n\r\nconst eventTypes = [\r\n { value: 0, name: 'Disabled' }, \r\n { value: 1, name: 'Active on LOW' }, \r\n { value: 2, name: 'Active on HIGH' }, \r\n { value: 3, name: 'Active on LOW and HIGH' }, \r\n]\r\n\r\nexport const inputMcp = {\r\n defaults: () => ({\r\n gpio4: 0,\r\n 'settings.values[0].name': 'Switch',\r\n }),\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n port: { name: 'PORT', type: 'number', var: 'gpio4' },\r\n inversed: { name: 'Inversed logic', type: 'checkbox', var: 'pin1inversed' },\r\n send_boot_state: { name: 'Send Boot State', type: 'checkbox', var: 'configs[3]' },\r\n }\r\n },\r\n advanced: {\r\n name: 'Advanced event management',\r\n configs: {\r\n debounce: { name: 'De-bounce (ms)', type: 'number', var: 'configs_float[0]' },\r\n dblclick: { name: 'Doublclick Event', type: 'select', options: eventTypes, var: 'configs[4]' },\r\n dblclick_interval: { name: 'Doubleclick Max interval (ms)', type: 'number', var: 'configs_float[1]' },\r\n longpress: { name: 'Longpress event', type: 'select', options: eventTypes, var: 'configs[5]' },\r\n longpress_interval: { name: 'Longpress min interval (ms)', type: 'number', var: 'configs_float[2]' },\r\n safe_button: { name: 'Use safe button', type: 'checkbox', var: 'configs_float[3]' },\r\n }\r\n },\r\n data: true,\r\n vars: 1,\r\n}","import { settings } from '../lib/settings';\r\n\r\nexport { pins } from '../pages/config.hardware';\r\n\r\n\r\nexport const getTasks = () => {\r\n return settings.get('tasks').filter(task => task.enabled).map(task => ({ value: task.settings.index, name: task.settings.name }));\r\n}\r\n\r\nexport const getTaskValues = () => {\r\n return [ 1, 2, 3, 4 ];\r\n}","import { inputSwitch } from './1_input_switch';\r\nimport { analogInput } from './2_analog_input';\r\nimport { genericPulse } from './3_generic_pulse';\r\nimport { ds18b20 } from './4_ds18b20';\r\nimport { dht } from './5_dht';\r\nimport { bmp085 } from './6_bmp085';\r\nimport { pcf8591 } from './7_pcf8591';\r\nimport { rfidWeigand } from './8_rfid';\r\nimport { inputMcp } from './9_io_mcp';\r\nimport { bh1750 } from './10_light_lux';\r\nimport { pme } from './11_pme';\r\nimport { lcd2004 } from './12_lcd';\r\nimport { hcsr04 } from './13_hcsr04';\r\nimport { si7021 } from './14_si7021';\r\nimport { tls2561 } from './15_tls2561';\r\nimport { pn532 } from './17_pn532';\r\nimport { dust } from './18_dust';\r\nimport { pcf8574 } from './19_pcf8574';\r\nimport { ser2net } from './20_ser2net';\r\nimport { levelControl } from './21_level_control';\r\nimport { pca9685 } from './22_pca9685';\r\nimport { oled1306 } from './23_oled1306';\r\nimport { mlx90614 } from './24_mlx90614';\r\nimport { ads1115 } from './25_ads1115';\r\nimport { systemInfo } from './26_system_info';\r\nimport { ina219 } from './27_ina219';\r\nimport { bmx280 } from './28_bmx280';\r\nimport { mqttDomoticz } from './29_mqtt_domoticz';\r\nimport { bmp280 } from './30_bmp280';\r\nimport { sht1x } from './31_sht1x';\r\nimport { ms5611 } from './32_ms5611';\r\nimport { dummyDevice } from './33_dummy_device';\r\nimport { dht12 } from './34_dht12';\r\nimport { sh1106 } from './36_sh1106';\r\nimport { mqttImport } from './37_mqtt_import';\r\nimport { neopixelBasic } from './38_neopixel_basic';\r\nimport { thermocouple } from './39_thermocouple';\r\nimport { neopixelClock } from './41_neopixel_clock';\r\nimport { neopixelCandle } from './42_neopixel_candle';\r\nimport { clock } from './43_output_clock';\r\nimport { wifiGateway } from './44_wifi_gateway';\r\nimport { mhz19 } from './49_mhz19';\r\nimport { senseAir } from './52_senseair';\r\nimport { sds011 } from './56_sds011';\r\nimport { rotaryEncoder } from './59_rotary_encoder';\r\nimport { ttp229 } from './63_ttp229';\r\n\r\nexport const devices = [\r\n { name: '- None -', value: 0, fields: [] },\r\n { name: 'Switch input - Switch', value: 1, fields: inputSwitch },\r\n { name: 'Analog input - internal', value: 2, fields: analogInput },\r\n { name: 'Generic - Pulse counter', value: 3, fields: genericPulse },\r\n { name: 'Environment - DS18b20', value: 4, fields: ds18b20 },\r\n { name: 'Environment - DHT11/12/22 SONOFF2301/7021', value: 5, fields: dht },\r\n { name: 'Environment - BMP085/180', value: 6, fields: bmp085 },\r\n { name: 'Analog input - PCF8591', value: 7, fields: pcf8591 },\r\n { name: 'RFID - Wiegand', value: 8, fields: rfidWeigand },\r\n { name: 'Switch input - MCP23017', value: 9, fields: inputMcp },\r\n { name: 'Light/Lux - BH1750', value: 10, fields: bh1750 },\r\n { name: 'Extra IO - ProMini Extender', value: 11, fields: pme },\r\n { name: 'Display - LCD2004', value: 12, fields: lcd2004 },\r\n { name: 'Position - HC-SR04, RCW-0001, etc.', value: 13, fields: hcsr04 },\r\n { name: 'Environment - SI7021/HTU21D', value: 14, fields: si7021 },\r\n { name: 'Light/Lux - TSL2561', value: 15, fields: tls2561 },\r\n //{ name: 'Communication - IR', value: 16, fields: bh1750 },\r\n { name: 'RFID - PN532', value: 17, fields: pn532 },\r\n { name: 'Dust - Sharp GP2Y10', value: 18, fields: dust },\r\n { name: 'Switch input - PCF8574', value: 19, fields: pcf8574 },\r\n { name: 'Communication - Serial Server', value: 20, fields: ser2net },\r\n { name: 'Regulator - Level Control', value: 21, fields: levelControl },\r\n { name: 'Extra IO - PCA9685', value: 22, fields: pca9685 },\r\n { name: 'Display - OLED SSD1306', value: 23, fields: oled1306 },\r\n { name: 'Environment - MLX90614', value: 24, fields: mlx90614 },\r\n { name: 'Analog input - ADS1115', value: 25, fields: ads1115 },\r\n { name: 'Generic - System Info', value: 26, fields: systemInfo },\r\n { name: 'Energy (DC) - INA219', value: 27, fields: ina219 },\r\n { name: 'Environment - BMx280', value: 28, fields: bmx280 },\r\n { name: 'Output - Domoticz MQTT Helper', value: 29, fields: mqttDomoticz },\r\n { name: 'Environment - BMP280', value: 30, fields: bmp280 },\r\n { name: 'Environment - SHT1X', value: 31, fields: sht1x },\r\n { name: 'Environment - MS5611 (GY-63)', value: 32, fields: ms5611 },\r\n { name: 'Generic - Dummy Device', value: 33, fields: dummyDevice },\r\n { name: 'Environment - DHT12 (I2C)', value: 34, fields: dht12 },\r\n { name: 'Display - OLED SSD1306/SH1106 Framed', value: 36, fields: sh1106 },\r\n { name: 'Generic - MQTT Import', value: 37, fields: mqttImport },\r\n { name: 'Output - NeoPixel (Basic)', value: 38, fields: neopixelBasic },\r\n { name: 'Environment - Thermocouple', value: 39, fields: thermocouple },\r\n { name: 'Output - NeoPixel (Word Clock)', value: 41, fields: neopixelClock },\r\n { name: 'Output - NeoPixel (Candle)', value: 42, fields: neopixelCandle },\r\n { name: 'Output - Clock', value: 43, fields: clock },\r\n { name: 'Communication - P1 Wifi Gateway', value: 44, fields: wifiGateway },\r\n { name: 'Gases - CO2 MH-Z19', value: 49, fields: mhz19 },\r\n { name: 'Gases - CO2 Senseair', value: 52, fields: senseAir },\r\n { name: 'Dust - SDS011/018/198', value: 56, fields: sds011 },\r\n { name: 'Switch Input - Rotary Encoder', value: 59, fields: rotaryEncoder },\r\n { name: 'Keypad - TTP229 Touc', value: 63, fields: ttp229 },\r\n].sort((a, b) => a.name.localeCompare(b.name));","import miniToastr from 'mini-toastr';\nimport { loader } from './loader';\n\nexport const getJsonStat = async (url = '') => {\n return await fetch(`${url}/json`).then(response => response.json())\n}\n\nexport const loadDevices = async (url) => {\n return getJsonStat(url).then(response => response.Sensors);\n}\n\nexport const getConfigNodes = async () => {\n const devices = await loadDevices();\n const vars = [];\n const nodes = devices.map(device => {\n const taskValues = device.TaskValues || [];\n taskValues.map(value => vars.push(`${device.TaskName}#${value.Name}`));\n const result = [{\n group: 'TRIGGERS',\n type: device.TaskName || `${device.TaskNumber}-${device.Type}`,\n inputs: [],\n outputs: [1],\n config: [{\n name: 'variable',\n type: 'select',\n values: taskValues.map(value => value.Name),\n value: taskValues.length ? taskValues[0].Name : '',\n }, {\n name: 'euqality',\n type: 'select',\n values: ['', '=', '<', '>', '<=', '>=', '!='],\n value: '',\n }, {\n name: 'value',\n type: 'number',\n }],\n indent: true,\n toString: function () { \n const comparison = this.config[1].value === '' ? 'changes' : `${this.config[1].value} ${this.config[2].value}`;\n return `when ${this.type}.${this.config[0].value} ${comparison}`; \n },\n toDsl: function () { \n const comparison = this.config[1].value === '' ? '' : `${this.config[1].value}${this.config[2].value}`;\n return [`on ${this.type}#${this.config[0].value}${comparison} do\\n%%output%%\\nEndon\\n`]; \n }\n }];\n\n let fnNames, fnName, name;\n switch (device.Type) {\n // todo: need access to GPIO number\n // case 'Switch input - Switch':\n // result.push({\n // group: 'ACTIONS',\n // type: `${device.TaskName} - switch`,\n // inputs: [1],\n // outputs: [1],\n // config: [{\n // name: 'value',\n // type: 'number',\n // }],\n // toString: function () { return `${device.TaskName}.level = ${this.config[0].value}`; },\n // toDsl: function () { return [`config,task,${device.TaskName},setlevel,${this.config[0].value}`]; }\n // });\n // break;\n case 'Regulator - Level Control':\n result.push({\n group: 'ACTIONS',\n type: `${device.TaskName} - setlevel`,\n inputs: [1],\n outputs: [1],\n config: [{\n name: 'value',\n type: 'number',\n }],\n toString: function () { return `${device.TaskName}.level = ${this.config[0].value}`; },\n toDsl: function () { return [`config,task,${device.TaskName},setlevel,${this.config[0].value}`]; }\n });\n break;\n case 'Extra IO - PCA9685':\n case 'Switch input - PCF8574':\n case 'Switch input - MCP23017':\n fnNames = {\n 'Extra IO - PCA9685': 'PCF',\n 'Switch input - PCF8574': 'PCF',\n 'Switch input - MCP23017': 'MCP',\n };\n fnName = fnNames[device.Type];\n result.push({\n group: 'ACTIONS',\n type: `${device.TaskName} - GPIO`,\n inputs: [1],\n outputs: [1],\n config: [{\n name: 'pin',\n type: 'select',\n values: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16],\n }, {\n name: 'value',\n type: 'select',\n values: [0, 1],\n }],\n toString: function () { return `${device.TaskName}.pin${this.config[0].value} = ${this.config[1].value}`; },\n toDsl: function () { return [`${fnName}GPIO,${this.config[0].value},${this.config[1].value}`]; }\n });\n result.push({\n group: 'ACTIONS',\n type: `${device.TaskName} - Pulse`,\n inputs: [1],\n outputs: [1],\n config: [{\n name: 'pin',\n type: 'select',\n values: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16],\n }, {\n name: 'value',\n type: 'select',\n values: [0, 1],\n },{\n name: 'unit',\n type: 'select',\n values: ['ms', 's'],\n },{\n name: 'duration',\n type: 'number',\n }],\n toString: function () { return `${device.TaskName}.pin${this.config[0].value} = ${this.config[1].value} for ${this.config[3].value}${this.config[2].value}`; },\n toDsl: function () { \n if (this.config[2].value === 's') {\n return [`${fnName}LongPulse,${this.config[0].value},${this.config[1].value},${this.config[2].value}`]; \n } else {\n return [`${fnName}Pulse,${this.config[0].value},${this.config[1].value},${this.config[2].value}`]; \n }\n }\n });\n break;\n case 'Extra IO - ProMini Extender':\n result.push({\n group: 'ACTIONS',\n type: `${device.TaskName} - GPIO`,\n inputs: [1],\n outputs: [1],\n config: [{\n name: 'pin',\n type: 'select',\n values: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16],\n }, {\n name: 'value',\n type: 'select',\n values: [0, 1],\n }],\n toString: function () { return `${device.TaskName}.pin${this.config[0].value} = ${this.config[1].value}`; },\n toDsl: function () { return [`EXTGPIO,${this.config[0].value},${this.config[1].value}`]; }\n });\n break;\n case 'Display - OLED SSD1306':\n case 'Display - LCD2004':\n fnNames = {\n 'Display - OLED SSD1306': 'OLED',\n 'Display - LCD2004': 'LCD',\n };\n fnName = fnNames[device.Type];\n result.push({\n group: 'ACTIONS',\n type: `${device.TaskName} - Write`,\n inputs: [1],\n outputs: [1],\n config: [{\n name: 'row',\n type: 'select',\n values: [1, 2, 3, 4],\n }, {\n name: 'column',\n type: 'select',\n values: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20],\n }, {\n name: 'text',\n type: 'text',\n }],\n toString: function () { return `${device.TaskName}.text = ${this.config[2].value}`; },\n toDsl: function () { return [`${fnName},${this.config[0].value},${this.config[1].value},${this.config[2].value}`]; }\n });\n break;\n case 'Generic - Dummy Device':\n result.push({\n group: 'ACTIONS',\n type: `${device.TaskName} - Write`,\n inputs: [1],\n outputs: [1],\n config: [{\n name: 'variable',\n type: 'select',\n values: taskValues.map(value => value.Name),\n }, {\n name: 'value',\n type: 'text',\n }],\n toString: function () { return `${device.TaskName}.${this.config[0].value} = ${this.config[1].value}`; },\n toDsl: function () { return [`TaskValueSet,${device.TaskNumber},${this.config[0].values.findIndex(this.config[0].value)},${this.config[1].value}`]; }\n });\n break;\n }\n\n return result;\n }).flat();\n\n return { nodes, vars };\n}\n\nexport const getVariables = async () => {\n const urls = ['']; //, 'http://192.168.1.130'\n const vars = {};\n await Promise.all(urls.map(async url => {\n const stat = await getJsonStat(url);\n stat.Sensors.map(device => {\n device.TaskValues.map(value => {\n vars[`${stat.System.Name}@${device.TaskName}#${value.Name}`] = value.Value;\n });\n });\n }));\n return vars;\n}\n\nexport const getDashboardConfigNodes = async (url) => {\n const devices = await loadDevices(url);\n const vars = [];\n const nodes = devices.map(device => {\n device.TaskValues.map(value => vars.push(`${device.TaskName}#${value.Name}`));\n return [];\n }).flat();\n\n return { nodes, vars };\n}\n\nexport const fetchProgress = (url, opts={}) => {\n return new Promise( (res, rej)=>{\n var xhr = new XMLHttpRequest();\n xhr.open(opts.method || 'get', url);\n for (var k in opts.headers||{})\n xhr.setRequestHeader(k, opts.headers[k]);\n xhr.onload = e => res(e.target.responseText);\n xhr.onerror = rej;\n if (xhr.upload && opts.onProgress)\n xhr.upload.onprogress = opts.onProgress; // event.loaded / event.total * 100 ; //event.lengthComputable\n xhr.send(opts.body);\n });\n}\n\nexport const storeFile = async (filename, data, onProgress) => {\n loader.show();\n const file = data ? new File([new Blob([data])], filename) : filename;\n const formData = new FormData();\n formData.append('edit', 1);\n formData.append('file', file);\n \n return await fetchProgress('/upload_json', {\n method: 'post',\n body: formData,\n }, onProgress).then(() => {\n loader.hide();\n miniToastr.success('Successfully saved to flash!', '', 5000);\n }, e => {\n loader.hide();\n miniToastr.error(e.message, '', 5000);\n });\n}\n\nexport const deleteFile = async (filename,) => { \n return await fetch('/filelist?delete='+filename).then(() => {\n miniToastr.success('Successfully saved to flash!', '', 5000);\n }, e => {\n miniToastr.error(e.message, '', 5000);\n });\n}\n\nexport const storeDashboardConfig = async (config) => {\n storeFile('d1.txt', config);\n}\n\nexport const loadDashboardConfig = async (nodes) => {\n return await fetch('/d1.txt').then(response => response.json());\n}\n\nexport const storeRuleConfig = async (config) => {\n storeFile('r1.txt', config);\n}\n\nexport const loadRuleConfig = async () => {\n return await fetch('/r1.txt').then(response => response.json());\n}\n\nexport const storeRule = async (rule) => {\n const formData = new FormData();\n formData.append('set', 1);\n formData.append('rules', rule);\n \n return await fetch('/rules', {\n method: 'post',\n body: formData,\n });\n}\n\n\nexport default {\n getJsonStat, loadDevices, getConfigNodes, getDashboardConfigNodes, getVariables, storeFile, deleteFile, storeDashboardConfig, loadDashboardConfig, storeRuleConfig, loadRuleConfig, storeRule\n}","import { getKeys } from \"./helpers\";\n\n// todo:\n// improve relability of moving elements around\n\n// global config\nconst color = '#000000';\n\nconst saveChart = renderedNodes => {\n // find initial nodes (triggers);\n const triggers = renderedNodes.filter(node => node.inputs.length === 0);\n\n // for each initial node walk the tree and produce one 'rule'\n const result = triggers.map(trigger => {\n const walkRule = rule => {\n return {\n t: rule.type,\n v: rule.config.map(config => config.value),\n o: rule.outputs.map(out => out.lines.map(line => walkRule(line.input.nodeObject))),\n c: [rule.position.x, rule.position.y]\n }\n }\n\n return walkRule(trigger);\n });\n\n return result;\n}\n\nconst loadChart = (config, chart, from) => {\n config.map(config => {\n let node = chart.renderedNodes.find(n => n.position.x === config.c[0] && n.position.y === config.c[1]);\n if (!node) {\n const configNode = chart.nodes.find(n => config.t == n.type);\n node = new NodeUI(chart.canvas, configNode, { x: config.c[0], y: config.c[1] });\n node.config.map((cfg, i) => {\n cfg.value = config.v[i];\n });\n node.render();\n chart.renderedNodes.push(node);\n }\n \n\n if (from) {\n const fromDimension = from.getBoundingClientRect();\n const toDimension = node.inputs[0].getBoundingClientRect();\n const lineSvg = new svgArrow(document.body.clientWidth, document.body.clientHeight, 'none', color);\n chart.canvas.appendChild(lineSvg.element);\n const x1 = fromDimension.x + fromDimension.width;\n const y1 = fromDimension.y + fromDimension.height/2;\n const x2 = toDimension.x;\n const y2 = toDimension.y + toDimension.height/2;\n lineSvg.setPath(x1, y1, x2, y2);\n\n const connection = {\n output: from,\n input: node.inputs[0],\n svg: lineSvg,\n start: { x: x1, y: y1 },\n end: { x: x2, y: y2 },\n };\n node.inputs[0].lines.push(connection);\n from.lines.push(connection);\n }\n\n config.o.map((output, outputI) => {\n loadChart(output, chart, node.outputs[outputI]);\n });\n })\n}\n\nconst exportChart = renderedNodes => {\n // find initial nodes (triggers);\n const triggers = renderedNodes.filter(node => node.group === 'TRIGGERS');\n\n let result = '';\n // for each initial node walk the tree and produce one 'rule'\n triggers.map(trigger => {\n \n const walkRule = (r, i) => {\n const rules = r.toDsl ? r.toDsl() : [];\n let ruleset = '';\n let padding = r.indent ? ' ' : '';\n \n r.outputs.map((out, outI) => {\n let rule = rules[outI] || r.type;\n let subrule = '';\n if (out.lines) {\n out.lines.map(line => {\n subrule += walkRule(line.input.nodeObject, r.indent ? i + 1 : i);\n });\n subrule = subrule.split('\\n').map(line => (padding + line)).filter(line => line.trim() !== '').join('\\n') + '\\n';\n } \n if (rule.includes('%%output%%')) {\n rule = rule.replace('%%output%%', subrule);\n } else {\n rule += subrule;\n }\n ruleset += rule;\n });\n \n return ruleset;\n }\n\n const rule = walkRule(trigger, 0);\n result += rule + \"\\n\\n\";\n });\n\n return result;\n}\n\n// drag and drop helpers\nconst dNd = {\n enableNativeDrag: (nodeElement, data) => {\n nodeElement.draggable = true;\n nodeElement.ondragstart = ev => {\n getKeys(data).map(key => {\n ev.dataTransfer.setData(key, data[key]);\n }); \n }\n }, enableNativeDrop: (nodeElement, fn) => {\n nodeElement.ondragover = ev => {\n ev.preventDefault();\n }\n nodeElement.ondrop = fn;\n }\n}\n\n// svg helpers\nclass svgArrow {\n constructor(width, height, fill, color) {\n this.element = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n this.element.setAttribute('style', 'z-index: -1;position:absolute;top:0px;left:0px');\n this.element.setAttribute('width', width);\n this.element.setAttribute('height', height);\n this.element.setAttributeNS(\"http://www.w3.org/2000/xmlns/\", \"xmlns:xlink\", \"http://www.w3.org/1999/xlink\");\n\n this.line = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n this.line.setAttributeNS(null, \"fill\", fill);\n this.line.setAttributeNS(null, \"stroke\", color);\n this.element.appendChild(this.line);\n }\n\n setPath(x1, y1, x2, y2, tension = 0.5) {\n const delta = (x2-x1)*tension;\n const hx1=x1+delta;\n const hy1=y1;\n const hx2=x2-delta;\n const hy2=y2;\n \n const path = `M ${x1} ${y1} C ${hx1} ${hy1} ${hx2} ${hy2} ${x2} ${y2}`;\n this.line.setAttributeNS(null, \"d\", path);\n }\n}\n\n// node configuration (each node in the left menu is represented by an instance of this object)\nclass Node {\n constructor(conf) {\n this.type = conf.type;\n this.group = conf.group;\n this.config = conf.config.map(config => (Object.assign({}, config)));\n this.inputs = conf.inputs.map(input => {});\n this.outputs = conf.outputs.map(output => {});\n this.toDsl = conf.toDsl;\n this.toString = conf.toString;\n this.toHtml = conf.toHtml;\n this.indent = conf.indent;\n }\n}\n\n// node UI (each node in your flow diagram is represented by an instance of this object)\nclass NodeUI extends Node {\n constructor(canvas, conf, position) {\n super(conf);\n this.canvas = canvas;\n this.position = position;\n this.lines = [];\n this.linesEnd = [];\n this.toDsl = conf.toDsl;\n this.toString = conf.toString;\n this.toHtml = conf.toHtml;\n this.indent = conf.indent;\n }\n\n updateInputsOutputs(inputs, outputs) {\n inputs.map(input => {\n const rect = input.getBoundingClientRect();\n input.lines.map(line => {\n line.end.x = rect.x;\n line.end.y = rect.y + rect.height/2;\n line.svg.setPath(line.start.x, line.start.y, line.end.x, line.end.y);\n });\n });\n outputs.map(output => {\n const rect = output.getBoundingClientRect();\n output.lines.map(line => {\n line.start.x = rect.x + rect.width;\n line.start.y = rect.y + rect.height/2;\n line.svg.setPath(line.start.x, line.start.y, line.end.x, line.end.y);\n });\n });\n }\n\n handleMoveEvent(ev) {\n if (!this.canvas.canEdit) return;\n const shiftX = ev.clientX - this.element.getBoundingClientRect().left;\n const shiftY = ev.clientY - this.element.getBoundingClientRect().top;\n const onMouseMove = ev => {\n const newy = ev.y - shiftY;\n const newx = ev.x - shiftX\n this.position.y = newy - newy % this.canvas.gridSize;\n this.position.x = newx - newx % this.canvas.gridSize;\n this.element.style.top = `${this.position.y}px`;\n this.element.style.left = `${this.position.x}px`; \n this.updateInputsOutputs(this.inputs, this.outputs);\n }\n const onMouseUp = ev => {\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('mouseup', onMouseUp); \n }\n\n document.addEventListener('mousemove', onMouseMove);\n document.addEventListener('mouseup', onMouseUp);\n }\n\n handleDblClickEvent(ev) {\n if (!this.canvas.canEdit) return;\n if (this.config.length)\n showConfigBox(this.type, this.config, () => {\n if (this.toHtml) {\n this.text.innerHTML = this.toHtml();\n } else {\n this.text.textContent = this.toString();\n }\n });\n }\n\n handleRightClickEvent(ev) {\n if (!this.canvas.canEdit) return;\n this.inputs.map(input => {\n input.lines.map(line => {\n line.output.lines = [];\n line.svg.element.parentNode.removeChild(line.svg.element);\n });\n input.lines = [];\n });\n this.outputs.map(output => {\n output.lines.map(line => {\n const index = line.input.lines.indexOf(line);\n line.input.lines.splice(index, 1);\n line.svg.element.parentNode.removeChild(line.svg.element);\n });\n output.lines = [];\n });\n this.element.parentNode.removeChild(this.element);\n if (this.destroy) this.destroy();\n ev.preventDefault();\n ev.stopPropagation();\n return false;\n }\n\n render() {\n this.element = document.createElement('div');\n this.element.nodeObject = this;\n this.element.className = `node node-chart group-${this.group}`;\n\n this.text = document.createElement('span');\n if (this.toHtml) {\n this.text.innerHTML = this.toHtml();\n } else {\n this.text.textContent = this.toString();\n }\n \n this.element.appendChild(this.text);\n\n this.element.style.top = `${this.position.y}px`;\n this.element.style.left = `${this.position.x}px`;\n\n const inputs = document.createElement('div');\n inputs.className = 'node-inputs';\n this.element.appendChild(inputs);\n \n this.inputs.map((val, index) => {\n const input = this.inputs[index] = document.createElement('div');\n input.className = 'node-input';\n input.nodeObject = this;\n input.lines = []\n input.onmousedown = ev => {\n ev.preventDefault();\n ev.stopPropagation();\n }\n inputs.appendChild(input);\n })\n\n const outputs = document.createElement('div');\n outputs.className = 'node-outputs';\n this.element.appendChild(outputs);\n\n this.outputs.map((val, index) => {\n const output = this.outputs[index] = document.createElement('div');\n output.className = 'node-output';\n output.nodeObject = this;\n output.lines = [];\n output.oncontextmenu = ev => {\n output.lines.map(line => {\n line.svg.element.parentNode.removeChild(line.svg.element);\n });\n output.lines = [];\n ev.stopPropagation();\n ev.preventDefault();\n return false;\n }\n output.onmousedown = ev => {\n ev.stopPropagation();\n if (output.lines.length) return;\n const rects = output.getBoundingClientRect();\n const x1 = rects.x + rects.width;\n const y1 = rects.y + rects.height/2;\n\n const lineSvg = new svgArrow(document.body.clientWidth, document.body.clientHeight, 'none', color);\n this.canvas.appendChild(lineSvg.element);\n\n const onMouseMove = ev => {\n lineSvg.setPath(x1, y1, ev.pageX, ev.pageY);\n }\n\n const onMouseUp = ev => {\n const elemBelow = document.elementFromPoint(ev.clientX, ev.clientY);\n const input = elemBelow ? elemBelow.closest('.node-input') : null;\n if (!input) {\n lineSvg.element.remove();\n } else {\n const inputRect = input.getBoundingClientRect();\n const x2 = inputRect.x;\n const y2 = inputRect.y + inputRect.height/2;\n lineSvg.setPath(x1, y1, x2, y2);\n const connection = {\n output,\n input,\n svg: lineSvg,\n start: { x: x1, y: y1 },\n end: { x: x2, y: y2 },\n };\n output.lines.push(connection);\n input.lines.push(connection);\n }\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('mouseup', onMouseUp);\n }\n\n document.addEventListener('mousemove', onMouseMove);\n document.addEventListener('mouseup', onMouseUp);\n }\n outputs.appendChild(output);\n });\n\n this.element.ondblclick = this.handleDblClickEvent.bind(this);\n this.element.onmousedown = this.handleMoveEvent.bind(this);\n this.element.oncontextmenu = this.handleRightClickEvent.bind(this);\n this.canvas.appendChild(this.element);\n }\n}\n\nconst getCfgUI = cfg => {\n const template = document.createElement('template');\n\n const getSelectOptions = val => {\n const selected = val == cfg.value ? 'selected' : '';\n return ``;\n }\n\n switch (cfg.type) {\n case 'text':\n template.innerHTML = `
    `;\n break;\n case 'number':\n template.innerHTML = `
    `;\n break;\n case 'select':\n template.innerHTML = `
    `;\n break;\n case 'textselect':\n template.innerHTML = `
    \n \n \n \n
    `\n }\n return template.content.cloneNode(true);\n}\n\nconst showConfigBox = (type, config, onclose) => {\n const template = document.createElement('template');\n template.innerHTML = `\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n `;\n\n document.body.appendChild(template.content.cloneNode(true));\n const configBox = document.body.querySelectorAll('.configbox')[0];\n const body = document.body.querySelectorAll('.configbox-body')[0];\n const okButton = document.getElementById('ob');\n const cancelButton = document.getElementById('cb');\n cancelButton.onclick = () => {\n configBox.remove();\n }\n okButton.onclick = () => {\n // set configuration to node\n config.map(cfg => {\n cfg.value = document.forms['configform'].elements[cfg.name].value;\n });\n configBox.remove();\n onclose();\n }\n config.map(cfg => {\n const cfgUI = getCfgUI(cfg);\n body.appendChild(cfgUI);\n })\n}\n\nexport class FlowEditor {\n constructor(element, nodes, config) {\n this.nodes = [];\n this.renderedNodes = [];\n this.onSave = config.onSave;\n this.canEdit = !config.readOnly;\n this.debug = config.debug!= null ? config.debug : true;\n this.gridSize = config.gridSize || 1;\n\n this.element = element;\n\n nodes.map(nodeConfig => {\n const node = new Node(nodeConfig);\n this.nodes.push(node);\n });\n this.render();\n\n if (this.canEdit)\n dNd.enableNativeDrop(this.canvas, ev => {\n const configNode = this.nodes.find(node => node.type == ev.dataTransfer.getData('type'));\n let node = new NodeUI(this.canvas, configNode, { x: ev.x, y: ev.y });\n node.render();\n node.destroy = () => {\n this.renderedNodes.splice( this.renderedNodes.indexOf(node), 1 );\n node = null;\n }\n this.renderedNodes.push(node); \n });\n }\n\n loadConfig(config) {\n loadChart(config, this);\n }\n\n saveConfig() {\n return saveChart(this.renderedNodes);\n }\n\n renderContainers() {\n if (this.canEdit) {\n this.sidebar = document.createElement('div');\n this.sidebar.className = 'sidebar';\n this.element.appendChild(this.sidebar);\n }\n\n this.canvas = document.createElement('div');\n this.canvas.className = 'canvas';\n this.canvas.canEdit = this.canEdit;\n this.canvas.gridSize = this.gridSize;\n this.element.appendChild(this.canvas);\n\n if (this.canEdit && this.debug) {\n this.debug = document.createElement('div');\n this.debug.className = 'debug';\n\n const text = document.createElement('div');\n this.debug.appendChild(text);\n\n const saveBtn = document.createElement('button');\n saveBtn.textContent = 'SAVE';\n saveBtn.onclick = () => {\n const config = JSON.stringify(saveChart(this.renderedNodes));\n const rules = exportChart(this.renderedNodes);\n this.onSave(config, rules);\n }\n\n const loadBtn = document.createElement('button');\n loadBtn.textContent = 'LOAD';\n loadBtn.onclick = () => {\n const input = prompt('enter config');\n loadChart(JSON.parse(input), this);\n }\n\n const exportBtn = document.createElement('button');\n exportBtn.textContent = 'EXPORT';\n exportBtn.onclick = () => {\n const exported = exportChart(this.renderedNodes);\n text.textContent = exported;\n }\n this.debug.appendChild(exportBtn);\n this.debug.appendChild(saveBtn);\n this.debug.appendChild(loadBtn);\n this.debug.appendChild(text);\n this.element.appendChild(this.debug);\n }\n \n }\n\n renderConfigNodes() {\n const groups = {};\n this.nodes.map(node => {\n if (!groups[node.group]) {\n const group = document.createElement('div');\n group.className = 'group';\n group.textContent = node.group;\n this.sidebar.appendChild(group);\n groups[node.group] = group;\n }\n const nodeElement = document.createElement('div');\n nodeElement.className = `node group-${node.group}`;\n nodeElement.textContent = node.type;\n groups[node.group].appendChild(nodeElement);\n\n dNd.enableNativeDrag(nodeElement, { type: node.type });\n })\n }\n\n render() {\n this.renderContainers();\n if (this.canEdit) this.renderConfigNodes();\n }\n}","import get from 'lodash/get';\r\nimport set from 'lodash/set';\r\n\r\n// const get = (obj, path, defaultValue) => path.replace(/\\[/g, '.').replace(/\\]/g, '').split(\".\")\r\n// .reduce((a, c) => (a && a[c] ? a[c] : (defaultValue || null)), obj)\r\n\r\n// const set = (obj, path, value) => {\r\n// path.replace(/\\[/g, '.').replace(/\\]/g, '').split('.').reduce((a, c, i, src) => {\r\n// if (!a[c]) a[c] = {};\r\n// if (i === src.length - 1) a[c] = value;\r\n// }, obj)\r\n// }\r\n\r\nconst getKeys = object => {\r\n const keys = [];\r\n for (let key in object) {\r\n if (object.hasOwnProperty(key)) {\r\n keys.push(key);\r\n }\r\n }\r\n return keys;\r\n}\r\n\r\nexport { get, set, getKeys }","class Loader {\r\n constructor() {\r\n this.loader = document.querySelector('.loading');\r\n }\r\n\r\n show() {\r\n this.loader.classList.add('show');\r\n }\r\n\r\n hide() {\r\n this.loader.classList.add('hide');\r\n setTimeout(() => {\r\n this.loader.classList.remove('hide');\r\n this.loader.classList.remove('show');\r\n }, 1000);\r\n }\r\n}\r\n\r\nexport const loader = new Loader();","import { \n ConfigPage, \n DevicesPage, \n DevicesEditPage, \n ControllersPage, \n ControllerEditPage, \n ControllerNotificationsPage,\n ConfigAdvancedPage, \n ConfigHardwarePage, \n RebootPage, \n LoadPage, \n RulesPage, \n UpdatePage, \n ToolsPage, \n FSPage, \n FactoryResetPage, \n DiscoverPage, \n DiffPage, \n RulesEditorPage, \n SetupPage,\n SysVarsPage\n} from '../pages';\n\nimport { saveConfig } from '../conf/config.dat';\n\nclass Menus {\n constructor() {\n this.menus = [];\n this.routes = [];\n\n this.addMenu = (menu) => {\n this.menus.push(menu);\n this.addRoute(menu);\n }\n\n this.addRoute = (route) => {\n this.routes.push(route);\n if (route.children) {\n route.children.forEach(child => this.routes.push(child));\n }\n }\n }\n \n}\n\nconst menus = [\n { title: 'Devices', href: 'devices', component: DevicesPage, children: [] },\n { title: 'Controllers', href: 'controllers', component: ControllersPage, children: [] },\n { title: 'Automation', href: 'rules', component: RulesEditorPage, class: 'full', children: [] },\n { title: 'Config', href: 'config', component: ConfigPage, children: [\n { title: 'Hardware', href: 'config/hardware', component: ConfigHardwarePage },\n { title: 'Advanced', href: 'config/advanced', component: ConfigAdvancedPage },\n { title: 'Rules', href: 'config/rules', component: RulesPage },\n { title: 'Save', href: 'config/save', action: saveConfig },\n { title: 'Load', href: 'config/load', component: LoadPage },\n { title: 'Reboot', href: 'config/reboot', component: RebootPage },\n { title: 'Factory Reset', href: 'config/factory', component: FactoryResetPage },\n ] },\n { title: 'Tools', href: 'tools', component: ToolsPage, children: [\n { title: 'Discover', href: 'tools/discover', component: DiscoverPage },\n { title: 'Info', href: 'tools/sysinfo', component: SysVarsPage },\n { title: 'Update', href: 'tools/update', component: UpdatePage },\n { title: 'Filesystem', href: 'tools/fs', component: FSPage },\n ] },\n];\n\nconst routes = [\n { title: 'Edit Controller', href:'controllers/edit', component: ControllerEditPage },\n { title: 'Edit Notification', href:'controllers/notification', component: ControllerNotificationsPage },\n { title: 'Edit Device', href:'devices/edit', component: DevicesEditPage },\n { title: 'Save to Flash', href:'tools/diff', component: DiffPage },\n { title: 'Setup', href: 'config/setup', component: SetupPage }\n];\n\nconst menu = new Menus();\nroutes.forEach(menu.addRoute);\nmenus.forEach(menu.addMenu)\n\nexport { menu };","export const nodes = [\n // TRIGGERS\n {\n group: 'TRIGGERS',\n type: 'timer',\n inputs: [],\n outputs: [1],\n config: [{\n name: 'timer',\n type: 'select',\n values: [1, 2, 3, 4, 5, 6, 7, 8],\n }],\n indent: true,\n toString: function () { return `timer ${this.config[0].value}`; },\n toDsl: function () { return [`on Rules#Timer=${this.config[0].value} do\\n%%output%%\\nEndon\\n`]; }\n }, {\n group: 'TRIGGERS',\n type: 'event',\n inputs: [],\n outputs: [1],\n config: [{\n name: 'name',\n type: 'text',\n }],\n indent: true,\n toString: function () { return `event ${this.config[0].value}`; },\n toDsl: function () { return [`on ${this.config[0].value} do\\n%%output%%\\nEndon\\n`]; }\n }, {\n group: 'TRIGGERS',\n type: 'clock',\n inputs: [],\n outputs: [1],\n config: [],\n indent: true,\n toString: () => { return 'clock'; },\n toDsl: () => { return ['on Clock#Time do\\n%%output%%\\nEndon\\n']; }\n }, {\n group: 'TRIGGERS',\n type: 'system boot',\n inputs: [],\n outputs: [1],\n config: [],\n indent: true,\n toString: function() {\n return `on boot`;\n },\n toDsl: function() {\n return [`On System#Boot do\\n%%output%%\\nEndon\\n`];\n }\n }, {\n group: 'TRIGGERS',\n type: 'Device',\n inputs: [],\n outputs: [1],\n config: [],\n indent: true,\n toString: function() {\n return `on boot`;\n },\n toDsl: function() {\n return [`On Device#Value do\\n%%output%%\\nEndon\\n`];\n }\n }, \n // LOGIC\n {\n group: 'LOGIC',\n type: 'if/else',\n inputs: [1],\n outputs: [1, 2],\n config: [{\n name: 'variable',\n type: 'textselect',\n values: ['Clock#Time'],\n },{\n name: 'equality',\n type: 'select',\n values: ['=', '<', '>', '<=', '>=', '!=']\n },{\n name: 'value',\n type: 'text',\n }],\n indent: true,\n toString: function() {\n return `IF ${this.config[0].value}${this.config[1].value}${this.config[2].value}`;\n },\n toDsl: function() {\n return [`If [${this.config[0].value}]${this.config[1].value}${this.config[2].value}\\n%%output%%`, `Else\\n%%output%%\\nEndif`];\n }\n }, {\n group: 'LOGIC',\n type: 'delay',\n inputs: [1],\n outputs: [1],\n config: [{\n name: 'delay',\n type: 'number',\n }],\n toString: function() {\n return `delay: ${this.config[0].value}`;\n },\n toDsl: function() {\n return [`Delay ${this.config[0].value}\\n`];\n }\n },\n // ACTIONS\n {\n group: 'ACTIONS',\n type: 'GPIO',\n inputs: [1],\n outputs: [1],\n config: [{\n name: 'gpio',\n type: 'select',\n values: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16],\n }, {\n name: 'value',\n type: 'select',\n values: [0, 1],\n }],\n toString: function() {\n return `GPIO ${this.config[0].value}, ${this.config[1].value}`;\n },\n toDsl: function() {\n return [`GPIO,${this.config[0].value},${this.config[1].value}\\n`];\n }\n }, {\n group: 'ACTIONS',\n type: 'Pulse',\n inputs: [1],\n outputs: [1],\n config: [{\n name: 'gpio',\n type: 'select',\n values: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16],\n value: 0\n }, {\n name: 'value',\n type: 'select',\n values: [0, 1],\n value: 1\n }, {\n name: 'unit',\n type: 'select',\n values: ['s', 'ms'],\n value: 'ms',\n }, {\n name: 'duration',\n type: 'number',\n value: 1000\n }],\n toString: function() {\n return `Pulse ${this.config[0].value}=${this.config[1].value} for ${this.config[3].value}${this.config[2].value}`;\n },\n toDsl: function() {\n const fn = this.config[2].value === 's' ? 'LongPulse' : 'Pulse';\n return [`${fn},${this.config[0].value},${this.config[1].value},${this.config[2].value}\\n`];\n }\n }, {\n group: 'ACTIONS',\n type: 'PWM',\n inputs: [1],\n outputs: [1],\n config: [{\n name: 'gpio',\n type: 'select',\n values: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],\n value: 0\n }, {\n name: 'value',\n type: 'number',\n value: 1023,\n }],\n toString: function() {\n return `PWM.GPIO${this.config[0].value} = ${this.config[1].value}`;\n },\n toDsl: function() {\n return [`PWM,${this.config[0].value},${this.config[1].value}\\n`];\n }\n }, {\n group: 'ACTIONS',\n type: 'SERVO',\n inputs: [1],\n outputs: [1],\n config: [{\n name: 'gpio',\n type: 'select',\n values: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],\n value: 0\n }, {\n name: 'servo',\n type: 'select',\n values: [1, 2],\n value: 0\n }, {\n name: 'position',\n type: 'number',\n value: 90,\n }],\n toString: function() {\n return `SERVO.GPIO${this.config[0].value} = ${this.config[2].value}`;\n },\n toDsl: function() {\n return [`Servo,${this.config[1].value},${this.config[0].value},${this.config[2].value}\\n`];\n }\n }, {\n group: 'ACTIONS',\n type: 'fire event',\n inputs: [1],\n outputs: [1],\n config: [{\n name: 'name',\n type: 'text'\n }],\n toString: function() {\n return `event ${this.config[0].value}`;\n },\n toDsl: function() {\n return [`event,${this.config[0].value}\\n`];\n }\n }, {\n group: 'ACTIONS',\n type: 'settimer',\n inputs: [1],\n outputs: [1],\n config: [{\n name: 'timer',\n type: 'select',\n values: [1, 2, 3, 4, 5, 6, 7, 8],\n }, {\n name: 'value',\n type: 'number'\n }],\n toString: function() {\n return `timer${this.config[0].value} = ${this.config[1].value}`;\n },\n toDsl: function() {\n return [`timerSet,${this.config[0].value},${this.config[1].value}\\n`];\n }\n }, {\n group: 'ACTIONS',\n type: 'MQTT',\n inputs: [1],\n outputs: [1],\n config: [{\n name: 'topic',\n type: 'text',\n }, {\n name: 'command',\n type: 'text',\n }],\n toString: function() {\n return `mqtt ${this.config[1].value}`;\n },\n toDsl: function() {\n return [`Publish ${this.config[0].value},${this.config[1].value}\\n`];\n }\n }, {\n group: 'ACTIONS',\n type: 'UDP',\n inputs: [1],\n outputs: [1],\n config: [{\n name: 'ip',\n type: 'text',\n }, {\n name: 'port',\n type: 'number',\n }, {\n name: 'command',\n type: 'text',\n }],\n toString: function() {\n return `UDP ${this.config[1].value}`;\n },\n toDsl: function() {\n return [`SendToUDP ${this.config[0].value},${this.config[1].value},${this.config[2].value}\\n`];\n }\n }, {\n group: 'ACTIONS',\n type: 'HTTP',\n inputs: [1],\n outputs: [1],\n config: [{\n name: 'host',\n type: 'text',\n }, {\n name: 'port',\n type: 'number',\n value: 80\n }, {\n name: 'url',\n type: 'text',\n }],\n toString: function() {\n return `HTTP ${this.config[2].value}`;\n },\n toDsl: function() {\n return [`SentToHTTP ${this.config[0].value},${this.config[1].value},${this.config[2].value}\\n`];\n }\n }, {\n group: 'ACTIONS',\n type: 'ESPEASY',\n inputs: [1],\n outputs: [1],\n config: [{\n name: 'device',\n type: 'number',\n }, {\n name: 'command',\n type: 'text',\n }],\n toString: function() {\n return `mqtt ${this.config[1].value}`;\n },\n toDsl: function() {\n return [`SendTo ${this.config[0].value},${this.config[1].value}\\n`];\n }\n }\n]","import { get, set } from './helpers';\r\n\r\nclass DataParser {\r\n constructor(data) {\r\n this.view = new DataView(data);\r\n this.offset = 0;\r\n this.bitbyte = 0;\r\n this.bitbytepos = 7;\r\n }\r\n\r\n pad(nr) {\r\n while (this.offset % nr) {\r\n this.offset++;\r\n }\r\n }\r\n\r\n bit(signed = false, write = false, val) {\r\n if (this.bitbytepos === 7) {\r\n if (!write) {\r\n this.bitbyte = this.byte();\r\n this.bitbytepos = 0;\r\n } else {\r\n this.byte(signed, write, this.bitbyte);\r\n }\r\n }\r\n if (!write) {\r\n return (this.bitbyte >> this.bitbytepos++) & 1;\r\n } else {\r\n this.bitbyte = val ? (this.bitbyte | (1 << this.bitbytepos++)) : (this.bitbyte & ~(1 << this.bitbytepos++));\r\n }\r\n }\r\n\r\n byte(signed = false, write = false, val) {\r\n this.pad(1);\r\n const fn = `${write ? 'set' : 'get'}${signed ? 'Int8' : 'Uint8'}`;\r\n const res = this.view[fn](this.offset, val);\r\n this.offset += 1;\r\n return res;\r\n }\r\n\r\n int16(signed = false, write = false, val) {\r\n this.pad(2);\r\n let fn = signed ? 'Int16' : 'Uint16';\r\n const res = write ? this.view[`set${fn}`](this.offset, val, true) : this.view[`get${fn}`](this.offset, true);\r\n this.offset += 2;\r\n return res;\r\n }\r\n\r\n int32(signed = false, write = false, val) {\r\n this.pad(4);\r\n let fn = signed ? 'Int32' : 'Uint32';\r\n const res = write ? this.view[`set${fn}`](this.offset, val, true) : this.view[`get${fn}`](this.offset, true);\r\n this.offset += 4;\r\n return res;\r\n }\r\n float(signed = false, write = false, val) {\r\n this.pad(4);\r\n const res = write ? this.view.setFloat32(this.offset, val, true) : this.view.getFloat32(this.offset, true);\r\n this.offset += 4;\r\n return res;\r\n }\r\n bytes(nr, signed = false, write = false, vals) {\r\n const res = [];\r\n for (var x = 0; x < nr; x++) {\r\n res.push(this.byte(signed, write, vals ? vals[x] : null));\r\n }\r\n return res;\r\n }\r\n ints(nr, signed = false, write = false, vals) {\r\n const res = [];\r\n for (var x = 0; x < nr; x++) {\r\n res.push(this.int16(signed, write, vals ? vals[x] : null));\r\n }\r\n return res;\r\n }\r\n longs(nr, signed = false, write = false, vals) {\r\n const res = [];\r\n for (var x = 0; x < nr; x++) {\r\n res.push(this.int32(signed, write, vals ? vals[x] : null));\r\n }\r\n return res;\r\n }\r\n floats(nr, signed = false, write = false, vals) {\r\n const res = [];\r\n for (var x = 0; x < nr; x++) {\r\n res.push(this.float(write, vals ? vals[x] : null));\r\n }\r\n return res;\r\n }\r\n string(nr, signed = false, write = false, val) {\r\n if (write) {\r\n for (var i = 0; i < nr; ++i) {\r\n var code = val.charCodeAt(i) || '\\0';\r\n this.byte(false, true, code);\r\n }\r\n } else {\r\n const res = this.bytes(nr);\r\n return String.fromCharCode.apply(null, res).replace(/\\x00/g, '');\r\n }\r\n }\r\n}\r\n\r\nexport const parseConfig = (data, config, start) => {\r\n const p = new DataParser(data);\r\n if (start) p.offset = start;\r\n const result = {};\r\n config.map(value => {\r\n const prop = value.length ? value.length : value.signed;\r\n set(result, value.prop, p[value.type](prop, value.signed));\r\n });\r\n return result;\r\n}\r\n\r\nexport const writeConfig = (buffer, data, config, start) => {\r\n const p = new DataParser(buffer);\r\n if (start) p.offset = start;\r\n config.map(value => {\r\n const val = get(data, value.prop);\r\n if (value.length) {\r\n p[value.type](value.length, value.signed, true, val);\r\n } else {\r\n p[value.type](value.signed, true, val);\r\n }\r\n });\r\n}","import { settings } from './settings';\nimport espeasy from './espeasy';\nimport { loader } from './loader';\nimport { menu } from './menu';\n\nconst PLUGINS = [\n 'http://localhost:8080/build/dash.js'\n];\n\nconst dynamicallyLoadScript = (url) => {\n return new Promise(resolve => {\n var script = document.createElement(\"script\"); // create a script DOM node\n script.src = url; // set its src to the provided URL\n script.onreadystatechange = resolve;\n script.onload = resolve;\n script.onerror = resolve;\n document.head.appendChild(script); // add it to the end of the head section of the page (could change 'head' to 'body' to add it to the end of the body section instead)\n });\n}\n\nconst getPluginAPI = () => {\n return {\n settings,\n loader,\n menu,\n espeasy,\n }\n}\n\nwindow.getPluginAPI = getPluginAPI;\n\nexport const loadPlugins = async () => {\n return Promise.all(PLUGINS.map(async plugin => {\n return dynamicallyLoadScript(plugin);\n }));\n}","import { get, set, getKeys } from './helpers';\r\n\r\nconst diff = (obj1, obj2, path = '') => {\r\n return getKeys(obj1).map(key => {\r\n const val1 = obj1[key];\r\n const val2 = obj2[key];\r\n if (val1 instanceof Object) return diff(val1, val2, path ? `${path}.${key}` : key);\r\n else if (val1 !== val2) {\r\n return [{ path: `${path}.${key}`, val1, val2 }];\r\n } else return [];\r\n }).flat();\r\n}\r\n\r\nclass Settings {\r\n init(settings) {\r\n this.settings = settings;\r\n this.apply();\r\n }\r\n\r\n get(prop) {\r\n return get(this.settings, prop);\r\n }\r\n\r\n /**\r\n * sets changes to the current version and sets changed flag\r\n * @param {*} prop \r\n * @param {*} value \r\n */\r\n set(prop, value) {\r\n const obj = get(this.settings, prop);\r\n if (typeof obj === 'object') {\r\n console.warn('settings an object!');\r\n set(this.settings, prop, value);\r\n } else {\r\n set(this.settings, prop, value);\r\n }\r\n \r\n if (this.diff().length) this.changed = true;\r\n }\r\n\r\n /**\r\n * returns diff between applied and current version\r\n */\r\n diff() {\r\n return diff(this.stored, this.settings);\r\n }\r\n\r\n /***\r\n * applys changes and creates new version in localStorage\r\n */\r\n apply() {\r\n this.stored = JSON.parse(JSON.stringify(this.settings));\r\n this.changed = false;\r\n }\r\n}\r\n\r\nexport const settings = window.settings1 = new Settings();","import { h, Component } from 'preact';\r\nimport { Form } from '../components/form';\r\nimport { settings } from '../lib/settings';\r\n\r\nconst logLevelOptions = [\r\n { name: 'None', value: 0 },\r\n { name: 'Error', value: 1 },\r\n { name: 'Info', value: 2 },\r\n { name: 'Debug', value: 3 },\r\n { name: 'Debug More', value: 4 },\r\n { name: 'Debug Dev', value: 9 },\r\n];\r\n\r\nconst formConfig = {\r\n onSave: (vals) => { console.log(vals); },\r\n groups: {\r\n rules: {\r\n name: 'Rules Settings',\r\n configs: {\r\n enabled: { name: 'Enabled', type: 'checkbox' },\r\n oldengine: { name: 'Old Engine', type: 'checkbox' },\r\n }\r\n },\r\n mqtt: {\r\n name: 'Controller Settings',\r\n configs: {\r\n retain_flag: { name: 'MQTT Retain Msg', type: 'checkbox' },\r\n interval: { name: 'Message Interval', type: 'number' },\r\n useunitname: { name: 'MQTT use unit name as ClientId', type: 'checkbox' },\r\n changeclientid: { name: 'MQTT change ClientId at reconnect', type: 'checkbox' },\r\n }\r\n },\r\n ntp: {\r\n name: 'NTP Settings',\r\n configs: {\r\n enabled: { name: 'Use NTP', type: 'checkbox' },\r\n host: { name: 'NTP Hostname', type: 'string' },\r\n }\r\n },\r\n dst: {\r\n name: 'DST Settings',\r\n configs: {\r\n enabled: { name: 'Use DST', type: 'checkbox' },\r\n }\r\n },\r\n location: {\r\n name: 'Location Settings',\r\n configs: {\r\n long: { name: 'Longitude', type: 'number' },\r\n lat: { name: 'Latitude', type: 'number' },\r\n }\r\n },\r\n log: {\r\n name: 'Log Settings',\r\n configs: {\r\n syslog_ip: { name: 'Syslog IP', type: 'ip' },\r\n syslog_level: { name: 'Syslog Level', type: 'select', options: logLevelOptions },\r\n syslog_facility: { name: 'Syslog Level', type: 'select', options: [\r\n { name: 'Kernel', value: 0 },\r\n { name: 'User', value: 1 },\r\n { name: 'Daemon', value: 3 },\r\n { name: 'Message', value: 5 },\r\n { name: 'Local0', value: 16 },\r\n { name: 'Local1', value: 17 },\r\n { name: 'Local2', value: 18 },\r\n { name: 'Local3', value: 19 },\r\n { name: 'Local4', value: 20 },\r\n { name: 'Local5', value: 21 },\r\n { name: 'Local6', value: 22 },\r\n { name: 'Local7', value: 23 },\r\n ] },\r\n serial_level: { name: 'Serial Level', type: 'select', options: logLevelOptions },\r\n web_level: { name: 'Web Level', type: 'select', options: logLevelOptions },\r\n }\r\n },\r\n serial: {\r\n name: 'Serial Settings',\r\n configs: {\r\n enabled: { name: 'Enable Serial', type: 'checkbox' },\r\n baudrate: { name: 'Baud Rate', type: 'number' },\r\n }\r\n },\r\n experimental: {\r\n name: 'Experimental Settings',\r\n configs: {\r\n ip_octet: { name: 'Fixed IP Octet', type: 'number' },\r\n WDI2CAddress: { name: 'WD I2C Address', type: 'number' },\r\n ssdp: { name: 'Use SSDP', type: 'checkbox', var: 'ssdp.enabled' },\r\n ConnectionFailuresThreshold: { name: 'Connection Failiure Treshold', type: 'number' },\r\n WireClockStretchLimit: { name: 'I2C ClockStretchLimit', type: 'number' },\r\n }\r\n }\r\n },\r\n}\r\n\r\nexport class ConfigAdvancedPage extends Component {\r\n render(props) {\r\n formConfig.onSave = (values) => {\r\n settings.set('config', values);\r\n window.location.href='#devices';\r\n }\r\n return (\r\n
    \r\n );\r\n }\r\n}","import { h, Component } from 'preact';\r\nimport { Form } from '../components/form';\r\nimport { settings } from '../lib/settings';\r\n\r\nexport const pins = [\r\n { name: 'None', value: 255 },\r\n { name: 'GPIO-0', value: 0 },\r\n { name: 'GPIO-1', value: 1 },\r\n { name: 'GPIO-2', value: 2 },\r\n { name: 'GPIO-3', value: 3 },\r\n { name: 'GPIO-4', value: 4 },\r\n { name: 'GPIO-5', value: 5 },\r\n { name: 'GPIO-9', value: 9 },\r\n { name: 'GPIO-10', value: 10 },\r\n { name: 'GPIO-12', value: 12 },\r\n { name: 'GPIO-13', value: 13 },\r\n { name: 'GPIO-14', value: 14 },\r\n { name: 'GPIO-15', value: 15 },\r\n { name: 'GPIO-16', value: 16 }\r\n];\r\n\r\nconst pinState = [\r\n { name: 'Default', value: 0 },\r\n { name: 'Low', value: 1 },\r\n { name: 'High', value: 2 },\r\n { name: 'Input', value: 3 },\r\n];\r\n\r\nconst formConfig = {\r\n groups: {\r\n led: {\r\n name: 'WiFi Status LED',\r\n configs: {\r\n gpio: { name: 'GPIO --> LED', type: 'select', options: pins },\r\n inverse: { name: 'Inversed LED', type: 'checkbox' },\r\n }\r\n },\r\n reset: {\r\n name: 'Reset Pin',\r\n configs: {\r\n pin: { name: 'GPIO <-- Switch', type: 'select', options: pins },\r\n }\r\n },\r\n i2c: {\r\n name: 'I2C Settings',\r\n configs: {\r\n sda: { name: 'GPIO - SDA', type: 'select', options: pins },\r\n scl: { name: 'GPIO - SCL', type: 'select', options: pins },\r\n }\r\n },\r\n spi: {\r\n name: 'SPI Settings',\r\n configs: {\r\n enabled: { name: 'Init SPI', type: 'checkbox' },\r\n }\r\n },\r\n gpio: {\r\n name: 'GPIO boot states',\r\n configs: {\r\n 0: { name: 'Pin Mode GPIO-0', type: 'select', options: pinState },\r\n 1: { name: 'Pin Mode GPIO-1', type: 'select', options: pinState },\r\n 2: { name: 'Pin Mode GPIO-2', type: 'select', options: pinState },\r\n 3: { name: 'Pin Mode GPIO-3', type: 'select', options: pinState },\r\n 4: { name: 'Pin Mode GPIO-4', type: 'select', options: pinState },\r\n 5: { name: 'Pin Mode GPIO-5', type: 'select', options: pinState },\r\n 9: { name: 'Pin Mode GPIO-9', type: 'select', options: pinState },\r\n 10: { name: 'Pin Mode GPIO-10', type: 'select', options: pinState },\r\n 12: { name: 'Pin Mode GPIO-12', type: 'select', options: pinState },\r\n 13: { name: 'Pin Mode GPIO-13', type: 'select', options: pinState },\r\n 14: { name: 'Pin Mode GPIO-14', type: 'select', options: pinState },\r\n 15: { name: 'Pin Mode GPIO-15', type: 'select', options: pinState },\r\n }\r\n }\r\n },\r\n}\r\n\r\nexport class ConfigHardwarePage extends Component {\r\n render(props) {\r\n const config = settings.get('hardware');\r\n formConfig.onSave = (values) => {\r\n settings.set('hardware', values);\r\n window.location.href='#devices';\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n}","import { h, Component } from 'preact';\r\nimport { Form } from '../components/form';\r\nimport { settings } from '../lib/settings';\r\n\r\nconst ipBlockLevel = [\r\n { name: 'Allow All', value: 0 },\r\n { name: 'Allow Local Subnet', value: 1 },\r\n { name: 'Allow IP Range', value: 2 },\r\n]\r\n\r\nconst formConfig = {\r\n groups: {\r\n general: {\r\n name: 'General',\r\n configs: {\r\n unitname: { name: 'Unit Name', type: 'string' },\r\n unitnr: { name: 'Unit Number', type: 'number' },\r\n appendunit: { name: 'Append Unit Name to Hostname', type: 'checkbox' },\r\n password: { name: 'Admin Password', type: 'password', var: 'security[0].password' },\r\n }\r\n },\r\n wifi: {\r\n name: 'WiFi',\r\n configs: {\r\n ssid: { name: 'SSID', type: 'string', var: 'security[0].WifiSSID' },\r\n passwd: { name: 'Password', type: 'password', var: 'security[0].WifiKey' },\r\n fallbackssid: { name: 'Fallback SSID', type: 'string', var: 'security[0].WifiSSID2' },\r\n fallbackpasswd: { name: 'Fallback Password', type: 'password', var: 'security[0].WifiKey2' },\r\n wpaapmode: { name: 'WPA AP Mode Key:', type: 'string', var: 'security[0].WifiAPKey' },\r\n }\r\n },\r\n clientIP: {\r\n name: 'Client IP Filtering',\r\n configs: {\r\n blocklevel: { name: 'IP Block Level', type: 'select', options: ipBlockLevel, var: 'security[0].IPblockLevel' },\r\n lowerrange: { name: 'Access IP lower range', type: 'ip', var: 'security[0].AllowedIPrangeLow' },\r\n upperrange: { name: 'Access IP upper range', type: 'ip', var: 'security[0].AllowedIPrangeHigh' },\r\n }\r\n },\r\n IP: {\r\n name: 'IP Settings',\r\n configs: {\r\n ip: { name: 'IP', type: 'ip' },\r\n gw: { name: 'Gateway', type: 'ip' },\r\n subnet: { name: 'Subnet', type: 'ip' },\r\n dns: { name: 'DNS', type: 'ip' },\r\n }\r\n },\r\n sleep: {\r\n name: 'Sleep Mode',\r\n configs: {\r\n awaketime: { name: 'Sleep awake time', type: 'number' },\r\n sleeptime: { name: 'Sleep time', type: 'number' },\r\n sleeponfailiure: { name: 'Sleep on connection failure', type: 'checkbox' },\r\n }\r\n }\r\n },\r\n}\r\n\r\nexport class ConfigPage extends Component {\r\n render(props) {\r\n formConfig.onSave = (values) => {\r\n settings.set(`config`, values);\r\n window.location.href='#devices';\r\n }\r\n const config = settings.get('config');\r\n return (\r\n \r\n );\r\n }\r\n}","import { h, Component } from 'preact';\r\nimport { Form } from '../components/form';\r\nimport { settings } from '../lib/settings';\r\nimport { set } from '../lib/helpers';\r\nimport { EspEaspP2PComponent } from '../components/espeasy_p2p';\r\n\r\nexport const protocols = [\r\n { name: '- Standalone -', value: 0 },\r\n { name: 'Domoticz HTTP', value: 1 },\r\n { name: 'Domoticz MQTT', value: 2 },\r\n { name: 'Nodo Telnet', value: 3 },\r\n { name: 'ThingSpeak', value: 4 },\r\n { name: 'OpenHAB MQTT', value: 5 },\r\n { name: 'PiDome MQTT', value: 6 },\r\n { name: 'Emoncms', value: 7 },\r\n { name: 'Generic HTTP', value: 8 },\r\n { name: 'FHEM HTTP', value: 9 },\r\n { name: 'Generic UDP', value: 10 },\r\n { name: 'ESPEasy P2P Networking', value: 13 },\r\n { name: 'Email', value: 25 },\r\n];\r\n\r\nconst baseFields = { \r\n \r\n dns: { name: 'Locate Controller', type: 'select', options: [{ value: 0, name: 'Use IP Address'}, { value: 1, name: 'Use Hostname' }] },\r\n IP: { name: 'IP', type: 'ip' },\r\n hostname: { name: 'Hostname', type: 'string' },\r\n port: { name: 'Port', type: 'number' },\r\n minimal_time_between: { name: 'Minimum Send Interval', type: 'number' },\r\n max_queue_depth: { name: 'Max Queue Depth', type: 'number' },\r\n max_retry: { name: 'Max Retries', type: 'number' },\r\n delete_oldest: { name: 'Full Queue Action', type: 'select', options: [{ value: 0, name: 'Ignore New'}, { value: 1, name: 'Delete Oldest' }] },\r\n must_check_reply: { name: 'Check Reply', type: 'select', options: [{ value: 0, name: 'Ignore Acknowledgement'}, { value: 1, name: 'Check Acknowledgement' }] },\r\n client_timeout: { name: 'Client Timeout', type: 'number' },\r\n};\r\n\r\nconst user = { name: 'Controller User', type: 'string' };\r\nconst password = { name: 'Controller Password', type: 'password' };\r\nconst subscribe = { name: 'Controller Subscribe', type: 'string' };\r\nconst publish = { name: 'Controller Publish', type: 'string' };\r\nconst lwtTopicField = { MQTT_lwt_topic: { name: 'Controller LWT topic:', type: 'string' }, lwt_message_connect: { name: 'LWT Connect Message', type: 'string' }, lwt_message_disconnect: { name: 'LWT Disconnect Message', type: 'string' }, };\r\n\r\nconst baseDefaults = {\r\n port: 1883,\r\n minimal_time_between: 100,\r\n max_queue_depth: 10,\r\n max_retry: 10,\r\n client_timeout: 1000,\r\n}\r\nconst getDefaults = {\r\n 1: () => ({ // Domoticz HTTP\r\n port: 8080,\r\n }), 2: () => ({ // Domoticz MQTT\r\n subscribe: 'domoticz/out',\r\n public: 'domoticz/in'\r\n }), 3: () => ({ // Nodo Telnet\r\n port: 23,\r\n }), 4: () => ({ // ThingSpeak\r\n port: 80,\r\n }), 5: () => ({ // OpenHAB MQTT\r\n subscribe: '/%sysname%/#',\r\n publish: '/%sysname%/%tskname%/%valname%',\r\n }), 6: () => ({ // PiDome MQTT\r\n subscribe: '/Home/#',\r\n publish: '/hooks/devices/%id%/SensorData/%valname%',\r\n }), 7: () => ({ // Emoncms\r\n port: 80,\r\n }), 8: () => ({ // Generic HTTP\r\n port: 80,\r\n publish: 'demo.php?name=%sysname%&task=%tskname%&valuename=%valname%&value=%value%',\r\n }), 9: () => ({ // FHEM HTTP\r\n port: 8383,\r\n }), 10: () => ({ // Generic UDP\r\n port: 514,\r\n publish: '%sysname%_%tskname%_%valname%=%value%',\r\n }), 13: () => ({ // EspEasy P2P\r\n port: 65501,\r\n Custom: 1\r\n }), \r\n}\r\n\r\nconst setDefaultConfig = (type, config) => {\r\n const defaults = {...baseDefaults, ...getDefaults[type]()};\r\n Object.keys(defaults).forEach((key) => {\r\n const val = defaults[key];\r\n set(config.settings, key, val);\r\n });\r\n}\r\n\r\nconst getFormConfig = (type) => {\r\n let additionalFields = {};\r\n let additionalGroups = {};\r\n switch (Number(type)) {\r\n case 2: // Domoticz MQTT\r\n case 5: // OpenHAB MQTT\r\n additionalFields = { ...baseFields, user, password, subscribe, publish, ...lwtTopicField };\r\n break;\r\n case 6: // 'PiDome MQTT'\r\n additionalFields = { ...baseFields, subscribe, publish, ...lwtTopicField };\r\n break;\r\n case 3: //'Nodo Telnet'\r\n case 7: //'Emoncms':\r\n additionalFields = { ...baseFields, password };\r\n break;\r\n case 8: // 'Generic HTTP'\r\n additionalFields = { ...baseFields, user, password, subscribe, publish };\r\n break;\r\n case 1: // Domoticz HTTP\r\n case 9: // 'FHEM HTTP'\r\n additionalFields = { ...baseFields, user, password };\r\n break;\r\n case 10: //'Generic UDP': \r\n additionalFields = { ...baseFields, subscribe, publish };\r\n break;\r\n case 13: //'ESPEasy P2P Networking':\r\n additionalGroups = {\r\n global: {\r\n name: 'Global Settings',\r\n configs: {\r\n port: { name: 'UDP Port', type: 'number', var: 'ROOT.config.espnetwork.port' }\r\n }\r\n },\r\n nodes: {\r\n name: 'Connected Nodes',\r\n configs: {\r\n nodes: { type: 'custom', component: EspEaspP2PComponent}\r\n }\r\n } \r\n }\r\n break;\r\n case 0:\r\n default:\r\n additionalFields = { ...baseFields };\r\n }\r\n \r\n return {\r\n groups: {\r\n settings: {\r\n name: 'Controller Settings',\r\n configs: {\r\n protocol: { name: 'Protocol', type: 'select', var: 'protocol', options: protocols },\r\n enabled: { name: 'Enabled', type: 'checkbox', var: 'enabled' },\r\n ...additionalFields\r\n }\r\n },\r\n ...additionalGroups\r\n },\r\n }\r\n}\r\n\r\n\r\n// todo: changing protocol needs to update:\r\n// -- back to default (correct default)\r\n// -- field list \r\nexport class ControllerEditPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.config = settings.get(`controllers[${props.params[0]}]`);\r\n this.state = {\r\n protocol: this.config.protocol,\r\n }\r\n }\r\n\r\n render(props) {\r\n const formConfig = getFormConfig(this.state.protocol);\r\n formConfig.groups.settings.configs.protocol.onChange = (e) => {\r\n this.setState({ protocol: e.currentTarget.value });\r\n setDefaultConfig(e.currentTarget.value, this.config);\r\n };\r\n \r\n return (\r\n \r\n );\r\n }\r\n}\r\n","import { h, Component } from 'preact';\r\nimport { settings } from '../lib/settings';\r\nimport { protocols } from './controllers.edit';\r\nimport { types } from './controllers.notifications';\r\n\r\nexport class ControllersPage extends Component {\r\n render(props) {\r\n const controllers = settings.get('controllers');\r\n const notifications = settings.get('notifications');\r\n return (\r\n

    Controllers

    \r\n
    {controllers.map((c, i) => {\r\n const editUrl = `#controllers/edit/${i}`;\r\n return (\r\n
    \r\n \r\n {i+1}: {(c.enabled) ? () : ()}\r\n   [{protocols.find(p => p.value === c.protocol).name}] PORT:{c.settings.port} HOST:{c.settings.host}\r\n edit\r\n \r\n
    \r\n )\r\n })}
    \r\n

    Notifications

    \r\n
    {notifications.map((n, i) => {\r\n const editUrl = `#controllers/notification/${i}`;\r\n return (\r\n
    \r\n \r\n {i+1}: {(n.enabled) ? () : ()}\r\n   [{types.find(p => p.value === n.type).name}] PORT:{n.settings.port} HOST:{n.settings.host}\r\n edit\r\n \r\n
    \r\n )\r\n })}
    \r\n
    \r\n );\r\n }\r\n}","import { h, Component } from 'preact';\r\nimport { Form } from '../components/form';\r\nimport { settings } from '../lib/settings';\r\nimport { set } from '../lib/helpers';\r\nimport { pins } from '../devices/_defs';\r\n\r\nexport const types = [\r\n { name: '- None -', value: 0 },\r\n { name: 'Email', value: 1 },\r\n { name: 'Buzzer', value: 2 },\r\n];\r\n\r\nconst baseDefaults = {}\r\nconst getDefaults = {\r\n 0: () => ({}),\r\n 1: () => ({ // Email\r\n }), 2: () => ({ // Buzzer\r\n }),\r\n}\r\n\r\nconst setDefaultConfig = (type, config) => {\r\n const defaults = {...baseDefaults, ...getDefaults[type]()};\r\n Object.keys(defaults).forEach((key) => {\r\n const val = defaults[key];\r\n set(config.settings, key, val);\r\n });\r\n}\r\n\r\nconst getFormConfig = (type) => {\r\n let additionalFields = {};\r\n switch (Number(type)) {\r\n case 1: // Email\r\n additionalFields = { \r\n domain: { name: 'Domain', type: 'string' },\r\n hostname: { name: 'Hostname', type: 'string' },\r\n port: { name: 'Port', type: 'number' },\r\n sender: { name: 'Sender', type: 'string' },\r\n receiver: { name: 'Receiver', type: 'string' },\r\n subject: { name: 'Subject', type: 'string' },\r\n user: { name: 'Username', type: 'string' },\r\n pass: { name: 'Password', type: 'string' },\r\n body: { name: 'Body', type: 'textarea' },\r\n };\r\n break;\r\n case 2: // Buzzer\r\n additionalFields = { \r\n pin1: { name: '1st GPIO', type: 'select', options: pins }\r\n };\r\n break;\r\n }\r\n \r\n return {\r\n groups: {\r\n settings: {\r\n name: 'Notification Settings',\r\n configs: {\r\n type: { name: 'Type', type: 'select', var: 'type', options: types },\r\n enabled: { name: 'Enabled', type: 'checkbox', var: 'enabled' },\r\n ...additionalFields\r\n }\r\n },\r\n },\r\n }\r\n}\r\n\r\n\r\n// todo: changing protocol needs to update:\r\n// -- back to default (correct default)\r\n// -- field list \r\nexport class ControllerNotificationsPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.config = settings.get(`notifications[${props.params[0]}]`);\r\n this.state = {\r\n type: this.config.type,\r\n }\r\n }\r\n\r\n render(props) {\r\n const formConfig = getFormConfig(this.state.type);\r\n formConfig.groups.settings.configs.type.onChange = (e) => {\r\n this.setState({ type: e.currentTarget.value });\r\n setDefaultConfig(e.currentTarget.value, this.config);\r\n };\r\n formConfig.onSave = (values) => {\r\n settings.set(`notifications[${props.params[0]}]`, values);\r\n window.location.href='#controllers';\r\n }\r\n \r\n return (\r\n \r\n );\r\n }\r\n}\r\n","import { h, Component } from 'preact';\r\nimport { Form } from '../components/form';\r\nimport { settings } from '../lib/settings';\r\nimport { devices } from '../devices';\r\nimport { set } from '../lib/helpers';\r\n\r\nconst baseFields = { \r\n enabled: { name: 'Enabled', type: 'checkbox', var: 'enabled' },\r\n name: { name: 'Name', type: 'string' },\r\n};\r\n\r\nconst getFormConfig = (type) => {\r\n const device = devices.find(d => d.value === parseInt(type));\r\n if (!device) return null;\r\n\r\n const dataAcquisitionForm = device.fields.data ? {\r\n name: 'Data Acquisition',\r\n configs: {\r\n send1: { name: 'Send to Controller 1', type: 'checkbox', var: 'TaskDeviceSendData[0]', if: 'controllers[0].enabled' },\r\n send2: { name: 'Send to Controller 2', type: 'checkbox', var: 'TaskDeviceSendData[1]', if: 'controllers[1].enabled' },\r\n send3: { name: 'Send to Controller 3', type: 'checkbox', var: 'TaskDeviceSendData[2]', if: 'controllers[2].enabled' },\r\n idx1: { name: 'IDX1', type: 'number', var: 'TaskDeviceID[0]', if: 'controllers[0].enabled' },\r\n idx2: { name: 'IDX2', type: 'number', var: 'TaskDeviceID[1]', if: 'controllers[1].enabled' },\r\n idx3: { name: 'IDX3', type: 'number', var: 'TaskDeviceID[2]', if: 'controllers[2].enabled' },\r\n interval: { name: 'Interval', type: 'number', var: 'interval' },\r\n }\r\n }: {};\r\n \r\n return {\r\n groups: {\r\n settings: {\r\n name: 'Device Settings',\r\n configs: {\r\n device: { name: 'Device', type: 'select', var: 'device', options: devices },\r\n ...baseFields,\r\n \r\n }\r\n },\r\n ...device.fields,\r\n data: dataAcquisitionForm,\r\n values: {\r\n name: 'Values',\r\n configs: {\r\n ...[...new Array(device.fields.vals || 0)].reduce((acc, x, i) => {\r\n acc[`value${i}`] = [\r\n { name: `Name ${i+1}`, var: `settings.values[${i}].name`, type: 'string' }, \r\n { name: `Formula ${i+1}`, var: `settings.values[${i}].formula`, type: 'string' },\r\n { name: `Decimals ${i+1}`, var: `extra.decimals[${i}]`, type: 'number' }\r\n ];\r\n return acc;\r\n }, {})\r\n }\r\n }\r\n },\r\n }\r\n}\r\n\r\nconst setDefaultConfig = (type, config) => {\r\n const device = devices.find(d => d.value === parseInt(type));\r\n Object.keys(device.fields).forEach((groupKey) => {\r\n const group = device.fields[groupKey];\r\n if (!group.configs) return;\r\n Object.keys(group.configs).forEach((configKey) => {\r\n const cfg = group.configs[configKey];\r\n const key = cfg.var || `${groupKey}.${configKey}`;\r\n let val = 0;\r\n if (cfg.type === 'string') val = '';\r\n else if (cfg.type === 'ip') val = [0, 0, 0, 0];\r\n set(config, key, val);\r\n });\r\n });\r\n if (device.fields.defaults) {\r\n const defaultConfig = device.fields.defaults();\r\n Object.keys(defaultConfig).forEach(key => {\r\n const val = defaultConfig[key];\r\n set(config, key, val); \r\n })\r\n }\r\n \r\n}\r\n\r\n// todo: changing protocol needs to update:\r\n// -- back to default (correct default)\r\n// -- field list \r\nexport class DevicesEditPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.config = settings.get(`tasks[${props.params[0]}]`);\r\n this.state = {\r\n device: this.config.device,\r\n }\r\n }\r\n\r\n render(props) {\r\n const formConfig = getFormConfig(this.state.device);\r\n if (!formConfig) {\r\n alert('something went wrong, cant edit device');\r\n window.location.href='#devices';\r\n }\r\n formConfig.groups.settings.configs.device.onChange = (e) => {\r\n this.setState({ device: e.currentTarget.value });\r\n setDefaultConfig(e.currentTarget.value, this.config);\r\n };\r\n formConfig.onSave = (values) => {\r\n settings.set(`tasks[${props.params[0]}]`, values);\r\n window.location.href='#devices';\r\n }\r\n return (\r\n \r\n );\r\n }\r\n}\r\n","import { h, Component } from 'preact';\r\nimport { settings } from '../lib/settings';\r\nimport { devices } from '../devices';\r\n\r\nexport class DevicesPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.handleEnableToggle = (e) => {\r\n settings.set(e.currentTarget.dataset.prop, e.currentTarget.checked ? 1 : 0);\r\n }\r\n }\r\n render(props) {\r\n const tasks = settings.get('tasks');\r\n if (!tasks) return;\r\n return (\r\n
    \r\n {tasks.map((task, i) => {\r\n const editUrl = `#devices/edit/${i}`;\r\n const device = devices.find(d => d.value === task.device);\r\n const deviceType = device ? device.name : '--unknown--';\r\n const enabledProp = `tasks[${i}].enabled`;\r\n return (\r\n
    \r\n \r\n {i+1}: \r\n   {task.settings.name} [{deviceType}] {task.gpio1!==255?`GPIO:${task.gpio1}`:''}\r\n edit\r\n \r\n \r\n {/* {device.settings.values.map(v => {\r\n return ({v.name}: {v.value});\r\n })} */}\r\n \r\n
    \r\n )\r\n })}\r\n
    \r\n );\r\n }\r\n}","import { h, Component } from 'preact';\r\nimport { settings } from '../lib/settings';\r\nimport { saveConfig } from '../conf/config.dat';\r\nimport { storeFile } from '../lib/espeasy';\r\nimport { loader } from '../lib/loader';\r\n\r\n\r\nexport class DiffPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.diff = settings.diff();\r\n this.stage = 0;\r\n\r\n this.calculateByteDiff = () => {\r\n this.data = saveConfig(false);\r\n this.bytediffcount = 0;\r\n this.bytediff = Array.from(new Uint8Array(this.data));\r\n this.bytediff = this.bytediff.map((byte, i) => {\r\n const binary = settings.binary[i];\r\n if (byte !== binary) {\r\n this.bytediffcount++;\r\n return `${binary.toString(16)}:${byte.toString(16)}`;\r\n } else return `${byte.toString(16)}`;\r\n });\r\n this.bytediff = this.bytediff.join(' ');\r\n }\r\n\r\n this.calculateByteDiff();\r\n\r\n this.applyChanges = () => {\r\n if (this.stage === 0) {\r\n this.diff.map(d => {\r\n const input = this.form.elements[d.path];\r\n if (!input.checked) {\r\n settings.set(input.name, d.val1);\r\n }\r\n });\r\n settings.apply();\r\n this.diff = settings.diff();\r\n this.calculateByteDiff();\r\n this.stage = 1;\r\n return;\r\n }\r\n \r\n loader.show();\r\n storeFile('config.dat', this.data).then(() => {\r\n this.stage = 0;\r\n window.location.href='#config/reboot';\r\n });\r\n \r\n };\r\n }\r\n \r\n\r\n render(props) {\r\n if (this.bytediff && (this.stage === 1 /*|| this.bytediffcount*/)) {\r\n return (
    )\r\n }\r\n return (\r\n
    \r\n
    byte diff: {this.bytediffcount}
    \r\n this.form = ref}>\r\n {this.diff.map(change => {\r\n return (\r\n
    \r\n {change.path}: before: {JSON.stringify(change.val1)} now:{JSON.stringify(change.val2)} \r\n
    \r\n )\r\n })}\r\n \r\n \r\n
    \r\n \r\n );\r\n }\r\n}","import { h, Component } from 'preact';\r\n\r\nconst devices = [\r\n { nr: 1, name: 'Senzor', type: 'DH11', vars: [{ name: 'Temperature', formula: '', value: 21 }, { name: 'Humidity', formula: '', value: 65 }] },\r\n { nr: 1, name: 'Humidity', type: 'Linear Regulator', vars: [{ name: 'Output', formula: '', value: 1 }] }\r\n]\r\n\r\nexport class DiscoverPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n devices: []\r\n }\r\n\r\n this.scani2c = () => {\r\n fetch('/i2cscanner').then(r => r.json()).then(r => {\r\n this.setState({ devices: r });\r\n });\r\n }\r\n\r\n this.scanwifi = () => {\r\n fetch('/wifiscanner').then(r => r.json()).then(r => {\r\n this.setState({ devices: r });\r\n });\r\n }\r\n }\r\n\r\n render(props) {\r\n return (\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n {this.state.devices.map(device => {\r\n return (\r\n \r\n \r\n \r\n )\r\n })}
    \r\n {JSON.stringify(device)}\r\n
    \r\n
    \r\n );\r\n }\r\n}","import { h, Component } from 'preact';\r\nimport { Form } from '../components/form';\r\n\r\nconst formConfig = {\r\n onSave: (vals) => { console.log(vals); },\r\n groups: {\r\n keep: {\r\n name: 'Settings to keep',\r\n configs: {\r\n unit: { name: 'Keep Unit/Name', type: 'checkbox' },\r\n wifi: { name: 'Keep WiFi config', type: 'checkbox' },\r\n network: { name: 'Keep network config', type: 'checkbox' },\r\n ntp: { name: 'Keep NTP/DST config', type: 'checkbox' },\r\n log: { name: 'Keep log config', type: 'checkbox' },\r\n }\r\n },\r\n load: {\r\n name: 'Pre-defined configurations',\r\n configs: {\r\n config: { name: 'Pre-Defined config', type: 'select', options: [\r\n { name: 'default', value: 0 },\r\n { name: 'Sonoff Basic', value: 1 },\r\n { name: 'Sonoff TH1x', value: 2 },\r\n { name: 'Sonoff S2x', value: 3 },\r\n { name: 'Sonoff TouchT1', value: 4 },\r\n { name: 'Sonoff TouchT2', value: 5 },\r\n { name: 'Sonoff TouchT3', value: 6 },\r\n { name: 'Sonoff 4ch', value: 7 },\r\n { name: 'Sonoff POW', value: 8 },\r\n { name: 'Sonoff POW-r2', value: 9 },\r\n { name: 'Shelly1', value: 10 },\r\n ] },\r\n }\r\n },\r\n },\r\n}\r\n\r\nconst config = {}\r\n\r\nexport class FactoryResetPage extends Component {\r\n render(props) {\r\n formConfig.onSave = (config) => {\r\n const data = new FormData();\r\n if (config.keep.unit) data.append('kun', 'on');\r\n if (config.keep.wifi) data.append('kw', 'on');\r\n if (config.keep.network) data.append('knet', 'on');\r\n if (config.keep.ntp) data.append('kntp', 'on');\r\n if (config.keep.log) data.append('klog', 'on');\r\n data.append('fdm', config.load.config);\r\n data.append('savepref', 'Save Preferences');\r\n fetch('/factoryreset', {\r\n method: 'POST',\r\n body: data \r\n }).then(() => {\r\n data.delete('savepref');\r\n data.append('performfactoryreset', 'Factory Reset');\r\n fetch('/factoryreset', {\r\n method: 'POST',\r\n body: data\r\n }).then(() => {\r\n setTimeout(() => {\r\n window.location.href=\"#devices\";\r\n }, 5000);\r\n }, e => {\r\n\r\n })\r\n }, e => {\r\n\r\n });\r\n };\r\n return (\r\n
    \r\n );\r\n }\r\n}","import { h, Component } from 'preact';\nimport { deleteFile, storeFile } from '../lib/espeasy';\n\nexport class FSPage extends Component {\n constructor(props) {\n super(props);\n this.state = { files: [] }\n\n this.saveForm = () => {\n storeFile(this.file.files[0]);\n }\n\n this.deleteFile = e => {\n const fileName = e.currentTarget.dataset.name;\n deleteFile(fileName).then(() => (this.fetch()));\n }\n }\n\n fetch() {\n fetch('/filelist_json').then(response => response.json()).then(fileList => {\n this.setState({ files: fileList });\n });\n }\n\n render(props) {\n return (\n
    \n \n
    \n \n this.file = ref} />\n \n \n
    \n \n \n \n \n \n \n \n \n \n \n {this.state.files.map(file => {\n const url = `/${file.fileName}`;\n return (\n \n \n \n \n \n ); })}\n\n \n
    FileSize
    {file.fileName}{file.size}\n { file.fileName.endsWith('.dat') ? (null) :\n ()\n }\n
    \n
    \n );\n }\n\n componentDidMount() {\n this.fetch();\n }\n}","export * from './controllers';\nexport * from './devices';\nexport * from './config';\nexport * from './config.advanced';\nexport * from './config.hardware';\nexport * from './reboot';\nexport * from './load';\nexport * from './update';\nexport * from './rules';\nexport * from './tools';\nexport * from './fs';\nexport * from './factory_reset';\nexport * from './discover';\nexport * from './controllers.edit';\nexport * from './controllers.notifications';\nexport * from './devices.edit';\nexport * from './diff';\nexport * from './rules.editor';\nexport * from './setup';\nexport * from './tools.sysvars';","import { h, Component } from 'preact';\r\nimport { storeFile } from '../lib/espeasy';\r\n\r\nexport class LoadPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.saveForm = () => {\r\n storeFile(this.file.files[0]);\r\n }\r\n }\r\n\r\n render(props) {\r\n return (
    \r\n
    \r\n \r\n this.file = ref} />\r\n \r\n
    \r\n
    )\r\n }\r\n}","import { h, Component } from 'preact';\r\nimport { loader } from '../lib/loader';\r\n\r\n\r\nexport class RebootPage extends Component {\r\n render(props) {\r\n return (\r\n
    ESPEasy is rebooting ... please wait a while, this page will auto refresh.
    \r\n );\r\n }\r\n\r\n componentDidMount() {\r\n loader.show();\r\n fetch('/?cmd=reboot').then(() => {\r\n setTimeout(() => {\r\n loader.hide();\r\n window.location.hash = '#devices';\r\n window.location.reload();\r\n }, 5000)\r\n })\r\n }\r\n}","import { h, Component } from 'preact';\r\nimport { FlowEditor } from '../lib/floweditor';\r\nimport { nodes } from '../lib/node_definitions';\r\nimport { getConfigNodes, loadRuleConfig, storeRuleConfig, storeRule } from '../lib/espeasy';\r\n\r\nexport class RulesEditorPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.nodes = nodes;\r\n }\r\n\r\n render(props) {\r\n return (\r\n
    this.element = ref}>\r\n
    \r\n );\r\n }\r\n\r\n componentDidMount() {\r\n getConfigNodes().then((out) => {\r\n out.nodes.forEach(device => nodes.unshift(device));\r\n const ifElseNode = nodes.find(node => node.type === 'if/else');\r\n if (!ifElseNode.config[0].loaded) {\r\n out.vars.forEach(v => ifElseNode.config[0].values.push(v)); \r\n ifElseNode.config[0].loaded = true;\r\n }\r\n\r\n this.chart = new FlowEditor(this.element, nodes, { \r\n onSave: (config, rules) => {\r\n storeRuleConfig(config);\r\n storeRule(rules);\r\n }\r\n });\r\n \r\n loadRuleConfig().then(config => {\r\n this.chart.loadConfig(config);\r\n });\r\n });\r\n }\r\n}","import { h, Component } from 'preact';\r\n\r\n\r\nconst rules = [\r\n { name: 'Rule 1', file: 'rules1.txt', index: 1 },\r\n { name: 'Rule 2', file: 'rules2.txt', index: 2 },\r\n { name: 'Rule 3', file: 'rules3.txt', index: 3 },\r\n { name: 'Rule 4', file: 'rules4.txt', index: 4 },\r\n];\r\n\r\nexport class RulesPage extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n selected: rules[0]\r\n }\r\n\r\n this.selectionChanged = (e) => {\r\n this.setState({ selected: rules[e.currentTarget.value] });\r\n }\r\n\r\n this.saveRule = () => {\r\n const data = new FormData();\r\n data.append('set', this.state.selected.index);\r\n data.append('rules', this.text.value);\r\n fetch('/rules', {\r\n method: 'POST',\r\n body: data \r\n }).then(res => {\r\n console.log('succesfully saved');\r\n console.log(res.text());\r\n });\r\n }\r\n\r\n this.fetch();\r\n }\r\n\r\n render(props) {\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n async fetch() {\r\n const text = await fetch(this.state.selected.file).then(response => response.text());\r\n this.text.value = text;\r\n }\r\n\r\n async componentDidUpdate() {\r\n this.fetch();\r\n }\r\n}","import { h, Component } from 'preact';\r\nimport { Form } from '../components/form';\r\nimport { settings } from '../lib/settings';\r\nimport { loader } from '../lib/loader';\r\n\r\nconst formConfig = {\r\n groups: {\r\n wifi: {\r\n name: 'WiFi',\r\n configs: {\r\n ssid: { name: 'SSID', type: 'select', options: [], var: 'security[0].WifiSSID' },\r\n passwd: { name: 'Password', type: 'password', var: 'security[0].WifiKey' },\r\n }\r\n },\r\n },\r\n}\r\n\r\nexport class SetupPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n devices: [],\r\n }\r\n loader.show();\r\n\r\n this.save = () => {\r\n loader.show();\r\n\r\n const data = new FormData();\r\n data.append('ssid', this.config.security[0].WifiSSID);\r\n data.append('pass', this.config.security[0].WifiKey);\r\n fetch('/setup', {\r\n method: 'POST',\r\n data\r\n }).then(() => {\r\n setTimeout(() => {\r\n loader.hide();\r\n window.location.href = '/';\r\n }, 5000);\r\n })\r\n }\r\n }\r\n\r\n render(props) {\r\n formConfig.groups.wifi.configs.ssid.options = this.state.devices.map(device => ({ name: device.ssid, value: device.ssd }));\r\n const config = settings.get('config');\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n );\r\n }\r\n\r\n componentDidMount() {\r\n fetch('/wifiscanner').then(r => r.json()).then(r => {\r\n this.setState({ devices: r });\r\n loader.hide();\r\n });\r\n }\r\n}","import { h, Component } from 'preact';\r\n\r\nexport class ToolsPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.history = '';\r\n\r\n this.sendCommand = (e) => {\r\n fetch(`/control?cmd=${this.cmd.value}`).then(response => response.text()).then(response => {\r\n this.cmdOutput.value = response;\r\n });\r\n }\r\n }\r\n\r\n fetch() {\r\n fetch('/logjson').then(response => response.json()).then(response => {\r\n response.Log.Entries.map(log => {\r\n this.history += `
    ${(new Date(log.timestamp).toLocaleTimeString())}${log.text}
    `;\r\n this.log.innerHTML = this.history;\r\n if (true) {\r\n this.log.scrollTop = this.log.scrollHeight;\r\n }\r\n })\r\n });\r\n }\r\n\r\n render(props) {\r\n return (\r\n
    \r\n
    this.log = ref}>loading logs ...
    \r\n
    Command: this.cmd = ref}/>
    \r\n \r\n
    \r\n );\r\n }\r\n\r\n componentDidMount() {\r\n this.interval = setInterval(() => {\r\n this.fetch();\r\n }, 1000);\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.interval) clearInterval(this.interval);\r\n }\r\n}","import { h, Component } from 'preact';\n\nexport class SysVarsPage extends Component {\n constructor(props) {\n super(props);\n this.state = { device: props.params[0], vars: {} };\n }\n\n fetch() {\n fetch(`/sysinfo_json`).then(response => response.json()).then(vars => {\n this.setState({ vars });\n });\n }\n\n render(props) {\n return (\n \n {\n Object.keys(this.state.vars).map(v => {\n const value = this.state.vars[v];\n return (\n
    \n \n {\n Object.keys(value).map((v1, i) => {\n const value1 = value[v1];\n return (\n
    \n \n \n
    \n )\n })\n }\n
    \n )\n \n \n })\n }\n \n )\n }\n\n componentDidMount() {\n this.fetch();\n }\n}","import { h, Component } from 'preact';\nimport { fetchProgress } from '../lib/espeasy';\nimport { loader } from '../lib/loader';\n\nexport class UpdatePage extends Component {\n constructor(props) {\n super(props);\n\n this.state = { progress: 0 }\n\n this.saveForm = () => {\n loader.show();\n const data = new FormData()\n data.append('file', this.file.files[0])\n data.append('user', 'hubot')\n \n fetchProgress('/update', {\n method: 'POST',\n body: data,\n onProgress: (e) => {\n const perc = 100 * e.loaded / e.total;\n this.setState({ progress: perc });\n }\n }).then(() => {\n window.location.href = '#config/reboot';\n });\n }\n }\n\n render(props) {\n return (\n
    \n
    \n \n this.file = ref} />\n \n { (this.state.progress) ? ( {Math.round(this.state.progress)}%) : (null) }\n
    \n
    \n )\n }\n}"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/lodash/_Hash.js","webpack:///./node_modules/lodash/_ListCache.js","webpack:///./node_modules/lodash/_Map.js","webpack:///./node_modules/lodash/_MapCache.js","webpack:///./node_modules/lodash/_Symbol.js","webpack:///./node_modules/lodash/_arrayMap.js","webpack:///./node_modules/lodash/_assignValue.js","webpack:///./node_modules/lodash/_assocIndexOf.js","webpack:///./node_modules/lodash/_baseAssignValue.js","webpack:///./node_modules/lodash/_baseGet.js","webpack:///./node_modules/lodash/_baseGetTag.js","webpack:///./node_modules/lodash/_baseIsNative.js","webpack:///./node_modules/lodash/_baseSet.js","webpack:///./node_modules/lodash/_baseToString.js","webpack:///./node_modules/lodash/_castPath.js","webpack:///./node_modules/lodash/_coreJsData.js","webpack:///./node_modules/lodash/_defineProperty.js","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///./node_modules/lodash/_getMapData.js","webpack:///./node_modules/lodash/_getNative.js","webpack:///./node_modules/lodash/_getRawTag.js","webpack:///./node_modules/lodash/_getValue.js","webpack:///./node_modules/lodash/_hashClear.js","webpack:///./node_modules/lodash/_hashDelete.js","webpack:///./node_modules/lodash/_hashGet.js","webpack:///./node_modules/lodash/_hashHas.js","webpack:///./node_modules/lodash/_hashSet.js","webpack:///./node_modules/lodash/_isIndex.js","webpack:///./node_modules/lodash/_isKey.js","webpack:///./node_modules/lodash/_isKeyable.js","webpack:///./node_modules/lodash/_isMasked.js","webpack:///./node_modules/lodash/_listCacheClear.js","webpack:///./node_modules/lodash/_listCacheDelete.js","webpack:///./node_modules/lodash/_listCacheGet.js","webpack:///./node_modules/lodash/_listCacheHas.js","webpack:///./node_modules/lodash/_listCacheSet.js","webpack:///./node_modules/lodash/_mapCacheClear.js","webpack:///./node_modules/lodash/_mapCacheDelete.js","webpack:///./node_modules/lodash/_mapCacheGet.js","webpack:///./node_modules/lodash/_mapCacheHas.js","webpack:///./node_modules/lodash/_mapCacheSet.js","webpack:///./node_modules/lodash/_memoizeCapped.js","webpack:///./node_modules/lodash/_nativeCreate.js","webpack:///./node_modules/lodash/_objectToString.js","webpack:///./node_modules/lodash/_root.js","webpack:///./node_modules/lodash/_stringToPath.js","webpack:///./node_modules/lodash/_toKey.js","webpack:///./node_modules/lodash/_toSource.js","webpack:///./node_modules/lodash/eq.js","webpack:///./node_modules/lodash/get.js","webpack:///./node_modules/lodash/isArray.js","webpack:///./node_modules/lodash/isFunction.js","webpack:///./node_modules/lodash/isObject.js","webpack:///./node_modules/lodash/isObjectLike.js","webpack:///./node_modules/lodash/isSymbol.js","webpack:///./node_modules/lodash/memoize.js","webpack:///./node_modules/lodash/set.js","webpack:///./node_modules/lodash/toString.js","webpack:///./node_modules/mini-toastr/mini-toastr.js","webpack:///./node_modules/preact/dist/preact.mjs","webpack:///(webpack)/buildin/global.js","webpack:///./src/app.js","webpack:///./src/components/espeasy_p2p/index.js","webpack:///./src/components/form/index.js","webpack:///./src/components/menu/index.js","webpack:///./src/components/page/index.js","webpack:///./src/conf/config.dat.js","webpack:///./src/devices/10_light_lux.js","webpack:///./src/devices/11_pme.js","webpack:///./src/devices/12_lcd.js","webpack:///./src/devices/13_hcsr04.js","webpack:///./src/devices/14_si7021.js","webpack:///./src/devices/15_tls2561.js","webpack:///./src/devices/17_pn532.js","webpack:///./src/devices/18_dust.js","webpack:///./src/devices/19_pcf8574.js","webpack:///./src/devices/1_input_switch.js","webpack:///./src/devices/20_ser2net.js","webpack:///./src/devices/21_level_control.js","webpack:///./src/devices/22_pca9685.js","webpack:///./src/devices/23_oled1306.js","webpack:///./src/devices/24_mlx90614.js","webpack:///./src/devices/25_ads1115.js","webpack:///./src/devices/26_system_info.js","webpack:///./src/devices/27_ina219.js","webpack:///./src/devices/28_bmx280.js","webpack:///./src/devices/29_mqtt_domoticz.js","webpack:///./src/devices/2_analog_input.js","webpack:///./src/devices/30_bmp280.js","webpack:///./src/devices/31_sht1x.js","webpack:///./src/devices/32_ms5611.js","webpack:///./src/devices/33_dummy_device.js","webpack:///./src/devices/34_dht12.js","webpack:///./src/devices/36_sh1106.js","webpack:///./src/devices/37_mqtt_import.js","webpack:///./src/devices/38_neopixel_basic.js","webpack:///./src/devices/39_thermocouple.js","webpack:///./src/devices/3_generic_pulse.js","webpack:///./src/devices/41_neopixel_clock.js","webpack:///./src/devices/42_neopixel_candle.js","webpack:///./src/devices/43_output_clock.js","webpack:///./src/devices/44_wifi_gateway.js","webpack:///./src/devices/49_mhz19.js","webpack:///./src/devices/4_ds18b20.js","webpack:///./src/devices/52_senseair.js","webpack:///./src/devices/56_sds011.js","webpack:///./src/devices/59_rotary_encoder.js","webpack:///./src/devices/5_dht.js","webpack:///./src/devices/63_ttp229.js","webpack:///./src/devices/6_bmp085.js","webpack:///./src/devices/7_pcf8591.js","webpack:///./src/devices/8_rfid.js","webpack:///./src/devices/9_io_mcp.js","webpack:///./src/devices/_defs.js","webpack:///./src/devices/index.js","webpack:///./src/lib/espeasy.js","webpack:///./src/lib/floweditor.js","webpack:///./src/lib/helpers.js","webpack:///./src/lib/loader.js","webpack:///./src/lib/menu.js","webpack:///./src/lib/node_definitions.js","webpack:///./src/lib/parser.js","webpack:///./src/lib/plugins.js","webpack:///./src/lib/settings.js","webpack:///./src/pages/config.advanced.js","webpack:///./src/pages/config.hardware.js","webpack:///./src/pages/config.js","webpack:///./src/pages/controllers.edit.js","webpack:///./src/pages/controllers.js","webpack:///./src/pages/controllers.notifications.js","webpack:///./src/pages/devices.edit.js","webpack:///./src/pages/devices.js","webpack:///./src/pages/diff.js","webpack:///./src/pages/discover.js","webpack:///./src/pages/factory_reset.js","webpack:///./src/pages/fs.js","webpack:///./src/pages/index.js","webpack:///./src/pages/load.js","webpack:///./src/pages/reboot.js","webpack:///./src/pages/rules.editor.js","webpack:///./src/pages/rules.js","webpack:///./src/pages/setup.js","webpack:///./src/pages/tools.js","webpack:///./src/pages/tools.sysvars.js","webpack:///./src/pages/update.js"],"names":["miniToastr","init","clearSlashes","path","toString","replace","getFragment","match","window","location","href","fragment","App","Component","constructor","state","menuActive","menu","menus","page","changed","menuToggle","setState","render","props","params","split","slice","active","componentDidMount","loader","hide","current","fn","newFragment","diff","settings","length","parts","m","find","routes","route","interval","setInterval","componentWillUnmount","load","loadConfig","loadPlugins","document","body","EspEaspP2PComponent","nodes","refresh","fetch","then","res","json","map","node","first","name","ip","Form","onChange","id","prop","config","e","val","form","elements","value","type","checked","parseFloat","isNaN","parseInt","startsWith","set","selected","renderConfig","varName","min","max","options","option","Object","clickEvent","click","renderConfigGroup","configs","values","configArray","Array","isArray","conf","i","varId","var","get","if","CustomComponent","component","renderGroup","group","keys","getKeys","key","groups","ref","Menu","renderMenuItem","action","title","children","child","open","Page","PageComponent","pagetitle","class","TASKS_MAX","NOTIFICATION_MAX","CONTROLLER_MAX","PLUGIN_CONFIGVAR_MAX","PLUGIN_CONFIGFLOATVAR_MAX","PLUGIN_CONFIGLONGVAR_MAX","PLUGIN_EXTRACONFIGVAR_MAX","NAME_FORMULA_LENGTH_MAX","VARS_PER_TASK","configDatParseConfig","signed","x","flat","TaskSettings","ControllerSettings","NotificationSettings","SecuritySettings","response","arrayBuffer","parseConfig","tasks","extra","controllers","notificationResponse","notifications","securityResponse","security","binary","Uint8Array","console","log","ii","saveConfig","save","buffer","ArrayBuffer","writeConfig","saveData","bufferNotifications","bufferSecurity","a","createElement","appendChild","style","data","fileName","blob","Blob","url","URL","createObjectURL","download","revokeObjectURL","i2c_address","measurmentMode","bh1750","defaults","sensor","mode","send_to_sleep","vals","pme","port","displaySize","lcdCommand","lcd2004","size","line1","line2","line3","line4","button","pins","timeout","command","units","filters","hcsr04","gpio1","gpio2","treshold","max_distance","unit","filter","filter_size","resolution","si7021","tls2561","gain","pn532","dust","eventTypes","pcf8574","gpio4","inversed","send_boot_state","advanced","debounce","dblclick","dblclick_interval","longpress","longpress_interval","safe_button","inputSwitch","pullup","gpio","switch_type","switch_button_type","serialConfig","eventProcessing","ser2net","baudrate","serial_config","reset_after_boot","event_processing","sensorModel","levelControl","check_task","getTasks","check_value","getTaskValues","level","hysteresis","v","pca9685","frequency","range","oled1306","rotation","font","line5","line6","line7","line8","mlx90614","gainOptions","multiplexerOptions","ads1115","multiplexer","enabled","point1","point2","indicator","systemInfo","indicator1","measurmentRange","measurmentType","ina219","bmx280","ValueCount","SendDataOption","TimerOption","TimerOptional","GlobalSync","altitude","offset","mqttDomoticz","idx","analogInput","oversampling","bmp280","sht1x","ms5611","dummyDevice","dht12","sh1106","mqttImport","neopixelBasic","leds","thermocouple","modeTypes","counterTypes","genericPulse","counter_type","mode_type","neopixelClock","R","G","B","neopixelCandle","clock","event1","event2","event3","event4","event5","event6","event7","event8","parity","wifiGateway","data_bits","stop_bits","mhz19","ds18b20","senseAir","sds011","rotaryEncoder","gpio3","limit_min","limit_max","dht","ttp229","scancode","bmp085","pcf8591","vars","weigandType","rfidWeigand","inputMcp","task","index","devices","fields","sort","b","localeCompare","getJsonStat","loadDevices","Sensors","getConfigNodes","device","taskValues","TaskValues","push","TaskName","Name","result","TaskNumber","Type","inputs","outputs","indent","comparison","toDsl","fnNames","fnName","findIndex","getVariables","urls","Promise","all","stat","System","Value","getDashboardConfigNodes","fetchProgress","opts","rej","xhr","XMLHttpRequest","method","k","headers","setRequestHeader","onload","target","responseText","onerror","upload","onProgress","onprogress","send","storeFile","filename","show","file","File","formData","FormData","append","success","error","message","deleteFile","storeDashboardConfig","loadDashboardConfig","storeRuleConfig","loadRuleConfig","storeRule","rule","color","saveChart","renderedNodes","triggers","trigger","walkRule","t","o","out","lines","line","input","nodeObject","c","position","y","loadChart","chart","from","n","configNode","NodeUI","canvas","cfg","fromDimension","getBoundingClientRect","toDimension","lineSvg","svgArrow","clientWidth","clientHeight","element","x1","width","y1","height","x2","y2","setPath","connection","output","svg","start","end","outputI","exportChart","r","rules","ruleset","padding","outI","subrule","trim","join","includes","dNd","enableNativeDrag","nodeElement","draggable","ondragstart","ev","dataTransfer","setData","enableNativeDrop","ondragover","preventDefault","ondrop","fill","createElementNS","setAttribute","setAttributeNS","tension","delta","hx1","hy1","hx2","hy2","Node","assign","toHtml","linesEnd","updateInputsOutputs","rect","handleMoveEvent","canEdit","shiftX","clientX","left","shiftY","clientY","top","onMouseMove","newy","newx","gridSize","onMouseUp","removeEventListener","addEventListener","handleDblClickEvent","showConfigBox","text","innerHTML","textContent","handleRightClickEvent","parentNode","removeChild","indexOf","splice","destroy","stopPropagation","className","onmousedown","oncontextmenu","rects","pageX","pageY","elemBelow","elementFromPoint","closest","remove","inputRect","ondblclick","bind","getCfgUI","template","getSelectOptions","content","cloneNode","onclose","configBox","querySelectorAll","okButton","getElementById","cancelButton","onclick","forms","cfgUI","FlowEditor","onSave","readOnly","debug","nodeConfig","getData","renderContainers","sidebar","saveBtn","JSON","stringify","loadBtn","prompt","parse","exportBtn","exported","renderConfigNodes","object","hasOwnProperty","Loader","querySelector","classList","add","setTimeout","Menus","addMenu","addRoute","forEach","DevicesPage","ControllersPage","RulesEditorPage","ConfigPage","ConfigHardwarePage","ConfigAdvancedPage","RulesPage","LoadPage","RebootPage","FactoryResetPage","ToolsPage","DiscoverPage","SysVarsPage","UpdatePage","FSPage","ControllerEditPage","ControllerNotificationsPage","DevicesEditPage","DiffPage","SetupPage","DataParser","view","DataView","bitbyte","bitbytepos","pad","nr","bit","write","byte","int16","int32","float","setFloat32","getFloat32","bytes","ints","longs","floats","string","code","charCodeAt","String","fromCharCode","apply","p","PLUGINS","dynamicallyLoadScript","resolve","script","src","onreadystatechange","head","getPluginAPI","espeasy","plugin","obj1","obj2","val1","val2","Settings","obj","warn","stored","settings1","logLevelOptions","formConfig","oldengine","mqtt","retain_flag","useunitname","changeclientid","ntp","host","dst","long","lat","syslog_ip","syslog_level","syslog_facility","serial_level","web_level","serial","experimental","ip_octet","WDI2CAddress","ssdp","ConnectionFailuresThreshold","WireClockStretchLimit","pinState","led","inverse","reset","pin","i2c","sda","scl","spi","ipBlockLevel","general","unitname","unitnr","appendunit","password","wifi","ssid","passwd","fallbackssid","fallbackpasswd","wpaapmode","clientIP","blocklevel","lowerrange","upperrange","IP","gw","subnet","dns","sleep","awaketime","sleeptime","sleeponfailiure","protocols","baseFields","hostname","minimal_time_between","max_queue_depth","max_retry","delete_oldest","must_check_reply","client_timeout","user","subscribe","publish","lwtTopicField","MQTT_lwt_topic","lwt_message_connect","lwt_message_disconnect","baseDefaults","getDefaults","public","Custom","setDefaultConfig","getFormConfig","additionalFields","additionalGroups","Number","global","protocol","currentTarget","editUrl","types","domain","sender","receiver","subject","pass","pin1","d","dataAcquisitionForm","send1","send2","send3","idx1","idx2","idx3","reduce","acc","groupKey","configKey","defaultConfig","alert","handleEnableToggle","dataset","deviceType","enabledProp","stage","calculateByteDiff","bytediffcount","bytediff","applyChanges","__html","change","formula","scani2c","scanwifi","keep","network","delete","files","saveForm","fileList","endsWith","hash","reload","unshift","ifElseNode","loaded","selectionChanged","saveRule","componentDidUpdate","WifiSSID","WifiKey","ssd","history","sendCommand","cmd","cmdOutput","Log","Entries","Date","timestamp","toLocaleTimeString","scrollTop","scrollHeight","clearInterval","v1","value1","progress","perc","total","Math","round"],"mappings":"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;;;;;;;;;ACZA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7BA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtBA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtBA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACxBA,cAAc,mBAAO,CAAC,mDAAW;AACjC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACdA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACZA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AClCA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;AClBA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA,WAAW,mBAAO,CAAC,+CAAS;AAC5B,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,UAAU,mBAAO,CAAC,6CAAQ;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpBA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACrBA,cAAc,mBAAO,CAAC,mDAAW;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA,gBAAgB,mBAAO,CAAC,yDAAc;;AAEtC;AACA;;AAEA;;;;;;;;;;;;ACLA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACrBA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;ACRA,oBAAoB,mBAAO,CAAC,iEAAkB;;AAE9C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;;;;;;;;;;;;AC1BA,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpBA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA,cAAc,mBAAO,CAAC,qDAAY;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA,iBAAiB,QAAQ,OAAO,SAAS,EAAE;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5BA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5BA,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;ACxEA,cAAc,mBAAO,CAAC,qDAAY;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA,iBAAiB,QAAQ,OAAO,SAAS,EAAE;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AClCA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;AC3BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO;AACP;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEO;;AAEA;AACA;AACA;AACA;AACA;AACA,8BAA8B,SAAS;AACvC,uBAAuB,SAAS;AAChC,sBAAsB,SAAS;AAC/B,yBAAyB,SAAS;AAClC,wBAAwB,MAAM;AAC9B,uBAAuB,KAAK;AAC5B,0BAA0B,QAAQ;AAClC,uBAAuB,KAAK;AAC5B;;AAEP;;AAEO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;AACA,iCAAiC,SAAS;AAC1C;AACA,oDAAoD;AACpD,eAAe,OAAO;AACtB;;AAEA,wCAAwC;;AAExC;AACA;;AAEO;AACP;AACA;AACA,oBAAoB,SAAS;AAC7B;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEO;AACP,UAAU,2BAA2B;AACrC;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,SAAS,gBAAgB;AACzB;AACA;AACA;AACA;AACA,KAAK;AACL,SAAS,mBAAmB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA,OAAO;AACP,YAAY,WAAW;AACvB;AACA,OAAO;AACP,YAAY,cAAc;AAC1B;AACA,OAAO;AACP,YAAY,WAAW;AACvB;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL,SAAS,YAAY;AACrB;AACA,KAAK;AACL,SAAS,cAAc;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC,mBAAmB,GAAG,mBAAmB;;AAE7E;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA,+BAA+B;AAC/B;AACA;;AAEe,yE;;;;;;;;;;;;AC3Of;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,KAAK;AAC9B;AACA;AACA,GAAG;AACH;;AAEA;AACA,kCAAkC,0DAA0D;AAC5F;;AAEA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,6CAA6C;AAC7C;AACA;;AAEA;;AAEA;AACA,2CAA2C;AAC3C;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,sBAAsB;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,uBAAuB;AACvB;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,2CAA2C;AAC3C,EAAE;AACF;AACA;AACA,GAAG;AACH;AACA,EAAE;AACF;;AAEA;AACA,sFAAsF;AACtF,GAAG;AACH,0FAA0F;AAC1F;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C,KAAK;AACjD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,UAAU;AAC3B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,6BAA6B;AAC7B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AAC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","file":"app.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/app.js\");\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var assignValue = require('./_assignValue'),\n castPath = require('./_castPath'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nmodule.exports = baseSet;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var baseSet = require('./_baseSet');\n\n/**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\nfunction set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n}\n\nmodule.exports = set;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","export function fadeOut (element, cb) {\n if (element.style.opacity && element.style.opacity > 0.05) {\n element.style.opacity = element.style.opacity - 0.05\n } else if (element.style.opacity && element.style.opacity <= 0.1) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n if (cb) cb()\n }\n } else {\n element.style.opacity = 0.9\n }\n setTimeout(() => fadeOut.apply(this, [element, cb]), 1000 / 30\n )\n}\n\nexport const LIB_NAME = 'mini-toastr'\n\nexport const ERROR = 'error'\nexport const WARN = 'warn'\nexport const SUCCESS = 'success'\nexport const INFO = 'info'\nexport const CONTAINER_CLASS = LIB_NAME\nexport const NOTIFICATION_CLASS = `${LIB_NAME}__notification`\nexport const TITLE_CLASS = `${LIB_NAME}-notification__title`\nexport const ICON_CLASS = `${LIB_NAME}-notification__icon`\nexport const MESSAGE_CLASS = `${LIB_NAME}-notification__message`\nexport const ERROR_CLASS = `-${ERROR}`\nexport const WARN_CLASS = `-${WARN}`\nexport const SUCCESS_CLASS = `-${SUCCESS}`\nexport const INFO_CLASS = `-${INFO}`\nexport const DEFAULT_TIMEOUT = 3000\n\nconst EMPTY_STRING = ''\n\nexport function flatten (obj, into, prefix) {\n into = into || {}\n prefix = prefix || EMPTY_STRING\n\n for (const k in obj) {\n if (obj.hasOwnProperty(k)) {\n const prop = obj[k]\n if (prop && typeof prop === 'object' && !(prop instanceof Date || prop instanceof RegExp)) {\n flatten(prop, into, prefix + k + ' ')\n } else {\n if (into[prefix] && typeof into[prefix] === 'object') {\n into[prefix][k] = prop\n } else {\n into[prefix] = {}\n into[prefix][k] = prop\n }\n }\n }\n }\n\n return into\n}\n\nexport function makeCss (obj) {\n const flat = flatten(obj)\n let str = JSON.stringify(flat, null, 2)\n str = str.replace(/\"([^\"]*)\": {/g, '$1 {')\n .replace(/\"([^\"]*)\"/g, '$1')\n .replace(/(\\w*-?\\w*): ([\\w\\d .#]*),?/g, '$1: $2;')\n .replace(/},/g, '}\\n')\n .replace(/ &([.:])/g, '$1')\n\n str = str.substr(1, str.lastIndexOf('}') - 1)\n\n return str\n}\n\nexport function appendStyles (css) {\n let head = document.head || document.getElementsByTagName('head')[0]\n let styleElem = makeNode('style')\n styleElem.id = `${LIB_NAME}-styles`\n styleElem.type = 'text/css'\n\n if (styleElem.styleSheet) {\n styleElem.styleSheet.cssText = css\n } else {\n styleElem.appendChild(document.createTextNode(css))\n }\n\n head.appendChild(styleElem)\n}\n\nexport const config = {\n types: {ERROR, WARN, SUCCESS, INFO},\n animation: fadeOut,\n timeout: DEFAULT_TIMEOUT,\n icons: {},\n appendTarget: document.body,\n node: makeNode(),\n allowHtml: false,\n style: {\n [`.${CONTAINER_CLASS}`]: {\n position: 'fixed',\n 'z-index': 99999,\n right: '12px',\n top: '12px'\n },\n [`.${NOTIFICATION_CLASS}`]: {\n cursor: 'pointer',\n padding: '12px 18px',\n margin: '0 0 6px 0',\n 'background-color': '#000',\n opacity: 0.8,\n color: '#fff',\n 'border-radius': '3px',\n 'box-shadow': '#3c3b3b 0 0 12px',\n width: '300px',\n [`&.${ERROR_CLASS}`]: {\n 'background-color': '#D5122B'\n },\n [`&.${WARN_CLASS}`]: {\n 'background-color': '#F5AA1E'\n },\n [`&.${SUCCESS_CLASS}`]: {\n 'background-color': '#7AC13E'\n },\n [`&.${INFO_CLASS}`]: {\n 'background-color': '#4196E1'\n },\n '&:hover': {\n opacity: 1,\n 'box-shadow': '#000 0 0 12px'\n }\n },\n [`.${TITLE_CLASS}`]: {\n 'font-weight': '500'\n },\n [`.${MESSAGE_CLASS}`]: {\n display: 'inline-block',\n 'vertical-align': 'middle',\n width: '240px',\n padding: '0 12px'\n }\n }\n}\n\nexport function makeNode (type = 'div') {\n return document.createElement(type)\n}\n\nexport function createIcon (node, type, config) {\n const iconNode = makeNode(config.icons[type].nodeType)\n const attrs = config.icons[type].attrs\n\n for (const k in attrs) {\n if (attrs.hasOwnProperty(k)) {\n iconNode.setAttribute(k, attrs[k])\n }\n }\n\n node.appendChild(iconNode)\n}\n\nexport function addElem (node, text, className, config) {\n const elem = makeNode()\n elem.className = className\n if (config.allowHtml) {\n elem.innerHTML = text\n } else {\n elem.appendChild(document.createTextNode(text))\n }\n node.appendChild(elem)\n}\n\nexport function getTypeClass (type) {\n if (type === SUCCESS) return SUCCESS_CLASS\n if (type === WARN) return WARN_CLASS\n if (type === ERROR) return ERROR_CLASS\n if (type === INFO) return INFO_CLASS\n\n return EMPTY_STRING\n}\n\nconst miniToastr = {\n config,\n isInitialised: false,\n showMessage (message, title, type, timeout, cb, overrideConf) {\n const config = {}\n Object.assign(config, this.config)\n Object.assign(config, overrideConf)\n\n const notificationElem = makeNode()\n notificationElem.className = `${NOTIFICATION_CLASS} ${getTypeClass(type)}`\n\n notificationElem.onclick = function () {\n config.animation(notificationElem, null)\n }\n\n if (title) addElem(notificationElem, title, TITLE_CLASS, config)\n if (config.icons[type]) createIcon(notificationElem, type, config)\n if (message) addElem(notificationElem, message, MESSAGE_CLASS, config)\n\n config.node.insertBefore(notificationElem, config.node.firstChild)\n setTimeout(() => config.animation(notificationElem, cb), timeout || config.timeout\n )\n\n if (cb) cb()\n return this\n },\n init (aConfig) {\n const newConfig = {}\n Object.assign(newConfig, config)\n Object.assign(newConfig, aConfig)\n this.config = newConfig\n\n const cssStr = makeCss(newConfig.style)\n appendStyles(cssStr)\n\n newConfig.node.id = CONTAINER_CLASS\n newConfig.node.className = CONTAINER_CLASS\n newConfig.appendTarget.appendChild(newConfig.node)\n\n Object.keys(newConfig.types).forEach(v => {\n this[newConfig.types[v]] = function (message, title, timeout, cb, config) {\n this.showMessage(message, title, newConfig.types[v], timeout, cb, config)\n return this\n }.bind(this)\n }\n )\n\n this.isInitialised = true\n\n return this\n },\n setIcon (type, nodeType = 'i', attrs = []) {\n attrs.class = attrs.class ? attrs.class + ' ' + ICON_CLASS : ICON_CLASS\n\n this.config.icons[type] = {nodeType, attrs}\n }\n}\n\nexport default miniToastr","var VNode = function VNode() {};\n\nvar options = {};\n\nvar stack = [];\n\nvar EMPTY_CHILDREN = [];\n\nfunction h(nodeName, attributes) {\n\tvar children = EMPTY_CHILDREN,\n\t lastSimple,\n\t child,\n\t simple,\n\t i;\n\tfor (i = arguments.length; i-- > 2;) {\n\t\tstack.push(arguments[i]);\n\t}\n\tif (attributes && attributes.children != null) {\n\t\tif (!stack.length) stack.push(attributes.children);\n\t\tdelete attributes.children;\n\t}\n\twhile (stack.length) {\n\t\tif ((child = stack.pop()) && child.pop !== undefined) {\n\t\t\tfor (i = child.length; i--;) {\n\t\t\t\tstack.push(child[i]);\n\t\t\t}\n\t\t} else {\n\t\t\tif (typeof child === 'boolean') child = null;\n\n\t\t\tif (simple = typeof nodeName !== 'function') {\n\t\t\t\tif (child == null) child = '';else if (typeof child === 'number') child = String(child);else if (typeof child !== 'string') simple = false;\n\t\t\t}\n\n\t\t\tif (simple && lastSimple) {\n\t\t\t\tchildren[children.length - 1] += child;\n\t\t\t} else if (children === EMPTY_CHILDREN) {\n\t\t\t\tchildren = [child];\n\t\t\t} else {\n\t\t\t\tchildren.push(child);\n\t\t\t}\n\n\t\t\tlastSimple = simple;\n\t\t}\n\t}\n\n\tvar p = new VNode();\n\tp.nodeName = nodeName;\n\tp.children = children;\n\tp.attributes = attributes == null ? undefined : attributes;\n\tp.key = attributes == null ? undefined : attributes.key;\n\n\tif (options.vnode !== undefined) options.vnode(p);\n\n\treturn p;\n}\n\nfunction extend(obj, props) {\n for (var i in props) {\n obj[i] = props[i];\n }return obj;\n}\n\nfunction applyRef(ref, value) {\n if (ref != null) {\n if (typeof ref == 'function') ref(value);else ref.current = value;\n }\n}\n\nvar defer = typeof Promise == 'function' ? Promise.resolve().then.bind(Promise.resolve()) : setTimeout;\n\nfunction cloneElement(vnode, props) {\n return h(vnode.nodeName, extend(extend({}, vnode.attributes), props), arguments.length > 2 ? [].slice.call(arguments, 2) : vnode.children);\n}\n\nvar IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i;\n\nvar items = [];\n\nfunction enqueueRender(component) {\n\tif (!component._dirty && (component._dirty = true) && items.push(component) == 1) {\n\t\t(options.debounceRendering || defer)(rerender);\n\t}\n}\n\nfunction rerender() {\n\tvar p;\n\twhile (p = items.pop()) {\n\t\tif (p._dirty) renderComponent(p);\n\t}\n}\n\nfunction isSameNodeType(node, vnode, hydrating) {\n\tif (typeof vnode === 'string' || typeof vnode === 'number') {\n\t\treturn node.splitText !== undefined;\n\t}\n\tif (typeof vnode.nodeName === 'string') {\n\t\treturn !node._componentConstructor && isNamedNode(node, vnode.nodeName);\n\t}\n\treturn hydrating || node._componentConstructor === vnode.nodeName;\n}\n\nfunction isNamedNode(node, nodeName) {\n\treturn node.normalizedNodeName === nodeName || node.nodeName.toLowerCase() === nodeName.toLowerCase();\n}\n\nfunction getNodeProps(vnode) {\n\tvar props = extend({}, vnode.attributes);\n\tprops.children = vnode.children;\n\n\tvar defaultProps = vnode.nodeName.defaultProps;\n\tif (defaultProps !== undefined) {\n\t\tfor (var i in defaultProps) {\n\t\t\tif (props[i] === undefined) {\n\t\t\t\tprops[i] = defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn props;\n}\n\nfunction createNode(nodeName, isSvg) {\n\tvar node = isSvg ? document.createElementNS('http://www.w3.org/2000/svg', nodeName) : document.createElement(nodeName);\n\tnode.normalizedNodeName = nodeName;\n\treturn node;\n}\n\nfunction removeNode(node) {\n\tvar parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n\nfunction setAccessor(node, name, old, value, isSvg) {\n\tif (name === 'className') name = 'class';\n\n\tif (name === 'key') {} else if (name === 'ref') {\n\t\tapplyRef(old, null);\n\t\tapplyRef(value, node);\n\t} else if (name === 'class' && !isSvg) {\n\t\tnode.className = value || '';\n\t} else if (name === 'style') {\n\t\tif (!value || typeof value === 'string' || typeof old === 'string') {\n\t\t\tnode.style.cssText = value || '';\n\t\t}\n\t\tif (value && typeof value === 'object') {\n\t\t\tif (typeof old !== 'string') {\n\t\t\t\tfor (var i in old) {\n\t\t\t\t\tif (!(i in value)) node.style[i] = '';\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (var i in value) {\n\t\t\t\tnode.style[i] = typeof value[i] === 'number' && IS_NON_DIMENSIONAL.test(i) === false ? value[i] + 'px' : value[i];\n\t\t\t}\n\t\t}\n\t} else if (name === 'dangerouslySetInnerHTML') {\n\t\tif (value) node.innerHTML = value.__html || '';\n\t} else if (name[0] == 'o' && name[1] == 'n') {\n\t\tvar useCapture = name !== (name = name.replace(/Capture$/, ''));\n\t\tname = name.toLowerCase().substring(2);\n\t\tif (value) {\n\t\t\tif (!old) node.addEventListener(name, eventProxy, useCapture);\n\t\t} else {\n\t\t\tnode.removeEventListener(name, eventProxy, useCapture);\n\t\t}\n\t\t(node._listeners || (node._listeners = {}))[name] = value;\n\t} else if (name !== 'list' && name !== 'type' && !isSvg && name in node) {\n\t\ttry {\n\t\t\tnode[name] = value == null ? '' : value;\n\t\t} catch (e) {}\n\t\tif ((value == null || value === false) && name != 'spellcheck') node.removeAttribute(name);\n\t} else {\n\t\tvar ns = isSvg && name !== (name = name.replace(/^xlink:?/, ''));\n\n\t\tif (value == null || value === false) {\n\t\t\tif (ns) node.removeAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase());else node.removeAttribute(name);\n\t\t} else if (typeof value !== 'function') {\n\t\t\tif (ns) node.setAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase(), value);else node.setAttribute(name, value);\n\t\t}\n\t}\n}\n\nfunction eventProxy(e) {\n\treturn this._listeners[e.type](options.event && options.event(e) || e);\n}\n\nvar mounts = [];\n\nvar diffLevel = 0;\n\nvar isSvgMode = false;\n\nvar hydrating = false;\n\nfunction flushMounts() {\n\tvar c;\n\twhile (c = mounts.shift()) {\n\t\tif (options.afterMount) options.afterMount(c);\n\t\tif (c.componentDidMount) c.componentDidMount();\n\t}\n}\n\nfunction diff(dom, vnode, context, mountAll, parent, componentRoot) {\n\tif (!diffLevel++) {\n\t\tisSvgMode = parent != null && parent.ownerSVGElement !== undefined;\n\n\t\thydrating = dom != null && !('__preactattr_' in dom);\n\t}\n\n\tvar ret = idiff(dom, vnode, context, mountAll, componentRoot);\n\n\tif (parent && ret.parentNode !== parent) parent.appendChild(ret);\n\n\tif (! --diffLevel) {\n\t\thydrating = false;\n\n\t\tif (!componentRoot) flushMounts();\n\t}\n\n\treturn ret;\n}\n\nfunction idiff(dom, vnode, context, mountAll, componentRoot) {\n\tvar out = dom,\n\t prevSvgMode = isSvgMode;\n\n\tif (vnode == null || typeof vnode === 'boolean') vnode = '';\n\n\tif (typeof vnode === 'string' || typeof vnode === 'number') {\n\t\tif (dom && dom.splitText !== undefined && dom.parentNode && (!dom._component || componentRoot)) {\n\t\t\tif (dom.nodeValue != vnode) {\n\t\t\t\tdom.nodeValue = vnode;\n\t\t\t}\n\t\t} else {\n\t\t\tout = document.createTextNode(vnode);\n\t\t\tif (dom) {\n\t\t\t\tif (dom.parentNode) dom.parentNode.replaceChild(out, dom);\n\t\t\t\trecollectNodeTree(dom, true);\n\t\t\t}\n\t\t}\n\n\t\tout['__preactattr_'] = true;\n\n\t\treturn out;\n\t}\n\n\tvar vnodeName = vnode.nodeName;\n\tif (typeof vnodeName === 'function') {\n\t\treturn buildComponentFromVNode(dom, vnode, context, mountAll);\n\t}\n\n\tisSvgMode = vnodeName === 'svg' ? true : vnodeName === 'foreignObject' ? false : isSvgMode;\n\n\tvnodeName = String(vnodeName);\n\tif (!dom || !isNamedNode(dom, vnodeName)) {\n\t\tout = createNode(vnodeName, isSvgMode);\n\n\t\tif (dom) {\n\t\t\twhile (dom.firstChild) {\n\t\t\t\tout.appendChild(dom.firstChild);\n\t\t\t}\n\t\t\tif (dom.parentNode) dom.parentNode.replaceChild(out, dom);\n\n\t\t\trecollectNodeTree(dom, true);\n\t\t}\n\t}\n\n\tvar fc = out.firstChild,\n\t props = out['__preactattr_'],\n\t vchildren = vnode.children;\n\n\tif (props == null) {\n\t\tprops = out['__preactattr_'] = {};\n\t\tfor (var a = out.attributes, i = a.length; i--;) {\n\t\t\tprops[a[i].name] = a[i].value;\n\t\t}\n\t}\n\n\tif (!hydrating && vchildren && vchildren.length === 1 && typeof vchildren[0] === 'string' && fc != null && fc.splitText !== undefined && fc.nextSibling == null) {\n\t\tif (fc.nodeValue != vchildren[0]) {\n\t\t\tfc.nodeValue = vchildren[0];\n\t\t}\n\t} else if (vchildren && vchildren.length || fc != null) {\n\t\t\tinnerDiffNode(out, vchildren, context, mountAll, hydrating || props.dangerouslySetInnerHTML != null);\n\t\t}\n\n\tdiffAttributes(out, vnode.attributes, props);\n\n\tisSvgMode = prevSvgMode;\n\n\treturn out;\n}\n\nfunction innerDiffNode(dom, vchildren, context, mountAll, isHydrating) {\n\tvar originalChildren = dom.childNodes,\n\t children = [],\n\t keyed = {},\n\t keyedLen = 0,\n\t min = 0,\n\t len = originalChildren.length,\n\t childrenLen = 0,\n\t vlen = vchildren ? vchildren.length : 0,\n\t j,\n\t c,\n\t f,\n\t vchild,\n\t child;\n\n\tif (len !== 0) {\n\t\tfor (var i = 0; i < len; i++) {\n\t\t\tvar _child = originalChildren[i],\n\t\t\t props = _child['__preactattr_'],\n\t\t\t key = vlen && props ? _child._component ? _child._component.__key : props.key : null;\n\t\t\tif (key != null) {\n\t\t\t\tkeyedLen++;\n\t\t\t\tkeyed[key] = _child;\n\t\t\t} else if (props || (_child.splitText !== undefined ? isHydrating ? _child.nodeValue.trim() : true : isHydrating)) {\n\t\t\t\tchildren[childrenLen++] = _child;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (vlen !== 0) {\n\t\tfor (var i = 0; i < vlen; i++) {\n\t\t\tvchild = vchildren[i];\n\t\t\tchild = null;\n\n\t\t\tvar key = vchild.key;\n\t\t\tif (key != null) {\n\t\t\t\tif (keyedLen && keyed[key] !== undefined) {\n\t\t\t\t\tchild = keyed[key];\n\t\t\t\t\tkeyed[key] = undefined;\n\t\t\t\t\tkeyedLen--;\n\t\t\t\t}\n\t\t\t} else if (min < childrenLen) {\n\t\t\t\t\tfor (j = min; j < childrenLen; j++) {\n\t\t\t\t\t\tif (children[j] !== undefined && isSameNodeType(c = children[j], vchild, isHydrating)) {\n\t\t\t\t\t\t\tchild = c;\n\t\t\t\t\t\t\tchildren[j] = undefined;\n\t\t\t\t\t\t\tif (j === childrenLen - 1) childrenLen--;\n\t\t\t\t\t\t\tif (j === min) min++;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\tchild = idiff(child, vchild, context, mountAll);\n\n\t\t\tf = originalChildren[i];\n\t\t\tif (child && child !== dom && child !== f) {\n\t\t\t\tif (f == null) {\n\t\t\t\t\tdom.appendChild(child);\n\t\t\t\t} else if (child === f.nextSibling) {\n\t\t\t\t\tremoveNode(f);\n\t\t\t\t} else {\n\t\t\t\t\tdom.insertBefore(child, f);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif (keyedLen) {\n\t\tfor (var i in keyed) {\n\t\t\tif (keyed[i] !== undefined) recollectNodeTree(keyed[i], false);\n\t\t}\n\t}\n\n\twhile (min <= childrenLen) {\n\t\tif ((child = children[childrenLen--]) !== undefined) recollectNodeTree(child, false);\n\t}\n}\n\nfunction recollectNodeTree(node, unmountOnly) {\n\tvar component = node._component;\n\tif (component) {\n\t\tunmountComponent(component);\n\t} else {\n\t\tif (node['__preactattr_'] != null) applyRef(node['__preactattr_'].ref, null);\n\n\t\tif (unmountOnly === false || node['__preactattr_'] == null) {\n\t\t\tremoveNode(node);\n\t\t}\n\n\t\tremoveChildren(node);\n\t}\n}\n\nfunction removeChildren(node) {\n\tnode = node.lastChild;\n\twhile (node) {\n\t\tvar next = node.previousSibling;\n\t\trecollectNodeTree(node, true);\n\t\tnode = next;\n\t}\n}\n\nfunction diffAttributes(dom, attrs, old) {\n\tvar name;\n\n\tfor (name in old) {\n\t\tif (!(attrs && attrs[name] != null) && old[name] != null) {\n\t\t\tsetAccessor(dom, name, old[name], old[name] = undefined, isSvgMode);\n\t\t}\n\t}\n\n\tfor (name in attrs) {\n\t\tif (name !== 'children' && name !== 'innerHTML' && (!(name in old) || attrs[name] !== (name === 'value' || name === 'checked' ? dom[name] : old[name]))) {\n\t\t\tsetAccessor(dom, name, old[name], old[name] = attrs[name], isSvgMode);\n\t\t}\n\t}\n}\n\nvar recyclerComponents = [];\n\nfunction createComponent(Ctor, props, context) {\n\tvar inst,\n\t i = recyclerComponents.length;\n\n\tif (Ctor.prototype && Ctor.prototype.render) {\n\t\tinst = new Ctor(props, context);\n\t\tComponent.call(inst, props, context);\n\t} else {\n\t\tinst = new Component(props, context);\n\t\tinst.constructor = Ctor;\n\t\tinst.render = doRender;\n\t}\n\n\twhile (i--) {\n\t\tif (recyclerComponents[i].constructor === Ctor) {\n\t\t\tinst.nextBase = recyclerComponents[i].nextBase;\n\t\t\trecyclerComponents.splice(i, 1);\n\t\t\treturn inst;\n\t\t}\n\t}\n\n\treturn inst;\n}\n\nfunction doRender(props, state, context) {\n\treturn this.constructor(props, context);\n}\n\nfunction setComponentProps(component, props, renderMode, context, mountAll) {\n\tif (component._disable) return;\n\tcomponent._disable = true;\n\n\tcomponent.__ref = props.ref;\n\tcomponent.__key = props.key;\n\tdelete props.ref;\n\tdelete props.key;\n\n\tif (typeof component.constructor.getDerivedStateFromProps === 'undefined') {\n\t\tif (!component.base || mountAll) {\n\t\t\tif (component.componentWillMount) component.componentWillMount();\n\t\t} else if (component.componentWillReceiveProps) {\n\t\t\tcomponent.componentWillReceiveProps(props, context);\n\t\t}\n\t}\n\n\tif (context && context !== component.context) {\n\t\tif (!component.prevContext) component.prevContext = component.context;\n\t\tcomponent.context = context;\n\t}\n\n\tif (!component.prevProps) component.prevProps = component.props;\n\tcomponent.props = props;\n\n\tcomponent._disable = false;\n\n\tif (renderMode !== 0) {\n\t\tif (renderMode === 1 || options.syncComponentUpdates !== false || !component.base) {\n\t\t\trenderComponent(component, 1, mountAll);\n\t\t} else {\n\t\t\tenqueueRender(component);\n\t\t}\n\t}\n\n\tapplyRef(component.__ref, component);\n}\n\nfunction renderComponent(component, renderMode, mountAll, isChild) {\n\tif (component._disable) return;\n\n\tvar props = component.props,\n\t state = component.state,\n\t context = component.context,\n\t previousProps = component.prevProps || props,\n\t previousState = component.prevState || state,\n\t previousContext = component.prevContext || context,\n\t isUpdate = component.base,\n\t nextBase = component.nextBase,\n\t initialBase = isUpdate || nextBase,\n\t initialChildComponent = component._component,\n\t skip = false,\n\t snapshot = previousContext,\n\t rendered,\n\t inst,\n\t cbase;\n\n\tif (component.constructor.getDerivedStateFromProps) {\n\t\tstate = extend(extend({}, state), component.constructor.getDerivedStateFromProps(props, state));\n\t\tcomponent.state = state;\n\t}\n\n\tif (isUpdate) {\n\t\tcomponent.props = previousProps;\n\t\tcomponent.state = previousState;\n\t\tcomponent.context = previousContext;\n\t\tif (renderMode !== 2 && component.shouldComponentUpdate && component.shouldComponentUpdate(props, state, context) === false) {\n\t\t\tskip = true;\n\t\t} else if (component.componentWillUpdate) {\n\t\t\tcomponent.componentWillUpdate(props, state, context);\n\t\t}\n\t\tcomponent.props = props;\n\t\tcomponent.state = state;\n\t\tcomponent.context = context;\n\t}\n\n\tcomponent.prevProps = component.prevState = component.prevContext = component.nextBase = null;\n\tcomponent._dirty = false;\n\n\tif (!skip) {\n\t\trendered = component.render(props, state, context);\n\n\t\tif (component.getChildContext) {\n\t\t\tcontext = extend(extend({}, context), component.getChildContext());\n\t\t}\n\n\t\tif (isUpdate && component.getSnapshotBeforeUpdate) {\n\t\t\tsnapshot = component.getSnapshotBeforeUpdate(previousProps, previousState);\n\t\t}\n\n\t\tvar childComponent = rendered && rendered.nodeName,\n\t\t toUnmount,\n\t\t base;\n\n\t\tif (typeof childComponent === 'function') {\n\n\t\t\tvar childProps = getNodeProps(rendered);\n\t\t\tinst = initialChildComponent;\n\n\t\t\tif (inst && inst.constructor === childComponent && childProps.key == inst.__key) {\n\t\t\t\tsetComponentProps(inst, childProps, 1, context, false);\n\t\t\t} else {\n\t\t\t\ttoUnmount = inst;\n\n\t\t\t\tcomponent._component = inst = createComponent(childComponent, childProps, context);\n\t\t\t\tinst.nextBase = inst.nextBase || nextBase;\n\t\t\t\tinst._parentComponent = component;\n\t\t\t\tsetComponentProps(inst, childProps, 0, context, false);\n\t\t\t\trenderComponent(inst, 1, mountAll, true);\n\t\t\t}\n\n\t\t\tbase = inst.base;\n\t\t} else {\n\t\t\tcbase = initialBase;\n\n\t\t\ttoUnmount = initialChildComponent;\n\t\t\tif (toUnmount) {\n\t\t\t\tcbase = component._component = null;\n\t\t\t}\n\n\t\t\tif (initialBase || renderMode === 1) {\n\t\t\t\tif (cbase) cbase._component = null;\n\t\t\t\tbase = diff(cbase, rendered, context, mountAll || !isUpdate, initialBase && initialBase.parentNode, true);\n\t\t\t}\n\t\t}\n\n\t\tif (initialBase && base !== initialBase && inst !== initialChildComponent) {\n\t\t\tvar baseParent = initialBase.parentNode;\n\t\t\tif (baseParent && base !== baseParent) {\n\t\t\t\tbaseParent.replaceChild(base, initialBase);\n\n\t\t\t\tif (!toUnmount) {\n\t\t\t\t\tinitialBase._component = null;\n\t\t\t\t\trecollectNodeTree(initialBase, false);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (toUnmount) {\n\t\t\tunmountComponent(toUnmount);\n\t\t}\n\n\t\tcomponent.base = base;\n\t\tif (base && !isChild) {\n\t\t\tvar componentRef = component,\n\t\t\t t = component;\n\t\t\twhile (t = t._parentComponent) {\n\t\t\t\t(componentRef = t).base = base;\n\t\t\t}\n\t\t\tbase._component = componentRef;\n\t\t\tbase._componentConstructor = componentRef.constructor;\n\t\t}\n\t}\n\n\tif (!isUpdate || mountAll) {\n\t\tmounts.push(component);\n\t} else if (!skip) {\n\n\t\tif (component.componentDidUpdate) {\n\t\t\tcomponent.componentDidUpdate(previousProps, previousState, snapshot);\n\t\t}\n\t\tif (options.afterUpdate) options.afterUpdate(component);\n\t}\n\n\twhile (component._renderCallbacks.length) {\n\t\tcomponent._renderCallbacks.pop().call(component);\n\t}if (!diffLevel && !isChild) flushMounts();\n}\n\nfunction buildComponentFromVNode(dom, vnode, context, mountAll) {\n\tvar c = dom && dom._component,\n\t originalComponent = c,\n\t oldDom = dom,\n\t isDirectOwner = c && dom._componentConstructor === vnode.nodeName,\n\t isOwner = isDirectOwner,\n\t props = getNodeProps(vnode);\n\twhile (c && !isOwner && (c = c._parentComponent)) {\n\t\tisOwner = c.constructor === vnode.nodeName;\n\t}\n\n\tif (c && isOwner && (!mountAll || c._component)) {\n\t\tsetComponentProps(c, props, 3, context, mountAll);\n\t\tdom = c.base;\n\t} else {\n\t\tif (originalComponent && !isDirectOwner) {\n\t\t\tunmountComponent(originalComponent);\n\t\t\tdom = oldDom = null;\n\t\t}\n\n\t\tc = createComponent(vnode.nodeName, props, context);\n\t\tif (dom && !c.nextBase) {\n\t\t\tc.nextBase = dom;\n\n\t\t\toldDom = null;\n\t\t}\n\t\tsetComponentProps(c, props, 1, context, mountAll);\n\t\tdom = c.base;\n\n\t\tif (oldDom && dom !== oldDom) {\n\t\t\toldDom._component = null;\n\t\t\trecollectNodeTree(oldDom, false);\n\t\t}\n\t}\n\n\treturn dom;\n}\n\nfunction unmountComponent(component) {\n\tif (options.beforeUnmount) options.beforeUnmount(component);\n\n\tvar base = component.base;\n\n\tcomponent._disable = true;\n\n\tif (component.componentWillUnmount) component.componentWillUnmount();\n\n\tcomponent.base = null;\n\n\tvar inner = component._component;\n\tif (inner) {\n\t\tunmountComponent(inner);\n\t} else if (base) {\n\t\tif (base['__preactattr_'] != null) applyRef(base['__preactattr_'].ref, null);\n\n\t\tcomponent.nextBase = base;\n\n\t\tremoveNode(base);\n\t\trecyclerComponents.push(component);\n\n\t\tremoveChildren(base);\n\t}\n\n\tapplyRef(component.__ref, null);\n}\n\nfunction Component(props, context) {\n\tthis._dirty = true;\n\n\tthis.context = context;\n\n\tthis.props = props;\n\n\tthis.state = this.state || {};\n\n\tthis._renderCallbacks = [];\n}\n\nextend(Component.prototype, {\n\tsetState: function setState(state, callback) {\n\t\tif (!this.prevState) this.prevState = this.state;\n\t\tthis.state = extend(extend({}, this.state), typeof state === 'function' ? state(this.state, this.props) : state);\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t},\n\tforceUpdate: function forceUpdate(callback) {\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\trenderComponent(this, 2);\n\t},\n\trender: function render() {}\n});\n\nfunction render(vnode, parent, merge) {\n return diff(merge, vnode, {}, false, parent, false);\n}\n\nfunction createRef() {\n\treturn {};\n}\n\nvar preact = {\n\th: h,\n\tcreateElement: h,\n\tcloneElement: cloneElement,\n\tcreateRef: createRef,\n\tComponent: Component,\n\trender: render,\n\trerender: rerender,\n\toptions: options\n};\n\nexport default preact;\nexport { h, h as createElement, cloneElement, createRef, Component, render, rerender, options };\n//# sourceMappingURL=preact.mjs.map\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","import { h, render, Component } from 'preact';\nimport miniToastr from 'mini-toastr';\nimport { Menu } from './components/menu';\nimport { Page } from './components/page';\nimport { loadConfig } from './conf/config.dat';\nimport { settings } from './lib/settings';\nimport { loader } from './lib/loader';\nimport { loadPlugins } from './lib/plugins';\nimport { menu } from './lib/menu';\n\nminiToastr.init({})\n\nconst clearSlashes = path => {\n return path.toString().replace(/\\/$/, '').replace(/^\\//, '');\n};\n\nconst getFragment = () => {\n const match = window.location.href.match(/#(.*)$/);\n const fragment = match ? match[1] : '';\n return clearSlashes(fragment);\n};\n\nclass App extends Component {\n constructor() {\n super();\n this.state = {\n menuActive: false,\n menu: menu.menus[0],\n page: menu.menus[0],\n changed: false,\n }\n\n this.menuToggle = () => {\n this.setState({ menuActive: !this.state.menuActive });\n }\n }\n\n render(props, state) {\n \n const params = getFragment().split('/').slice(2);\n const active = this.state.menuActive ? 'active' : '';\n return (\n
    \n \n \n \n \n \n
    \n );\n }\n\n componentDidMount() {\n loader.hide();\n\n let current = '';\n const fn = () => {\n const newFragment = getFragment();\n const diff = settings.diff();\n if(this.state.changed !== !!diff.length) {\n this.setState({changed: !this.state.changed})\n }\n if(current !== newFragment) {\n current = newFragment;\n const parts = current.split('/');\n const m = menu.menus.find(menu => menu.href === parts[0]);\n const page = parts.length > 1 ? menu.routes.find(route => route.href === `${parts[0]}/${parts[1]}`) : m;\n if (page) {\n this.setState({ page, menu: m, menuActive: false });\n }\n }\n }\n this.interval = setInterval(fn, 100);\n }\n\n componentWillUnmount() {}\n}\n\nconst load = async () => {\n await loadConfig();\n await loadPlugins();\n render(, document.body);\n}\n\nload();","import { h, Component } from 'preact';\r\n\r\nexport class EspEaspP2PComponent extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = { nodes: [] }\r\n\r\n this.refresh = () => {\r\n fetch('/node_list_json').then(res => res.json()).then((nodes) => {\r\n this.setState({ nodes })\r\n });\r\n \r\n }\r\n }\r\n\r\n render(props) {\r\n return (\r\n
      \r\n {this.state.nodes.map(node => {\r\n return (
    • Unit {node.first}: {node.name} [{node.ip}]
    • );\r\n })}\r\n \r\n
    \r\n )\r\n }\r\n\r\n componentDidMount() {\r\n this.refresh();\r\n }\r\n}","import { h, Component } from 'preact';\r\nimport { get, set, getKeys } from '../../lib/helpers';\r\nimport { settings } from '../../lib/settings';\r\n\r\nexport class Form extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.onChange = (id, prop, config = {}) => {\r\n return (e) => {\r\n let val = this.form.elements[id].value;\r\n if (config.type === 'checkbox') {\r\n val = this.form.elements[id].checked ? 1 : 0;\r\n } else if (config.type === 'number' || config.type === 'ip') {\r\n val = parseFloat(val);\r\n } else if (config.type === 'select') {\r\n val = isNaN(val) ? val : parseInt(val);\r\n }\r\n if (prop.startsWith('ROOT')) {\r\n settings.set(prop.replace('ROOT.', ''), val);\r\n } else {\r\n set(this.props.selected, prop, val);\r\n }\r\n if (config.onChange) {\r\n config.onChange(e);\r\n }\r\n }\r\n }\r\n }\r\n\r\n renderConfig(id, config, value, varName) {\r\n switch (config.type) {\r\n case 'string':\r\n return (\r\n \r\n );\r\n case 'number':\r\n return (\r\n \r\n ) ;\r\n case 'ip':\r\n return [\r\n (),\r\n (),\r\n (),\r\n ()\r\n ]\r\n case 'password':\r\n return (\r\n \r\n ) ;\r\n case 'checkbox':\r\n return (\r\n \r\n ) ;\r\n case 'select':\r\n const options = (typeof config.options === 'function') ? config.options() : config.options;\r\n return (\r\n \r\n ) ;\r\n case 'file':\r\n return (\r\n \r\n )\r\n case 'button':\r\n const clickEvent = () => {\r\n if (!config.click) return;\r\n config.click(this.props.selected);\r\n }\r\n return (\r\n \r\n );\r\n }\r\n }\r\n\r\n renderConfigGroup(id, configs, values) {\r\n const configArray = Array.isArray(configs) ? configs : [configs];\r\n\r\n return (\r\n
    \r\n {configArray.map((conf, i) => {\r\n const varId = configArray.length > 1 ? `${id}.${i}` : id;\r\n const varName = conf.var ? conf.var : varId;\r\n const val = varName.startsWith('ROOT') ? settings.get(varName.replace('ROOT.', '')) : get(values, varName, null);\r\n\r\n if (conf.if) {\r\n if (!get(settings.settings, conf.if, false)) return(null);\r\n }\r\n if (conf.type === 'custom') {\r\n const CustomComponent = conf.component;\r\n return ();\r\n }\r\n return [\r\n (),\r\n this.renderConfig(varId, conf, val, varName)\r\n ];\r\n })}\r\n
    \r\n )\r\n }\r\n\r\n renderGroup(id, group, values) {\r\n if (!group.configs || !Object.keys(group.configs).length) return (null);\r\n const keys = getKeys(group.configs);\r\n return (\r\n
    \r\n \r\n {keys.map(key => {\r\n const conf = group.configs[key];\r\n return this.renderConfigGroup(`${id}.${key}`, conf, values);\r\n })}\r\n
    \r\n )\r\n }\r\n\r\n render(props) {\r\n const keys = getKeys(props.config.groups);\r\n return (
    this.form = ref}>\r\n {keys.map(key => this.renderGroup(key, props.config.groups[key], props.selected))}\r\n
    )\r\n }\r\n}","import { h, Component } from 'preact';\r\n\r\nexport class Menu extends Component {\r\n renderMenuItem(menu) {\r\n if (menu.action) {\r\n return (\r\n
  • \r\n {menu.title}\r\n
  • \r\n )\r\n }\r\n if (menu.href === this.props.selected.href) {\r\n return [\r\n (
  • \r\n {menu.title}\r\n
  • ),\r\n ...menu.children.map(child => {\r\n if (child.action) {\r\n return (\r\n
  • \r\n {child.title}\r\n
  • \r\n )\r\n }\r\n return (
  • \r\n {child.title}\r\n
  • );\r\n })\r\n ]\r\n }\r\n return (
  • \r\n {menu.title}\r\n
  • );\r\n }\r\n\r\n render(props) {\r\n if (props.open === false) return;\r\n \r\n return (\r\n
    \r\n
    \r\n ESPEasy\r\n
      \r\n {props.menus.map(menu => (this.renderMenuItem(menu)))}\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}","import { h, Component } from 'preact';\r\n\r\nexport class Page extends Component {\r\n render(props) {\r\n const PageComponent = props.page.component;\r\n return (\r\n
    \r\n
    \r\n > {props.page.pagetitle == null ? props.page.title : props.page.pagetitle}\r\n { props.changed ? (\r\n CHANGED! Click here to SAVE\r\n ) : (null) }\r\n
    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}","import { parseConfig, writeConfig } from '../lib/parser';\r\nimport { settings } from '../lib/settings';\r\n\r\nconst TASKS_MAX = 12;\r\nconst NOTIFICATION_MAX = 3;\r\nconst CONTROLLER_MAX = 3;\r\nconst PLUGIN_CONFIGVAR_MAX = 8;\r\nconst PLUGIN_CONFIGFLOATVAR_MAX = 4;\r\nconst PLUGIN_CONFIGLONGVAR_MAX = 4;\r\nconst PLUGIN_EXTRACONFIGVAR_MAX = 16;\r\nconst NAME_FORMULA_LENGTH_MAX = 40;\r\nconst VARS_PER_TASK = 4;\r\n\r\nexport const configDatParseConfig = [\r\n { prop: 'status.PID', type: 'int32' },\r\n { prop: 'status.version', type: 'int32' },\r\n { prop: 'status.build', type: 'int16' },\r\n { prop: 'config.IP.ip', type: 'bytes', length: 4 },\r\n { prop: 'config.IP.gw', type: 'bytes', length: 4 }, \r\n { prop: 'config.IP.subnet', type: 'bytes', length: 4 },\r\n { prop: 'config.IP.dns', type: 'bytes', length: 4 },\r\n { prop: 'config.experimental.ip_octet', type: 'byte' },\r\n { prop: 'config.general.unitnr', type: 'byte' },\r\n { prop: 'config.general.unitname', type: 'string', length: 26 },\r\n { prop: 'config.ntp.host', type: 'string', length: 64 },\r\n { prop: 'config.sleep.sleeptime', type: 'int32' },\r\n { prop: 'hardware.i2c.sda', type: 'byte' },\r\n { prop: 'hardware.i2c.scl', type: 'byte' },\r\n { prop: 'hardware.led.gpio', type: 'byte' },\r\n { prop: 'Pin_sd_cs', type: 'byte' }, // TODO\r\n { prop: 'hardware.gpio', type: 'bytes', length: 17 },\r\n { prop: 'config.log.syslog_ip', type: 'bytes', length: 4 },\r\n { prop: 'config.espnetwork.port', type: 'int32' },\r\n { prop: 'config.log.syslog_level', type: 'byte' },\r\n { prop: 'config.log.serial_level', type: 'byte' },\r\n { prop: 'config.log.web_level', type: 'byte' },\r\n { prop: 'config.log.sd_level', type: 'byte' },\r\n { prop: 'config.serial.baudrate', type: 'int32' },\r\n { prop: 'config.mqtt.interval', type: 'int32' },\r\n { prop: 'config.sleep.awaketime', type: 'byte' },\r\n { prop: 'CustomCSS', type: 'byte' }, // TODO\r\n { prop: 'config.dst.enabled', type: 'byte' },\r\n { prop: 'config.experimental.WDI2CAddress', type: 'byte' },\r\n { prop: 'config.rules.enabled', type: 'byte' },\r\n { prop: 'config.serial.enabled', type: 'byte' },\r\n { prop: 'config.ssdp.enabled', type: 'byte' },\r\n { prop: 'config.ntp.enabled', type: 'byte' },\r\n { prop: 'config.experimental.WireClockStretchLimit', type: 'int32' },\r\n { prop: 'GlobalSync', type: 'byte' }, // TODO\r\n { prop: 'config.experimental.ConnectionFailuresThreshold', type: 'int32' },\r\n { prop: 'TimeZone', type: 'int16', signed: true},// TODO\r\n { prop: 'config.mqtt.retain_flag', type: 'byte' },\r\n { prop: 'hardware.spi.enabled', type: 'byte' },\r\n [...Array(CONTROLLER_MAX)].map((x, i) => ({ prop: `controllers[${i}].protocol`, type:'byte' })),\r\n [...Array(NOTIFICATION_MAX)].map((x, i) => ({ prop: `notifications[${i}].type`, type:'byte' })),\r\n [...Array(TASKS_MAX)].map((x, i) => ({ prop: `tasks[${i}].device`, type:'byte' })),\r\n [...Array(TASKS_MAX)].map((x, i) => ({ prop: `tasks[${i}].OLD_TaskDeviceID`, type:'int32' })),\r\n [...Array(TASKS_MAX)].map((x, i) => ({ prop: `tasks[${i}].gpio1`, type:'byte' })),\r\n [...Array(TASKS_MAX)].map((x, i) => ({ prop: `tasks[${i}].gpio2`, type:'byte' })),\r\n [...Array(TASKS_MAX)].map((x, i) => ({ prop: `tasks[${i}].gpio3`, type:'byte' })),\r\n [...Array(TASKS_MAX)].map((x, i) => ({ prop: `tasks[${i}].gpio4`, type:'byte' })),\r\n [...Array(TASKS_MAX)].map((x, i) => ({ prop: `tasks[${i}].pin1pullup`, type:'byte' })),\r\n [...Array(TASKS_MAX)].map((x, i) => ({ prop: `tasks[${i}].configs`, type:'ints', length: PLUGIN_CONFIGVAR_MAX })),\r\n [...Array(TASKS_MAX)].map((x, i) => ({ prop: `tasks[${i}].pin1inversed`, type:'byte' })),\r\n [...Array(TASKS_MAX)].map((x, i) => ({ prop: `tasks[${i}].configs_float`, type:'floats', length: PLUGIN_CONFIGFLOATVAR_MAX })), \r\n [...Array(TASKS_MAX)].map((x, i) => ({ prop: `tasks[${i}].configs_long`, type:'longs', length: PLUGIN_CONFIGLONGVAR_MAX })),\r\n [...Array(TASKS_MAX)].map((x, i) => ({ prop: `tasks[${i}].OLD_senddata`, type:'byte' })),\r\n [...Array(TASKS_MAX)].map((x, i) => ({ prop: `tasks[${i}].global_sync`, type:'byte' })),\r\n [...Array(TASKS_MAX)].map((x, i) => ({ prop: `tasks[${i}].data_feed`, type:'byte' })),\r\n [...Array(TASKS_MAX)].map((x, i) => ({ prop: `tasks[${i}].interval`, type:'int32' })),\r\n [...Array(TASKS_MAX)].map((x, i) => ({ prop: `tasks[${i}].enabled`, type:'byte' })),\r\n [...Array(CONTROLLER_MAX)].map((x, i) => ({ prop: `controllers[${i}].enabled`, type:'byte' })),\r\n [...Array(NOTIFICATION_MAX)].map((x, i) => ({ prop: `notifications[${i}].enabled`, type:'byte' })), \r\n [...Array(TASKS_MAX)].map((x, i) => ({ prop: `tasks[${i}].TaskDeviceID`, type:'longs', length: CONTROLLER_MAX })),\r\n [...Array(TASKS_MAX)].map((x, i) => ({ prop: `tasks[${i}].TaskDeviceSendData`, type:'bytes', length: CONTROLLER_MAX })),\r\n { prop: 'hardware.led.inverse', type: 'byte' }, \r\n { prop: 'config.sleep.sleeponfailiure', type: 'byte' },\r\n { prop: 'UseValueLogger', type: 'byte' },// TODO\r\n { prop: 'ArduinoOTAEnable', type: 'byte' },// TODO\r\n { prop: 'config.dst.DST_Start', type: 'int16' },\r\n { prop: 'config.dst.DST_End', type: 'int16' },\r\n { prop: 'UseRTOSMultitasking', type: 'byte' },// TODO\r\n { prop: 'hardware.reset.pin', type: 'byte' }, \r\n { prop: 'config.log.syslog_facility', type: 'byte' }, \r\n { prop: 'StructSize', type: 'int32' },// TODO\r\n { prop: 'config.mqtt.useunitname', type: 'byte' },\r\n { prop: 'config.location.lat', type: 'float' },\r\n { prop: 'config.location.long', type: 'float' },\r\n { prop: 'config._emptyBit', type: 'bit' },\r\n { prop: 'config.general.appendunit', type: 'bit' },\r\n { prop: 'config.mqtt.changeclientid', type: 'bit' },\r\n { prop: 'config.rules.oldengine', type: 'bit' },\r\n { prop: 'config._bit4', type: 'bit' },\r\n { prop: 'config._bit5', type: 'bit' },\r\n { prop: 'config._bit6', type: 'bit' },\r\n { prop: 'config._bit7', type: 'bit' },\r\n { prop: 'config._bits1', type: 'byte' },\r\n { prop: 'config._bits2', type: 'byte' },\r\n { prop: 'config._bits3', type: 'byte' },\r\n { prop: 'ResetFactoryDefaultPreference', type: 'int32' },// TODO\r\n].flat();\r\n\r\nexport const TaskSettings = [\r\n { prop: 'index', type:'byte' },\r\n { prop: 'name', type:'string', length: NAME_FORMULA_LENGTH_MAX + 1 },\r\n [...Array(VARS_PER_TASK)].map((x, i) => ({ prop: `values[${i}].formula`, type:'string', length: NAME_FORMULA_LENGTH_MAX + 1 })),\r\n [...Array(VARS_PER_TASK)].map((x, i) => ({ prop: `values[${i}].name`, type:'string', length: NAME_FORMULA_LENGTH_MAX + 1 })),\r\n { prop: 'value_names', type:'string', length: NAME_FORMULA_LENGTH_MAX + 1 },\r\n { prop: 'plugin_config_long', type:'longs', length: PLUGIN_EXTRACONFIGVAR_MAX },\r\n { prop: 'decimals', type:'bytes', length: VARS_PER_TASK },\r\n { prop: 'plugin_config', type:'ints', length: PLUGIN_EXTRACONFIGVAR_MAX },\r\n].flat();\r\n\r\nexport const ControllerSettings = [\r\n { prop: 'dns', type:'byte' },\r\n { prop: 'IP', type:'bytes', length: 4 },\r\n { prop: 'port', type:'int32' },\r\n { prop: 'hostname', type:'string', length: 65 },\r\n { prop: 'publish', type:'string', length: 129 },\r\n { prop: 'subscribe', type:'string', length: 129 },\r\n { prop: 'MQTT_lwt_topic', type:'string', length: 129 },\r\n { prop: 'lwt_message_connect', type:'string', length: 129 },\r\n { prop: 'lwt_message_disconnect', type:'string', length: 129 },\r\n { prop: 'minimal_time_between', type:'int32' },\r\n { prop: 'max_queue_depth', type:'int32' },\r\n { prop: 'max_retry', type:'int32' },\r\n { prop: 'delete_oldest', type:'byte' },\r\n { prop: 'client_timeout', type:'int32' },\r\n { prop: 'must_check_reply', type:'byte' },\r\n];\r\n\r\nexport const NotificationSettings = [\r\n { prop: 'server', type:'string', length: 65 },\r\n { prop: 'port', type:'int16' },\r\n { prop: 'domain', type:'string', length: 65 },\r\n { prop: 'sender', type:'string', length: 65 },\r\n { prop: 'receiver', type:'string', length: 65 },\r\n { prop: 'subject', type:'string', length: 129 },\r\n { prop: 'body', type:'string', length: 513 },\r\n { prop: 'pin1', type:'byte' },\r\n { prop: 'pin2', type:'byte' },\r\n { prop: 'user', type:'string', length: 49 },\r\n { prop: 'pass', type:'string', length: 33 },\r\n];\r\n\r\nexport const SecuritySettings = [\r\n { prop: 'WifiSSID', type:'string', length: 32 },\r\n { prop: 'WifiKey', type:'string', length: 64 },\r\n { prop: 'WifiSSID2', type:'string', length: 32 },\r\n { prop: 'WifiKey2', type:'string', length: 64 },\r\n { prop: 'WifiAPKey', type:'string', length: 64 },\r\n [...Array(CONTROLLER_MAX)].map((x, i) => ({ prop: `controllers[${i}].user`, type:'string', length: 26 })),\r\n [...Array(CONTROLLER_MAX)].map((x, i) => ({ prop: `controllers[${i}].password`, type:'string', length: 64 })),\r\n { prop: 'password', type:'string', length: 26 },\r\n { prop: 'AllowedIPrangeLow', type:'bytes', length: 4 },\r\n { prop: 'AllowedIPrangeHigh', type:'bytes', length: 4 },\r\n { prop: 'IPblockLevel', type:'byte' },\r\n { prop: 'ProgmemMd5', type:'bytes', length: 16 },\r\n { prop: 'md5', type:'bytes', length: 16 },\r\n].flat();\r\n\r\nexport const loadConfig = () => {\r\n return fetch('config.dat').then(response => response.arrayBuffer()).then(async response => { \r\n const settings = parseConfig(response, configDatParseConfig);\r\n\r\n [...Array(12)].map((x, i) => {\r\n settings.tasks[i].settings = parseConfig(response, TaskSettings, 1024*4 + 1024 * 2 * i);\r\n settings.tasks[i].extra = parseConfig(response, TaskSettings, 1024*5 + 1024 * 2 * i);\r\n });\r\n \r\n [...Array(3)].map((x, i) => {\r\n settings.controllers[i].settings = parseConfig(response, ControllerSettings, 1024*27 + 1024 * 2 * i);\r\n settings.controllers[i].extra = parseConfig(response, ControllerSettings, 1024*28 + 1024 * 2 * i);\r\n });\r\n \r\n const notificationResponse = await fetch('notification.dat').then(response => response.arrayBuffer());\r\n [...Array(3)].map((x, i) => {\r\n settings.notifications[i].settings = parseConfig(notificationResponse, NotificationSettings, 1024 * i);\r\n });\r\n \r\n const securityResponse = await fetch('security.dat').then(response => response.arrayBuffer());\r\n settings.config.security = [...Array(3)].map((x, i) => {\r\n return parseConfig(securityResponse, SecuritySettings, 1024 * i);\r\n });\r\n \r\n return { response, settings };\r\n }).then(conf => {\r\n settings.init(conf.settings);\r\n settings.binary = new Uint8Array(conf.response);\r\n console.log(conf.settings);\r\n });\r\n}\r\n\r\nlet ii = 0;\r\nexport const saveConfig = (save = true) => {\r\n if (ii === 0) {\r\n const buffer = new ArrayBuffer(65536);\r\n writeConfig(buffer, settings.settings, configDatParseConfig);\r\n [...Array(12)].map((x, i) => {\r\n return {\r\n settings: writeConfig(buffer, settings.settings.tasks[i].settings, TaskSettings, 1024*4 + 1024 * 2 * i),\r\n extra: writeConfig(buffer, settings.settings.tasks[i].extra, TaskSettings, 1024*5 + 1024 * 2 * i),\r\n };\r\n });\r\n\r\n [...Array(3)].map((x, i) => {\r\n return {\r\n settings: writeConfig(buffer, settings.settings.controllers[i].settings, ControllerSettings, 1024*27 + 1024 * 2 * i),\r\n extra: writeConfig(buffer, settings.settings.controllers[i].extra, ControllerSettings, 1024*28 + 1024 * 2 * i),\r\n };\r\n });\r\n if (save) saveData(buffer, 'config.dat');\r\n else return buffer;\r\n } else if (ii === 1) {\r\n const bufferNotifications = new ArrayBuffer(4096);\r\n [...Array(3)].map((x, i) => {\r\n return writeConfig(bufferNotifications, settings.settings.notifications[i], NotificationSettings, 1024 * i);\r\n });\r\n saveData(bufferNotifications, 'notification.dat');\r\n } else if (ii === 2) {\r\n const bufferSecurity = new ArrayBuffer(4096);\r\n [...Array(3)].map((x, i) => {\r\n return writeConfig(bufferSecurity, settings.settings.security[i], SecuritySettings, 1024 * i);\r\n });\r\n saveData(bufferSecurity, 'security.dat');\r\n }\r\n ii = (ii + 1) % 3;\r\n}\r\n\r\nconst saveData = (function () {\r\n const a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n return function (data, fileName) {\r\n const blob = new Blob([new Uint8Array(data)]);\r\n const url = window.URL.createObjectURL(blob);\r\n a.href = url;\r\n a.download = fileName;\r\n a.click();\r\n window.URL.revokeObjectURL(url);\r\n };\r\n}());\r\n","import { pins } from './_defs';\r\n\r\nconst i2c_address = [\r\n { value: 35, name: '0x23 (35) - default' }, \r\n { value: 92, name: '0x5c (92)' }, \r\n]\r\n\r\nconst measurmentMode = [\r\n { value: 1, name: 'RESOLUTION_LOW' }, \r\n { value: 2, name: 'RESOLUTION_NORMAL' }, \r\n { value: 3, name: 'RESOLUTION_HIGH' }, \r\n { value: 99, name: 'RESOLUTION_AUTO_HIGH' }, \r\n]\r\n\r\nexport const bh1750 = {\r\n defaults: () => ({\r\n 'configs[0]': 35,\r\n 'settings.values[0].name': 'Lux',\r\n }),\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n i2c_address: { name: 'I2C Address', type: 'select', options: i2c_address, var: 'configs[0]' },\r\n mode: { name: 'Measurement mode', type: 'select', options: measurmentMode, var: 'configs[1]' },\r\n send_to_sleep: { name: 'Send sensor to sleep', type: 'checkbox', var: 'configs[2]' },\r\n }\r\n },\r\n data: true,\r\n vals: 1,\r\n}","import { pins } from './_defs';\r\n\r\nconst mode = [\r\n { value: 0, name: 'Digital' }, \r\n { value: 1, name: 'Analog' }, \r\n]\r\n\r\nexport const pme = {\r\n defaults: () => ({\r\n 'settings.values[0].name': 'Value',\r\n }),\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n port: { name: 'Port', type: 'number', var: 'gpio4' },\r\n mode: { name: 'Port Type', type: 'select', options: mode, var: 'configs[0]' },\r\n }\r\n },\r\n data: true,\r\n vals: 1\r\n}","import { pins } from './_defs';\r\n\r\nconst i2c_address = [\r\n { value: 35, name: '0x23 (35) - default' }, \r\n { value: 92, name: '0x5c (92)' }, \r\n]\r\n\r\nconst displaySize = [\r\n { value: 1, name: 'RESOLUTION_LOW' }, \r\n { value: 2, name: 'RESOLUTION_NORMAL' }, \r\n { value: 3, name: 'RESOLUTION_HIGH' }, \r\n { value: 99, name: 'RESOLUTION_AUTO_HIGH' }, \r\n]\r\n\r\nconst lcdCommand = [\r\n { value: 1, name: 'RESOLUTION_LOW' }, \r\n { value: 2, name: 'RESOLUTION_NORMAL' }, \r\n { value: 3, name: 'RESOLUTION_HIGH' }, \r\n { value: 99, name: 'RESOLUTION_AUTO_HIGH' }, \r\n]\r\n\r\nexport const lcd2004 = {\r\n defaults: () => ({\r\n 'configs[0]': 32,\r\n }),\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n i2c_address: { name: 'I2C Address', type: 'select', options: i2c_address, var: 'configs[0]' },\r\n size: { name: 'Display Size', type: 'select', options: displaySize, var: 'configs[1]' },\r\n line1: { name: 'Line 1', type: 'string', /*var: 'configs[2]' */ },\r\n line2: { name: 'Line 2', type: 'string', /*var: 'configs[2]' */ },\r\n line3: { name: 'Line 3', type: 'string', /*var: 'configs[2]' */ },\r\n line4: { name: 'Line 4', type: 'string', /*var: 'configs[2]' */ },\r\n button: { name: 'Display Button', type: 'select', options: pins, var: 'gpio3' },\r\n timeout: { name: 'Display Timeout', type: 'number', var: 'configs[2]' },\r\n command: { name: 'LCD Command Mode', type: 'select', options: lcdCommand, var: 'configs[3]' },\r\n }\r\n },\r\n}","import { pins } from './_defs';\r\n\r\nconst mode = [\r\n { value: 0, name: 'Value' }, \r\n { value: 1, name: 'State' }, \r\n]\r\n\r\nconst units = [\r\n { value: 0, name: 'Metric' }, \r\n { value: 1, name: 'Imperial' }, \r\n]\r\n\r\nconst filters = [\r\n { value: 0, name: 'None' }, \r\n { value: 1, name: 'Median' }, \r\n]\r\n\r\nexport const hcsr04 = {\r\n defaults: () => ({\r\n gpio1: 255,\r\n gpio2: 255,\r\n 'settings.values[0].name': 'Distance',\r\n }),\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n gpio1: { name: 'GPIO Trigger', type: 'select', options: pins, var: 'gpio1' },\r\n gpio2: { name: 'GPIO Echo, 5V', type: 'select', options: pins, var: 'gpio2' },\r\n mode: { name: 'Mode', type: 'select', options: mode, var: 'configs[0]' },\r\n treshold: { name: 'Treshold', type: 'number', var: 'configs[1]' },\r\n max_distance: { name: 'Max Distance', type: 'number', var: 'configs[2]' },\r\n unit: { name: 'Unit', type: 'select', options: units, var: 'configs[3]' },\r\n filter: { name: 'Filter', type: 'select', options: filters, var: 'configs[4]' },\r\n filter_size: { name: 'Filter Size', type: 'number', var: 'configs[5]' },\r\n }\r\n },\r\n data: true,\r\n vals: 1,\r\n}","import { pins } from './_defs';\r\n\r\n\r\nconst resolution = [\r\n { value: 0, name: 'Temp 14 bits, RH 12 bits' }, \r\n { value: 128, name: 'Temp 13 bits, RH 10 bits' }, \r\n { value: 1, name: 'Temp 12 bits, RH 8 bits' }, \r\n { value: 129, name: 'Temp 11 bits, RH 11 bits' }, \r\n]\r\n\r\nexport const si7021 = {\r\n defaults: () => ({\r\n interval: 60,\r\n 'settings.values[0].name': 'Temperature',\r\n 'settings.values[1].name': 'Humidity',\r\n }),\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n resolution: { name: 'Resolution', type: 'select', options: resolution, var: 'configs[0]' },\r\n }\r\n },\r\n data: true,\r\n vals: 2,\r\n}","import { pins } from './_defs';\r\n\r\nconst i2c_address = [\r\n { value: 57, name: '0x39 (57) - default' }, \r\n { value: 73, name: '0x49 (73)' }, \r\n { value: 41, name: '0x29 (41)' }, \r\n]\r\n\r\nconst measurmentMode = [\r\n { value: 0, name: '13 ms' }, \r\n { value: 1, name: '101 ms' }, \r\n { value: 2, name: '402 ms' }, \r\n]\r\n\r\nexport const tls2561 = {\r\n defaults: () => ({\r\n 'configs[0]': 57,\r\n 'settings.values[0].name': 'Lux',\r\n 'settings.values[1].name': 'Infrared',\r\n 'settings.values[2].name': 'Broadband',\r\n }),\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n i2c_address: { name: 'I2C Address', type: 'select', options: i2c_address, var: 'configs[0]' },\r\n mode: { name: 'Integration time', type: 'select', options: measurmentMode, var: 'configs[1]' },\r\n send_to_sleep: { name: 'Send sensor to sleep', type: 'checkbox', var: 'configs[2]' },\r\n gain: { name: 'Enable 16x gain', type: 'checkbox', var: 'configs[3]' },\r\n }\r\n },\r\n data: true,\r\n vals: 3\r\n}\r\n","import { pins } from './_defs';\r\n\r\nexport const pn532 = {\r\n defaults: () => ({\r\n gpio1: 255,\r\n 'settings.values[0].name': 'Tag',\r\n }),\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n gpio1: { name: 'Reset Pin', type: 'select', options: pins, var: 'gpio1' },\r\n }\r\n },\r\n data: true,\r\n vals: 1,\r\n}","import { pins } from './_defs';\r\n\r\nconst i2c_address = [\r\n { value: 35, name: '0x23 (35) - default' }, \r\n { value: 92, name: '0x5c (92)' }, \r\n]\r\n\r\nconst measurmentMode = [\r\n { value: 1, name: 'RESOLUTION_LOW' }, \r\n { value: 2, name: 'RESOLUTION_NORMAL' }, \r\n { value: 3, name: 'RESOLUTION_HIGH' }, \r\n { value: 99, name: 'RESOLUTION_AUTO_HIGH' }, \r\n]\r\n\r\nexport const dust = {\r\n defaults: () => ({\r\n gpio1: 255,\r\n 'settings.values[0].name': 'Dust',\r\n }),\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n gpio1: { name: 'GPIO - LED', type: 'select', options: pins, var: 'gpio1' },\r\n }\r\n },\r\n data: true,\r\n vals: 1,\r\n}","import { pins } from './_defs';\r\n\r\nconst eventTypes = [\r\n { value: 0, name: 'Disabled' }, \r\n { value: 1, name: 'Active on LOW' }, \r\n { value: 2, name: 'Active on HIGH' }, \r\n { value: 3, name: 'Active on LOW and HIGH' }, \r\n]\r\n\r\nexport const pcf8574 = {\r\n defaults: () => ({\r\n gpio4: 0,\r\n 'settings.values[0].name': 'Switch',\r\n }),\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n port: { name: 'PORT', type: 'number', var: 'gpio4' },\r\n inversed: { name: 'Inversed logic', type: 'checkbox', var: 'pin1inversed' },\r\n send_boot_state: { name: 'Send Boot State', type: 'checkbox', var: 'configs[3]' },\r\n }\r\n },\r\n advanced: {\r\n name: 'Advanced event management',\r\n configs: {\r\n debounce: { name: 'De-bounce (ms)', type: 'number', var: 'configs_float[0]' },\r\n dblclick: { name: 'Doublclick Event', type: 'select', options: eventTypes, var: 'configs[4]' },\r\n dblclick_interval: { name: 'Doubleclick Max interval (ms)', type: 'number', var: 'configs_float[1]' },\r\n longpress: { name: 'Longpress event', type: 'select', options: eventTypes, var: 'configs[5]' },\r\n longpress_interval: { name: 'Longpress min interval (ms)', type: 'number', var: 'configs_float[2]' },\r\n safe_button: { name: 'Use safe button', type: 'checkbox', var: 'configs_float[3]' },\r\n }\r\n },\r\n data: true,\r\n vals: 1\r\n}","import { pins } from './_defs';\r\n\r\nconst eventTypes = [\r\n { value: 0, name: 'Disabled' }, \r\n { value: 1, name: 'Active on LOW' }, \r\n { value: 2, name: 'Active on HIGH' }, \r\n { value: 3, name: 'Active on LOW and HIGH' }, \r\n]\r\n\r\nexport const inputSwitch = {\r\n defaults: () => ({\r\n gpio1: 255,\r\n interval: 60,\r\n 'configs_float[1]': 1000,\r\n 'configs_float[2]': 1000,\r\n 'settings.values[0].name': 'Switch',\r\n }),\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n pullup: { name: 'Internal PullUp', type: 'checkbox', var: 'pin1pullup' },\r\n inversed: { name: 'Inversed logic', type: 'checkbox', var: 'pin1inversed' },\r\n gpio: { name: 'GPIO', type: 'select', options: pins, var: 'gpio1' },\r\n switch_type: { name: 'Switch Type', type: 'select', options: [{ name: 'switch', value: 0}, { name: 'dimmer', value: 3 }], var: 'configs[0]' },\r\n switch_button_type: { name: 'Switch Button Type', type: 'select', options: [\r\n { name: 'normal', value: 0}, { name: 'active low', value: 1 }, { name: 'active high', value: 2 }\r\n ], var: 'configs[2]' },\r\n send_boot_state: { name: 'Send Boot State', type: 'checkbox', var: 'configs[3]' },\r\n }\r\n },\r\n advanced: {\r\n name: 'Advanced event management',\r\n configs: {\r\n debounce: { name: 'De-bounce (ms)', type: 'number', var: 'configs_float[0]' },\r\n dblclick: { name: 'Doublclick Event', type: 'select', options: eventTypes, var: 'configs[4]' },\r\n dblclick_interval: { name: 'Doubleclick Max interval (ms)', min: 1000, max: 3000, type: 'number', var: 'configs_float[1]' },\r\n longpress: { name: 'Longpress event', type: 'select', options: eventTypes, var: 'configs[5]' },\r\n longpress_interval: { name: 'Longpress min interval (ms)', min: 1000, max: 5000, type: 'number', var: 'configs_float[2]' },\r\n safe_button: { name: 'Use safe button', type: 'checkbox', var: 'configs_float[3]' },\r\n }\r\n },\r\n data: true,\r\n vals: 1,\r\n}","import { pins } from './_defs';\r\n\r\nconst serialConfig = [\r\n { value: 0, name: 'No Parity' }, \r\n { value: 1, name: 'Even' }, \r\n { value: 2, name: 'Odd' }, \r\n]\r\n\r\nconst eventProcessing = [\r\n { value: 0, name: 'None' }, \r\n { value: 1, name: 'Generic' }, \r\n { value: 2, name: 'RFLink' }, \r\n]\r\n\r\nexport const ser2net = {\r\n defaults: () => ({\r\n gpio1: 255,\r\n }),\r\n sensor: {\r\n name: 'Settings',\r\n configs: {\r\n port: { name: 'TCP Port', type: 'number', var: 'extra.plugin_config_long[0]' }, \r\n baudrate: { name: 'Baudrate', type: 'number', var: 'extra.plugin_config_long[1]' },\r\n serial_config: { name: 'Data Bits', type: 'select', options: serialConfig, var: 'configs[2]' },\r\n reset_after_boot: { name: 'Reset target after boot', type: 'select', options: pins, var: 'gpio1' },\r\n timeout: { name: 'RX Receive Timeout', type: 'number', var: 'configs[0]' },\r\n event_processing: { name: 'Event Processing', type: 'select', options: eventProcessing, var: 'configs[1]' },\r\n }\r\n },\r\n}","import { pins, getTasks, getTaskValues } from './_defs';\r\n\r\nconst sensorModel = [\r\n { value: 11, name: 'DHT11' }, \r\n { value: 22, name: 'DHT22' }, \r\n { value: 12, name: 'DHT12' }, \r\n { value: 23, name: 'Sonoff am2301' }, \r\n { value: 70, name: 'Sonoff si7021' },\r\n]\r\n\r\nexport const levelControl = {\r\n defaults: () => ({\r\n gpio1: 255,\r\n 'settings.values[0].name': 'Output',\r\n }),\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n gpio: { name: 'GPIO Level Low', type: 'select', options: pins, var: 'gpio1' },\r\n check_task: { name: 'Check Task', type: 'select', options: getTasks, var: 'configs[0]' },\r\n check_value: { name: 'Check Value', type: 'select', options: getTaskValues, var: 'configs[1]' },\r\n level: { name: 'Set Level', type: 'number', var: 'configs_float[0]' },\r\n hysteresis: { name: 'Hysteresis', type: 'number', var: 'configs_float[1]' },\r\n }\r\n },\r\n data: true,\r\n vals: 1,\r\n}","import { pins, getTasks, getTaskValues } from './_defs';\r\n\r\nconst mode = [...Array(32)].map((v, i) => ({ value: i, name: `0x${i.toString(16)} (${i})` }));\r\nconst i2c_address = [...Array(32)].map((v, i) => ({ value: i+64, name: `0x${(i+64).toString(16)} (${i+64})` }));\r\n\r\nexport const pca9685 = {\r\n defaults: () => ({\r\n gpio1: 255,\r\n 'configs_float[0]': 1500,\r\n 'configs_float[1]': 4095,\r\n 'settings.values[0].name': 'Output',\r\n }),\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n i2c_address: { name: 'I2C Address', type: 'select', options: i2c_address, var: 'configs[0]' },\r\n mode: { name: 'Mode 2', type: 'select', options: mode, var: 'configs[1]' },\r\n frequency: { name: 'Frequency (23 - 1500)', type: 'number', min: 23, max: 1500, var: 'configs_float[0]' },\r\n range: { name: 'Range (1-10000)', type: 'number', min: 1, max: 10000, var: 'configs_float[1]' },\r\n }\r\n },\r\n}","import { pins } from './_defs';\r\n\r\nconst i2c_address = [\r\n { value: 35, name: '0x23 (35) - default' }, \r\n { value: 92, name: '0x5c (92)' }, \r\n]\r\n\r\nconst displaySize = [\r\n { value: 1, name: 'RESOLUTION_LOW' }, \r\n { value: 2, name: 'RESOLUTION_NORMAL' }, \r\n { value: 3, name: 'RESOLUTION_HIGH' }, \r\n { value: 99, name: 'RESOLUTION_AUTO_HIGH' }, \r\n]\r\n\r\nexport const oled1306 = {\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n i2c_address: { name: 'I2C Address', type: 'select', options: i2c_address, var: 'configs[0]' },\r\n rotation: { name: 'Rotation', type: 'select', options: displaySize, var: 'configs[1]' },\r\n size: { name: 'Display Size', type: 'select', options: displaySize, var: 'configs[1]' },\r\n font: { name: 'Font Width', type: 'select', options: displaySize, var: 'configs[1]' },\r\n line1: { name: 'Line 1', type: 'text', var: 'configs[2]' },\r\n line2: { name: 'Line 2', type: 'text', var: 'configs[2]' },\r\n line3: { name: 'Line 3', type: 'text', var: 'configs[2]' },\r\n line4: { name: 'Line 4', type: 'text', var: 'configs[2]' },\r\n line5: { name: 'Line 4', type: 'text', var: 'configs[2]' },\r\n line6: { name: 'Line 4', type: 'text', var: 'configs[2]' },\r\n line7: { name: 'Line 4', type: 'text', var: 'configs[2]' },\r\n line8: { name: 'Line 4', type: 'text', var: 'configs[2]' },\r\n button: { name: 'Display Button', type: 'select', options: pins, var: 'gpio1' },\r\n timeout: { name: 'Display Timeout', type: 'number', var: 'configs[2]' },\r\n }\r\n },\r\n}","const options = [\r\n { value: 0, name: 'IR Object Temperature' }, \r\n { value: 1, name: 'Ambient Temperature' }, \r\n]\r\n\r\nexport const mlx90614 = {\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n port: { name: 'Port', type: 'number', var: 'gpio4' },\r\n option: { name: 'Option', type: 'select', options: options, var: 'configs[0]' },\r\n }\r\n },\r\n}","\r\nconst i2c_address = [\r\n { value: 72, name: '0x48 (72)' }, \r\n { value: 73, name: '0x49 (73)' }, \r\n { value: 74, name: '0x4A (74)' }, \r\n { value: 75, name: '0x4B (75)' }, \r\n];\r\n\r\nconst gainOptions = [\r\n { value: 0, name: '2/3x gain (FS=6.144V)' }, \r\n { value: 1, name: '1x gain (FS=4.096V)' }, \r\n { value: 2, name: '2x gain (FS=2.048V)' }, \r\n { value: 3, name: '4x gain (FS=1.024V)' }, \r\n { value: 4, name: '8x gain (FS=0.512V)' },\r\n { value: 5, name: '16x gain (FS=0.256V)' },\r\n];\r\n\r\nconst multiplexerOptions = [\r\n { value: 0, name: 'AIN0 - AIN1 (Differential)' }, \r\n { value: 1, name: 'AIN0 - AIN3 (Differential)' }, \r\n { value: 2, name: 'AIN1 - AIN3 (Differential)' }, \r\n { value: 3, name: 'AIN2 - AIN3 (Differential)' }, \r\n { value: 4, name: 'AIN0 - GND (Single-Ended)' }, \r\n { value: 5, name: 'AIN1 - GND (Single-Ended)' }, \r\n { value: 6, name: 'AIN2 - GND (Single-Ended)' }, \r\n { value: 7, name: 'AIN3 - GND (Single-Ended)' }, \r\n];\r\n\r\n\r\nexport const ads1115 = {\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n i2c_address: { name: 'I2C Address', type: 'select', options: i2c_address, var: 'configs[0]' },\r\n gain: { name: 'Gain', type: 'select', options: gainOptions, var: 'configs[1]' },\r\n multiplexer: { name: 'Input Multiplexer', type: 'select', options: multiplexerOptions, var: 'configs[2]' },\r\n }\r\n },\r\n advanced: {\r\n name: 'Two point calibration',\r\n configs: {\r\n enabled: { name: 'Calibration Enabled', type: 'number', var: 'configs[3]' },\r\n point1: [{ name: 'Point 1', type: 'number', var: 'configs_long[0]' }, { name: '=', type: 'number', var: 'configs_float[1]' }],\r\n point2: [{ name: 'Point 2', type: 'number', var: 'configs_long[1]' }, { name: '=', type: 'number', var: 'configs_float[1]' }],\r\n }\r\n },\r\n}","const indicator = [\r\n { value: 0, name: 'Uptime' }, \r\n { value: 1, name: 'Free Ram' }, \r\n { value: 2, name: 'WiFi RSSI' }, \r\n { value: 3, name: 'Input VCC' }, \r\n { value: 4, name: 'System load' }, \r\n { value: 5, name: 'IP 1.Octet' }, \r\n { value: 6, name: 'IP 2.Octet' }, \r\n { value: 7, name: 'IP 3.Octet' }, \r\n { value: 8, name: 'IP 4.Octet' }, \r\n { value: 9, name: 'Web activity' }, \r\n { value: 10, name: 'Free Stack' }, \r\n { value: 11, name: 'None' }, \r\n]\r\n\r\nexport const systemInfo = {\r\n sensor: {\r\n name: 'Settings',\r\n configs: {\r\n indicator1: { name: 'Indicator 1', type: 'select', options: indicator, var: 'configs_long[0]' },\r\n indicator1: { name: 'Indicator 2', type: 'select', options: indicator, var: 'configs_long[1]' },\r\n indicator1: { name: 'Indicator 3', type: 'select', options: indicator, var: 'configs_long[2]' },\r\n indicator1: { name: 'Indicator 4', type: 'select', options: indicator, var: 'configs_long[3]' },\r\n }\r\n },\r\n}","import { pins, getTasks, getTaskValues } from './_defs';\r\n\r\nconst measurmentRange = [\r\n { value: 0, name: '32V, 2A' }, \r\n { value: 1, name: '32V, 1A' }, \r\n { value: 2, name: '16V, 0.4A' }, \r\n]\r\n\r\nconst measurmentType = [\r\n { value: 0, name: 'Voltage' }, \r\n { value: 1, name: 'Current' }, \r\n { value: 2, name: 'Power' }, \r\n { value: 3, name: 'Voltage/Current/Power' }, \r\n]\r\n\r\nconst i2c_address = [\r\n { value: 64, name: '0x40 (64) - (default)' }, \r\n { value: 65, name: '0x41 (65)' }, \r\n { value: 68, name: '0x44 (68)' }, \r\n { value: 69, name: '0x45 (69)' }, \r\n]\r\n\r\nexport const ina219 = {\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n i2c_address: { name: 'I2C Address', type: 'select', options: i2c_address, var: 'configs[0]' },\r\n check_task: { name: 'Measurment Range', type: 'select', options: measurmentRange, var: 'configs[1]' },\r\n check_value: { name: 'Measurment Type', type: 'select', options: measurmentType, var: 'configs[2]' },\r\n }\r\n },\r\n}","import { pins, getTasks, getTaskValues } from './_defs';\r\n\r\nconst i2c_address = [\r\n { value: 118, name: '0x76 (118) - (default)' }, \r\n { value: 119, name: '0x77 (119) - (default)' }, \r\n]\r\n\r\nexport const bmx280 = {\r\n defaults: () => ({\r\n ValueCount: 1,\r\n SendDataOption: 1,\r\n TimerOption: 1,\r\n TimerOptional: 1,\r\n GlobalSync: 1,\r\n 'settings.values[0].name': 'Temperature',\r\n 'settings.values[1].name': 'Humidity',\r\n 'settings.values[2].name': 'Pressure',\r\n }),\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n i2c_address: { name: 'I2C Address', type: 'select', options: i2c_address, var: 'configs[0]' },\r\n altitude: { name: 'Altitude', type: 'number', var: 'configs[1]' },\r\n offset: { name: 'Temperature Offset', type: 'number', var: 'configs[2]' },\r\n }\r\n },\r\n data: true,\r\n vals: 3,\r\n}","import { pins, getTasks, getTaskValues } from './_defs';\r\n\r\nexport const mqttDomoticz = {\r\n sensor: {\r\n name: 'Actuator',\r\n configs: {\r\n gpio: { name: 'GPIO', type: 'select', options: pins, var: 'gpio1' },\r\n idx: { name: 'IDX', type: 'number', var: 'configs[0]' },\r\n }\r\n },\r\n}","import { pins } from './_defs';\r\n\r\nexport const analogInput = {\r\n defaults: () => ({\r\n 'settings.values[0].name': 'Analog',\r\n }),\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n oversampling: { name: 'Oversampling', type: 'checkbox', var: 'configs[0]' },\r\n }\r\n },\r\n advanced: {\r\n name: 'Two point calibration',\r\n configs: {\r\n enabled: { name: 'Calibration Enabled', type: 'checkbox', var: 'configs[3]' },\r\n point1: [{ name: 'Point 1', type: 'number', var: 'configs_long[0]' }, { name: '=', type: 'number', var: 'configs_float[0]' }],\r\n point2: [{ name: 'Point 2', type: 'number', var: 'configs_long[1]' }, { name: '=', type: 'number', var: 'configs_float[1]' }],\r\n }\r\n },\r\n data: true,\r\n vals: 1,\r\n}","import { pins, getTasks, getTaskValues } from './_defs';\r\n\r\nconst i2c_address = [\r\n { value: 118, name: '0x76 (118) - (default)' }, \r\n { value: 119, name: '0x77 (119) - (default)' }, \r\n]\r\n\r\nexport const bmp280 = {\r\n defaults: () => ({\r\n ValueCount: 1,\r\n SendDataOption: 1,\r\n TimerOption: 1,\r\n TimerOptional: 1,\r\n GlobalSync: 1,\r\n 'settings.values[0].name': 'Temperature',\r\n 'settings.values[1].name': 'Pressure',\r\n }),\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n i2c_address: { name: 'I2C Address', type: 'select', options: i2c_address, var: 'configs[0]' },\r\n altitude: { name: 'Altitude', type: 'number', var: 'configs[1]' },\r\n }\r\n },\r\n data: true,\r\n vals: 2\r\n}","import { pins, getTasks, getTaskValues } from './_defs';\r\n\r\nexport const sht1x = {\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n pullup: { name: 'Internal PullUp', type: 'checkbox', var: 'pin1pullup' },\r\n gpio1: { name: 'GPIO Data', type: 'select', options: pins, var: 'gpio1' },\r\n gpio2: { name: 'GPIO SCK', type: 'select', options: pins, var: 'gpio2' },\r\n },\r\n },\r\n data: true,\r\n vals: 1,\r\n}","import { pins, getTasks, getTaskValues } from './_defs';\r\n\r\nconst i2c_address = [\r\n { value: 118, name: '0x76 (118)' }, \r\n { value: 119, name: '0x77 (119) - (default)' }, \r\n]\r\n\r\n\r\nexport const ms5611 = {\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n i2c_address: { name: 'I2C Address', type: 'select', options: i2c_address, var: 'configs[0]' },\r\n altitude: { name: 'Altitude', type: 'number', var: 'configs[1]' },\r\n }\r\n },\r\n data: true,\r\n vals: 1,\r\n}","\r\nconst sensorModel = [\r\n { value: 1, name: 'SENSOR_TYPE_SINGLE' }, \r\n { value: 2, name: 'SENSOR_TYPE_TEMP_HUM' }, \r\n { value: 3, name: 'SENSOR_TYPE_TEMP_BARO' }, \r\n { value: 4, name: 'SENSOR_TYPE_TEMP_HUM_BARO' }, \r\n { value: 5, name: 'SENSOR_TYPE_DUAL' },\r\n { value: 5, name: 'SENSOR_TYPE_TRIPLE' },\r\n { value: 7, name: 'SENSOR_TYPE_QUAD' },\r\n { value: 10, name: 'SENSOR_TYPE_SWITCH' },\r\n { value: 11, name: 'SENSOR_TYPE_DIMMER' },\r\n { value: 20, name: 'SENSOR_TYPE_LONG' },\r\n { value: 21, name: 'SENSOR_TYPE_WIND' },\r\n]\r\n\r\nexport const dummyDevice = {\r\n defaults: () => ({\r\n interval: 0,\r\n 'settings.values[0].name': 'Dummy1',\r\n 'settings.values[1].name': 'Dummy1',\r\n 'settings.values[2].name': 'Dummy3',\r\n 'settings.values[3].name': 'Dummy4',\r\n }),\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n switch_type: { name: 'Simulate Sensor Type', type: 'select', options: sensorModel, var: 'configs[0]' },\r\n interval: { name: 'Interval', type: 'number' },\r\n }\r\n },\r\n data: true,\r\n vals: 4,\r\n}","\r\nconst sensorModel = [\r\n { value: 1, name: 'SENSOR_TYPE_SINGLE' }, \r\n { value: 2, name: 'SENSOR_TYPE_TEMP_HUM' }, \r\n { value: 3, name: 'SENSOR_TYPE_TEMP_BARO' }, \r\n { value: 4, name: 'SENSOR_TYPE_TEMP_HUM_BARO' }, \r\n { value: 5, name: 'SENSOR_TYPE_DUAL' },\r\n { value: 5, name: 'SENSOR_TYPE_TRIPLE' },\r\n { value: 7, name: 'SENSOR_TYPE_QUAD' },\r\n { value: 10, name: 'SENSOR_TYPE_SWITCH' },\r\n { value: 11, name: 'SENSOR_TYPE_DIMMER' },\r\n { value: 20, name: 'SENSOR_TYPE_LONG' },\r\n { value: 21, name: 'SENSOR_TYPE_WIND' },\r\n]\r\n\r\nexport const dht12 = {\r\n data: {\r\n name: 'Data Acquisition',\r\n configs: {\r\n interval: { name: 'Interval', type: 'number' },\r\n }\r\n },\r\n data: true,\r\n vals: 2,\r\n}","import { pins } from './_defs';\r\n\r\nconst i2c_address = [\r\n { value: 35, name: '0x23 (35) - default' }, \r\n { value: 92, name: '0x5c (92)' }, \r\n]\r\n\r\nconst displaySize = [\r\n { value: 1, name: 'RESOLUTION_LOW' }, \r\n { value: 2, name: 'RESOLUTION_NORMAL' }, \r\n { value: 3, name: 'RESOLUTION_HIGH' }, \r\n { value: 99, name: 'RESOLUTION_AUTO_HIGH' }, \r\n]\r\n\r\nexport const sh1106 = {\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n i2c_address: { name: 'I2C Address', type: 'select', options: i2c_address, var: 'configs[0]' },\r\n rotation: { name: 'Rotation', type: 'select', options: displaySize, var: 'configs[1]' },\r\n size: { name: 'Display Size', type: 'select', options: displaySize, var: 'configs[1]' },\r\n font: { name: 'Font Width', type: 'select', options: displaySize, var: 'configs[1]' },\r\n line1: { name: 'Line 1', type: 'text', var: 'configs[2]' },\r\n line2: { name: 'Line 2', type: 'text', var: 'configs[2]' },\r\n line3: { name: 'Line 3', type: 'text', var: 'configs[2]' },\r\n line4: { name: 'Line 4', type: 'text', var: 'configs[2]' },\r\n line5: { name: 'Line 4', type: 'text', var: 'configs[2]' },\r\n line6: { name: 'Line 4', type: 'text', var: 'configs[2]' },\r\n line7: { name: 'Line 4', type: 'text', var: 'configs[2]' },\r\n line8: { name: 'Line 4', type: 'text', var: 'configs[2]' },\r\n button: { name: 'Display Button', type: 'select', options: pins, var: 'gpio1' },\r\n timeout: { name: 'Display Timeout', type: 'number', var: 'configs[2]' },\r\n }\r\n },\r\n data: true,\r\n vals: 1,\r\n}","\r\n\r\nexport const mqttImport = {\r\n data: {\r\n name: 'Data Acquisition',\r\n configs: {\r\n switch_type: { name: 'MQTT Topic 1', type: 'text', var: 'configs[0]' },\r\n switch_type: { name: 'MQTT Topic 2', type: 'text', var: 'configs[0]' },\r\n switch_type: { name: 'MQTT Topic 3', type: 'text', var: 'configs[0]' },\r\n switch_type: { name: 'MQTT Topic 4', type: 'text', var: 'configs[0]' },\r\n }\r\n }\r\n}","import { pins, getTasks, getTaskValues } from './_defs';\r\n\r\nconst type = [\r\n { value: 1, name: 'GRB' }, \r\n { value: 2, name: 'GRBW' }, \r\n]\r\n\r\nexport const neopixelBasic = {\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n leds: { name: 'LEd Count', type: 'number', var: 'configs[0]' },\r\n gpio: { name: 'GPIO', type: 'select', options: pins, var: 'gpio1' },\r\n type: { name: 'Strip Type', type: 'select', options: type, var: 'configs[1]' },\r\n }\r\n },\r\n}","import { pins, getTasks, getTaskValues } from './_defs';\r\n\r\nconst type = [\r\n { value: 1, name: 'MAX 6675' }, \r\n { value: 2, name: 'MAX 31855' }, \r\n]\r\n\r\nexport const thermocouple = {\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n gpio: { name: 'GPIO', type: 'select', options: pins, var: 'gpio1' },\r\n type: { name: 'Adapter IC', type: 'select', options: type, var: 'configs[0]' },\r\n }\r\n },\r\n}","import { pins } from './_defs';\r\n\r\nconst modeTypes = [\r\n { value: 0, name: 'LOW' }, \r\n { value: 1, name: 'CHANGE' }, \r\n { value: 2, name: 'RISING' }, \r\n { value: 3, name: 'FALLING' }, \r\n]\r\n\r\nconst counterTypes = [\r\n { value: 0, name: 'Delta' }, \r\n { value: 1, name: 'Delta/Total/Time' }, \r\n { value: 2, name: 'Total' }, \r\n { value: 3, name: 'Delta/Total' }, \r\n]\r\n\r\nexport const genericPulse = {\r\n sensor: {\r\n defaults: () => ({\r\n gpio1: 255,\r\n 'settings.values[0].name': 'Count',\r\n 'settings.values[1].name': 'Total',\r\n 'settings.values[2].name': 'Time',\r\n }),\r\n name: 'Sensor',\r\n configs: {\r\n gpio: { name: 'GPIO', type: 'select', options: pins, var: 'gpio1' },\r\n debounce: { name: 'De-bounce (ms)', type: 'number', var: 'configs[0]' },\r\n counter_type: { name: 'Counter Type', type: 'select', options: counterTypes, var: 'configs[1]' },\r\n mode_type: { name: 'Switch Button Type', type: 'select', options: modeTypes, var: 'configs[2]' },\r\n }\r\n },\r\n data: true,\r\n vals: 3,\r\n}","import { pins, getTasks, getTaskValues } from './_defs';\r\n\r\nexport const neopixelClock = {\r\n sensor: {\r\n name: 'Actuator',\r\n configs: {\r\n gpio: { name: 'GPIO', type: 'select', options: pins, var: 'gpio1' },\r\n R: { name: 'Red', type: 'number', min: 0, max: 255, var: 'configs[0]' },\r\n G: { name: 'Green', type: 'number', min: 0, max: 255, var: 'configs[1]' },\r\n B: { name: 'Blue', type: 'number', min: 0, max: 255, var: 'configs[2]' },\r\n }\r\n },\r\n}","import { pins, getTasks, getTaskValues } from './_defs';\r\n\r\nexport const neopixelCandle = {\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n gpio: { name: 'GPIO', type: 'select', options: pins, var: 'gpio1' },\r\n }\r\n },\r\n}","import { pins, getTasks, getTaskValues } from './_defs';\r\n\r\nconst type = [\r\n { value: 0, name: '' },\r\n { value: 1, name: 'Off' }, \r\n { value: 2, name: 'On' }, \r\n]\r\n\r\nexport const clock = {\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n gpio: { name: 'GPIO - Clock Event', type: 'select', options: pins, var: 'gpio1' },\r\n event1: [{ name: 'Day, Time 1', type: 'string', var: 'configs[0]' }, { name: '', type: 'select', options: type, var: 'configs[1]' }],\r\n event2: [{ name: 'Day, Time 1', type: 'string', var: 'configs[0]' }, { name: '', type: 'select', options: type, var: 'configs[1]' }],\r\n event3: [{ name: 'Day, Time 1', type: 'string', var: 'configs[0]' }, { name: '', type: 'select', options: type, var: 'configs[1]' }],\r\n event4: [{ name: 'Day, Time 1', type: 'string', var: 'configs[0]' }, { name: '', type: 'select', options: type, var: 'configs[1]' }],\r\n event5: [{ name: 'Day, Time 1', type: 'string', var: 'configs[0]' }, { name: '', type: 'select', options: type, var: 'configs[1]' }],\r\n event6: [{ name: 'Day, Time 1', type: 'string', var: 'configs[0]' }, { name: '', type: 'select', options: type, var: 'configs[1]' }],\r\n event7: [{ name: 'Day, Time 1', type: 'string', var: 'configs[0]' }, { name: '', type: 'select', options: type, var: 'configs[1]' }],\r\n event8: [{ name: 'Day, Time 1', type: 'string', var: 'configs[0]' }, { name: '', type: 'select', options: type, var: 'configs[1]' }],\r\n }\r\n },\r\n}","import { pins } from './_defs';\r\n\r\nconst parity = [\r\n { value: 0, name: 'No Parity' }, \r\n { value: 1, name: 'Even' }, \r\n { value: 2, name: 'Odd' }, \r\n]\r\n\r\nexport const wifiGateway = {\r\n sensor: {\r\n name: 'Settings',\r\n configs: {\r\n port: { name: 'TCP Port', type: 'number', var: 'configs_float[0]' },\r\n baudrate: { name: 'Baudrate', type: 'number', var: 'configs_float[0]' },\r\n data_bits: { name: 'Data Bits', type: 'number', var: 'configs_float[0]' },\r\n parity: { name: 'Parity', type: 'select', options: parity, var: 'configs[0]' },\r\n stop_bits: { name: 'Stop Bits', type: 'number', var: 'configs_float[0]' },\r\n reset_after_boot: { name: 'Reset target after boot', type: 'select', options: pins, var: 'configs[1]' },\r\n timeout: { name: 'RX Receive Timeout', type: 'number', var: 'configs_float[0]' },\r\n }\r\n }\r\n}","\r\nimport { pins } from './_defs';\r\n\r\nexport const mhz19 = {\r\n sensor: {\r\n name: 'Data Acquisition',\r\n configs: {\r\n gpio1: { name: 'GPIO - TX', type: 'select', options: pins, var: 'gpio1' },\r\n gpio2: { name: 'GPIO - RX', type: 'select', options: pins, var: 'gpio2' },\r\n }\r\n },\r\n data: true,\r\n vals: 1,\r\n}","import { pins } from './_defs';\r\n\r\nexport const ds18b20 = {\r\n defaults: () => ({\r\n gpio1: 255,\r\n 'settings.values[0].name': 'Temperature',\r\n }),\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n gpio: { name: 'GPIO', type: 'select', options: pins, var: 'gpio1' },\r\n }\r\n },\r\n data: true,\r\n vals: 1,\r\n}","\r\nimport { pins } from './_defs';\r\n\r\nexport const senseAir = {\r\n sensor: {\r\n name: 'Data Acquisition',\r\n configs: {\r\n gpio1: { name: 'GPIO - TX', type: 'select', options: pins, var: 'gpio1' },\r\n gpio2: { name: 'GPIO - RX', type: 'select', options: pins, var: 'gpio2' },\r\n }\r\n },\r\n data: true,\r\n vals: 1,\r\n}","\r\nimport { pins } from './_defs';\r\n\r\nexport const sds011 = {\r\n sensor: {\r\n name: 'Data Acquisition',\r\n configs: {\r\n gpio1: { name: 'GPIO - TX', type: 'select', options: pins, var: 'gpio1' },\r\n gpio2: { name: 'GPIO - RX', type: 'select', options: pins, var: 'gpio2' },\r\n }\r\n },\r\n data: true,\r\n vals: 1,\r\n}","\r\nimport { pins } from './_defs';\r\n\r\nexport const rotaryEncoder = {\r\n defaults: () => ({\r\n ValueCount: 1,\r\n SendDataOption: 1,\r\n TimerOption: 1,\r\n TimerOptional: 1,\r\n GlobalSync: 1,\r\n }),\r\n sensor: {\r\n name: 'Data Acquisition',\r\n configs: {\r\n gpio1: { name: 'GPIO A - CLK', type: 'select', options: pins, var: 'gpio1' },\r\n gpio2: { name: 'GPIO B - DT', type: 'select', options: pins, var: 'gpio2' },\r\n gpio3: { name: 'GPIO I - Z', type: 'select', options: pins, var: 'gpio3' },\r\n limit_min: { name: 'Limit - Min', type: 'number', var: 'configs_long[0]' },\r\n limit_max: { name: 'Limit - Max', type: 'number', var: 'configs_long[1]' },\r\n }\r\n },\r\n data: true,\r\n vals: 1,\r\n}","import { pins } from './_defs';\r\n\r\nconst sensorModel = [\r\n { value: 11, name: 'DHT11' }, \r\n { value: 22, name: 'DHT22' }, \r\n { value: 12, name: 'DHT12' }, \r\n { value: 23, name: 'Sonoff am2301' }, \r\n { value: 70, name: 'Sonoff si7021' },\r\n]\r\n\r\nexport const dht = {\r\n defaults: () => ({\r\n gpio1: 255,\r\n interval: 60,\r\n 'configs[0]': 11,\r\n 'settings.values[0].name': 'Temperature',\r\n 'settings.values[1].name': 'Humidity',\r\n }),\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n gpio: { name: 'GPIO Data', type: 'select', options: pins, var: 'gpio1' },\r\n switch_type: { name: 'Sensor model', type: 'select', options: sensorModel, var: 'configs[0]' },\r\n }\r\n },\r\n data: true,\r\n vals: 2,\r\n}","\r\nimport { pins } from './_defs';\r\n\r\nexport const ttp229 = {\r\n defaults: () => ({\r\n 'gpio1' : 1,\r\n }),\r\n sensor: {\r\n defaults: () => ({\r\n ValueCount: 1,\r\n SendDataOption: 1,\r\n TimerOption: 1,\r\n TimerOptional: 1,\r\n GlobalSync: 1,\r\n }),\r\n name: 'Sensor',\r\n configs: {\r\n gpio1: { name: 'GPIO A - CLK', type: 'select', options: pins, var: 'gpio1' },\r\n gpio2: { name: 'GPIO B - DT', type: 'select', options: pins, var: 'gpio2' },\r\n scancode: { name: 'ScanCode', type: 'checkbox', options: pins, var: 'configs[1]' },\r\n }\r\n },\r\n data: true,\r\n vals: 1,\r\n}","import { pins } from './_defs';\r\n\r\nconst eventTypes = [\r\n { value: 0, name: 'Disabled' }, \r\n { value: 1, name: 'Active on LOW' }, \r\n { value: 2, name: 'Active on HIGH' }, \r\n { value: 3, name: 'Active on LOW and HIGH' }, \r\n]\r\n\r\nexport const bmp085 = {\r\n defaults: () => ({\r\n 'settings.values[0].name': 'Temperature',\r\n 'settings.values[1].name': 'Pressure',\r\n }),\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n altitude: { name: 'Altitude', type: 'number', var: 'configs[1]' },\r\n }\r\n },\r\n data: true,\r\n vals: 2,\r\n}","import { pins } from './_defs';\r\n\r\n\r\nexport const pcf8591 = {\r\n defaults: () => ({\r\n 'settings.values[0].name': 'Analog',\r\n }),\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n port: { name: 'PORT', type: 'number', var: 'gpio4' },\r\n }\r\n },\r\n data: true,\r\n vars: 1\r\n}","import { pins } from './_defs';\r\n\r\nconst weigandType = [\r\n { value: 26, name: '26 Bits' }, \r\n { value: 34, name: '34 Bits' }, \r\n]\r\n\r\nexport const rfidWeigand = {\r\n defaults: () => ({\r\n gpio1: 255,\r\n gpio2: 255,\r\n 'settings.values[0].name': 'Tag',\r\n }),\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n gpio1: { name: 'GPIO D0 (green, 5V)', type: 'select', options: pins, var: 'gpio1' },\r\n gpio2: { name: 'GPIO D1 (white, 5V)', type: 'select', options: pins, var: 'gpio2' },\r\n type: { name: 'Weigand Type', type: 'select', options: weigandType, var: 'configs[0]' },\r\n }\r\n },\r\n data: true,\r\n vars: 1\r\n}","import { pins } from './_defs';\r\n\r\nconst eventTypes = [\r\n { value: 0, name: 'Disabled' }, \r\n { value: 1, name: 'Active on LOW' }, \r\n { value: 2, name: 'Active on HIGH' }, \r\n { value: 3, name: 'Active on LOW and HIGH' }, \r\n]\r\n\r\nexport const inputMcp = {\r\n defaults: () => ({\r\n gpio4: 0,\r\n 'settings.values[0].name': 'Switch',\r\n }),\r\n sensor: {\r\n name: 'Sensor',\r\n configs: {\r\n port: { name: 'PORT', type: 'number', var: 'gpio4' },\r\n inversed: { name: 'Inversed logic', type: 'checkbox', var: 'pin1inversed' },\r\n send_boot_state: { name: 'Send Boot State', type: 'checkbox', var: 'configs[3]' },\r\n }\r\n },\r\n advanced: {\r\n name: 'Advanced event management',\r\n configs: {\r\n debounce: { name: 'De-bounce (ms)', type: 'number', var: 'configs_float[0]' },\r\n dblclick: { name: 'Doublclick Event', type: 'select', options: eventTypes, var: 'configs[4]' },\r\n dblclick_interval: { name: 'Doubleclick Max interval (ms)', type: 'number', var: 'configs_float[1]' },\r\n longpress: { name: 'Longpress event', type: 'select', options: eventTypes, var: 'configs[5]' },\r\n longpress_interval: { name: 'Longpress min interval (ms)', type: 'number', var: 'configs_float[2]' },\r\n safe_button: { name: 'Use safe button', type: 'checkbox', var: 'configs_float[3]' },\r\n }\r\n },\r\n data: true,\r\n vars: 1,\r\n}","import { settings } from '../lib/settings';\r\n\r\nexport { pins } from '../pages/config.hardware';\r\n\r\n\r\nexport const getTasks = () => {\r\n return settings.get('tasks').filter(task => task.enabled).map(task => ({ value: task.settings.index, name: task.settings.name }));\r\n}\r\n\r\nexport const getTaskValues = () => {\r\n return [ 1, 2, 3, 4 ];\r\n}","import { inputSwitch } from './1_input_switch';\r\nimport { analogInput } from './2_analog_input';\r\nimport { genericPulse } from './3_generic_pulse';\r\nimport { ds18b20 } from './4_ds18b20';\r\nimport { dht } from './5_dht';\r\nimport { bmp085 } from './6_bmp085';\r\nimport { pcf8591 } from './7_pcf8591';\r\nimport { rfidWeigand } from './8_rfid';\r\nimport { inputMcp } from './9_io_mcp';\r\nimport { bh1750 } from './10_light_lux';\r\nimport { pme } from './11_pme';\r\nimport { lcd2004 } from './12_lcd';\r\nimport { hcsr04 } from './13_hcsr04';\r\nimport { si7021 } from './14_si7021';\r\nimport { tls2561 } from './15_tls2561';\r\nimport { pn532 } from './17_pn532';\r\nimport { dust } from './18_dust';\r\nimport { pcf8574 } from './19_pcf8574';\r\nimport { ser2net } from './20_ser2net';\r\nimport { levelControl } from './21_level_control';\r\nimport { pca9685 } from './22_pca9685';\r\nimport { oled1306 } from './23_oled1306';\r\nimport { mlx90614 } from './24_mlx90614';\r\nimport { ads1115 } from './25_ads1115';\r\nimport { systemInfo } from './26_system_info';\r\nimport { ina219 } from './27_ina219';\r\nimport { bmx280 } from './28_bmx280';\r\nimport { mqttDomoticz } from './29_mqtt_domoticz';\r\nimport { bmp280 } from './30_bmp280';\r\nimport { sht1x } from './31_sht1x';\r\nimport { ms5611 } from './32_ms5611';\r\nimport { dummyDevice } from './33_dummy_device';\r\nimport { dht12 } from './34_dht12';\r\nimport { sh1106 } from './36_sh1106';\r\nimport { mqttImport } from './37_mqtt_import';\r\nimport { neopixelBasic } from './38_neopixel_basic';\r\nimport { thermocouple } from './39_thermocouple';\r\nimport { neopixelClock } from './41_neopixel_clock';\r\nimport { neopixelCandle } from './42_neopixel_candle';\r\nimport { clock } from './43_output_clock';\r\nimport { wifiGateway } from './44_wifi_gateway';\r\nimport { mhz19 } from './49_mhz19';\r\nimport { senseAir } from './52_senseair';\r\nimport { sds011 } from './56_sds011';\r\nimport { rotaryEncoder } from './59_rotary_encoder';\r\nimport { ttp229 } from './63_ttp229';\r\n\r\nexport const devices = [\r\n { name: '- None -', value: 0, fields: [] },\r\n { name: 'Switch input - Switch', value: 1, fields: inputSwitch },\r\n { name: 'Analog input - internal', value: 2, fields: analogInput },\r\n { name: 'Generic - Pulse counter', value: 3, fields: genericPulse },\r\n { name: 'Environment - DS18b20', value: 4, fields: ds18b20 },\r\n { name: 'Environment - DHT11/12/22 SONOFF2301/7021', value: 5, fields: dht },\r\n { name: 'Environment - BMP085/180', value: 6, fields: bmp085 },\r\n { name: 'Analog input - PCF8591', value: 7, fields: pcf8591 },\r\n { name: 'RFID - Wiegand', value: 8, fields: rfidWeigand },\r\n { name: 'Switch input - MCP23017', value: 9, fields: inputMcp },\r\n { name: 'Light/Lux - BH1750', value: 10, fields: bh1750 },\r\n { name: 'Extra IO - ProMini Extender', value: 11, fields: pme },\r\n { name: 'Display - LCD2004', value: 12, fields: lcd2004 },\r\n { name: 'Position - HC-SR04, RCW-0001, etc.', value: 13, fields: hcsr04 },\r\n { name: 'Environment - SI7021/HTU21D', value: 14, fields: si7021 },\r\n { name: 'Light/Lux - TSL2561', value: 15, fields: tls2561 },\r\n //{ name: 'Communication - IR', value: 16, fields: bh1750 },\r\n { name: 'RFID - PN532', value: 17, fields: pn532 },\r\n { name: 'Dust - Sharp GP2Y10', value: 18, fields: dust },\r\n { name: 'Switch input - PCF8574', value: 19, fields: pcf8574 },\r\n { name: 'Communication - Serial Server', value: 20, fields: ser2net },\r\n { name: 'Regulator - Level Control', value: 21, fields: levelControl },\r\n { name: 'Extra IO - PCA9685', value: 22, fields: pca9685 },\r\n { name: 'Display - OLED SSD1306', value: 23, fields: oled1306 },\r\n { name: 'Environment - MLX90614', value: 24, fields: mlx90614 },\r\n { name: 'Analog input - ADS1115', value: 25, fields: ads1115 },\r\n { name: 'Generic - System Info', value: 26, fields: systemInfo },\r\n { name: 'Energy (DC) - INA219', value: 27, fields: ina219 },\r\n { name: 'Environment - BMx280', value: 28, fields: bmx280 },\r\n { name: 'Output - Domoticz MQTT Helper', value: 29, fields: mqttDomoticz },\r\n { name: 'Environment - BMP280', value: 30, fields: bmp280 },\r\n { name: 'Environment - SHT1X', value: 31, fields: sht1x },\r\n { name: 'Environment - MS5611 (GY-63)', value: 32, fields: ms5611 },\r\n { name: 'Generic - Dummy Device', value: 33, fields: dummyDevice },\r\n { name: 'Environment - DHT12 (I2C)', value: 34, fields: dht12 },\r\n { name: 'Display - OLED SSD1306/SH1106 Framed', value: 36, fields: sh1106 },\r\n { name: 'Generic - MQTT Import', value: 37, fields: mqttImport },\r\n { name: 'Output - NeoPixel (Basic)', value: 38, fields: neopixelBasic },\r\n { name: 'Environment - Thermocouple', value: 39, fields: thermocouple },\r\n { name: 'Output - NeoPixel (Word Clock)', value: 41, fields: neopixelClock },\r\n { name: 'Output - NeoPixel (Candle)', value: 42, fields: neopixelCandle },\r\n { name: 'Output - Clock', value: 43, fields: clock },\r\n { name: 'Communication - P1 Wifi Gateway', value: 44, fields: wifiGateway },\r\n { name: 'Gases - CO2 MH-Z19', value: 49, fields: mhz19 },\r\n { name: 'Gases - CO2 Senseair', value: 52, fields: senseAir },\r\n { name: 'Dust - SDS011/018/198', value: 56, fields: sds011 },\r\n { name: 'Switch Input - Rotary Encoder', value: 59, fields: rotaryEncoder },\r\n { name: 'Keypad - TTP229 Touc', value: 63, fields: ttp229 },\r\n].sort((a, b) => a.name.localeCompare(b.name));","import miniToastr from 'mini-toastr';\nimport { loader } from './loader';\n\nexport const getJsonStat = async (url = '') => {\n return await fetch(`${url}/json`).then(response => response.json())\n}\n\nexport const loadDevices = async (url) => {\n return getJsonStat(url).then(response => response.Sensors);\n}\n\nexport const getConfigNodes = async () => {\n const devices = await loadDevices();\n const vars = [];\n const nodes = devices.map(device => {\n const taskValues = device.TaskValues || [];\n taskValues.map(value => vars.push(`${device.TaskName}#${value.Name}`));\n const result = [{\n group: 'TRIGGERS',\n type: device.TaskName || `${device.TaskNumber}-${device.Type}`,\n inputs: [],\n outputs: [1],\n config: [{\n name: 'variable',\n type: 'select',\n values: taskValues.map(value => value.Name),\n value: taskValues.length ? taskValues[0].Name : '',\n }, {\n name: 'euqality',\n type: 'select',\n values: ['', '=', '<', '>', '<=', '>=', '!='],\n value: '',\n }, {\n name: 'value',\n type: 'number',\n }],\n indent: true,\n toString: function () { \n const comparison = this.config[1].value === '' ? 'changes' : `${this.config[1].value} ${this.config[2].value}`;\n return `when ${this.type}.${this.config[0].value} ${comparison}`; \n },\n toDsl: function () { \n const comparison = this.config[1].value === '' ? '' : `${this.config[1].value}${this.config[2].value}`;\n return [`on ${this.type}#${this.config[0].value}${comparison} do\\n%%output%%\\nEndon\\n`]; \n }\n }];\n\n let fnNames, fnName, name;\n switch (device.Type) {\n // todo: need access to GPIO number\n // case 'Switch input - Switch':\n // result.push({\n // group: 'ACTIONS',\n // type: `${device.TaskName} - switch`,\n // inputs: [1],\n // outputs: [1],\n // config: [{\n // name: 'value',\n // type: 'number',\n // }],\n // toString: function () { return `${device.TaskName}.level = ${this.config[0].value}`; },\n // toDsl: function () { return [`config,task,${device.TaskName},setlevel,${this.config[0].value}`]; }\n // });\n // break;\n case 'Regulator - Level Control':\n result.push({\n group: 'ACTIONS',\n type: `${device.TaskName} - setlevel`,\n inputs: [1],\n outputs: [1],\n config: [{\n name: 'value',\n type: 'number',\n }],\n toString: function () { return `${device.TaskName}.level = ${this.config[0].value}`; },\n toDsl: function () { return [`config,task,${device.TaskName},setlevel,${this.config[0].value}`]; }\n });\n break;\n case 'Extra IO - PCA9685':\n case 'Switch input - PCF8574':\n case 'Switch input - MCP23017':\n fnNames = {\n 'Extra IO - PCA9685': 'PCF',\n 'Switch input - PCF8574': 'PCF',\n 'Switch input - MCP23017': 'MCP',\n };\n fnName = fnNames[device.Type];\n result.push({\n group: 'ACTIONS',\n type: `${device.TaskName} - GPIO`,\n inputs: [1],\n outputs: [1],\n config: [{\n name: 'pin',\n type: 'select',\n values: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16],\n }, {\n name: 'value',\n type: 'select',\n values: [0, 1],\n }],\n toString: function () { return `${device.TaskName}.pin${this.config[0].value} = ${this.config[1].value}`; },\n toDsl: function () { return [`${fnName}GPIO,${this.config[0].value},${this.config[1].value}`]; }\n });\n result.push({\n group: 'ACTIONS',\n type: `${device.TaskName} - Pulse`,\n inputs: [1],\n outputs: [1],\n config: [{\n name: 'pin',\n type: 'select',\n values: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16],\n }, {\n name: 'value',\n type: 'select',\n values: [0, 1],\n },{\n name: 'unit',\n type: 'select',\n values: ['ms', 's'],\n },{\n name: 'duration',\n type: 'number',\n }],\n toString: function () { return `${device.TaskName}.pin${this.config[0].value} = ${this.config[1].value} for ${this.config[3].value}${this.config[2].value}`; },\n toDsl: function () { \n if (this.config[2].value === 's') {\n return [`${fnName}LongPulse,${this.config[0].value},${this.config[1].value},${this.config[2].value}`]; \n } else {\n return [`${fnName}Pulse,${this.config[0].value},${this.config[1].value},${this.config[2].value}`]; \n }\n }\n });\n break;\n case 'Extra IO - ProMini Extender':\n result.push({\n group: 'ACTIONS',\n type: `${device.TaskName} - GPIO`,\n inputs: [1],\n outputs: [1],\n config: [{\n name: 'pin',\n type: 'select',\n values: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16],\n }, {\n name: 'value',\n type: 'select',\n values: [0, 1],\n }],\n toString: function () { return `${device.TaskName}.pin${this.config[0].value} = ${this.config[1].value}`; },\n toDsl: function () { return [`EXTGPIO,${this.config[0].value},${this.config[1].value}`]; }\n });\n break;\n case 'Display - OLED SSD1306':\n case 'Display - LCD2004':\n fnNames = {\n 'Display - OLED SSD1306': 'OLED',\n 'Display - LCD2004': 'LCD',\n };\n fnName = fnNames[device.Type];\n result.push({\n group: 'ACTIONS',\n type: `${device.TaskName} - Write`,\n inputs: [1],\n outputs: [1],\n config: [{\n name: 'row',\n type: 'select',\n values: [1, 2, 3, 4],\n }, {\n name: 'column',\n type: 'select',\n values: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20],\n }, {\n name: 'text',\n type: 'text',\n }],\n toString: function () { return `${device.TaskName}.text = ${this.config[2].value}`; },\n toDsl: function () { return [`${fnName},${this.config[0].value},${this.config[1].value},${this.config[2].value}`]; }\n });\n break;\n case 'Generic - Dummy Device':\n result.push({\n group: 'ACTIONS',\n type: `${device.TaskName} - Write`,\n inputs: [1],\n outputs: [1],\n config: [{\n name: 'variable',\n type: 'select',\n values: taskValues.map(value => value.Name),\n }, {\n name: 'value',\n type: 'text',\n }],\n toString: function () { return `${device.TaskName}.${this.config[0].value} = ${this.config[1].value}`; },\n toDsl: function () { return [`TaskValueSet,${device.TaskNumber},${this.config[0].values.findIndex(this.config[0].value)},${this.config[1].value}`]; }\n });\n break;\n }\n\n return result;\n }).flat();\n\n return { nodes, vars };\n}\n\nexport const getVariables = async () => {\n const urls = ['']; //, 'http://192.168.1.130'\n const vars = {};\n await Promise.all(urls.map(async url => {\n const stat = await getJsonStat(url);\n stat.Sensors.map(device => {\n device.TaskValues.map(value => {\n vars[`${stat.System.Name}@${device.TaskName}#${value.Name}`] = value.Value;\n });\n });\n }));\n return vars;\n}\n\nexport const getDashboardConfigNodes = async (url) => {\n const devices = await loadDevices(url);\n const vars = [];\n const nodes = devices.map(device => {\n device.TaskValues.map(value => vars.push(`${device.TaskName}#${value.Name}`));\n return [];\n }).flat();\n\n return { nodes, vars };\n}\n\nexport const fetchProgress = (url, opts={}) => {\n return new Promise( (res, rej)=>{\n var xhr = new XMLHttpRequest();\n xhr.open(opts.method || 'get', url);\n for (var k in opts.headers||{})\n xhr.setRequestHeader(k, opts.headers[k]);\n xhr.onload = e => res(e.target.responseText);\n xhr.onerror = rej;\n if (xhr.upload && opts.onProgress)\n xhr.upload.onprogress = opts.onProgress; // event.loaded / event.total * 100 ; //event.lengthComputable\n xhr.send(opts.body);\n });\n}\n\nexport const storeFile = async (filename, data, onProgress) => {\n loader.show();\n const file = data ? new File([new Blob([data])], filename) : filename;\n const formData = new FormData();\n formData.append('edit', 1);\n formData.append('file', file);\n \n return await fetchProgress('/upload_json', {\n method: 'post',\n body: formData,\n }, onProgress).then(() => {\n loader.hide();\n miniToastr.success('Successfully saved to flash!', '', 5000);\n }, e => {\n loader.hide();\n miniToastr.error(e.message, '', 5000);\n });\n}\n\nexport const deleteFile = async (filename,) => { \n return await fetch('/filelist?delete='+filename).then(() => {\n miniToastr.success('Successfully saved to flash!', '', 5000);\n }, e => {\n miniToastr.error(e.message, '', 5000);\n });\n}\n\nexport const storeDashboardConfig = async (config) => {\n storeFile('d1.txt', config);\n}\n\nexport const loadDashboardConfig = async (nodes) => {\n return await fetch('/d1.txt').then(response => response.json());\n}\n\nexport const storeRuleConfig = async (config) => {\n storeFile('r1.txt', config);\n}\n\nexport const loadRuleConfig = async () => {\n return await fetch('/r1.txt').then(response => response.json());\n}\n\nexport const storeRule = async (rule) => {\n const formData = new FormData();\n formData.append('set', 1);\n formData.append('rules', rule);\n \n return await fetch('/rules', {\n method: 'post',\n body: formData,\n });\n}\n\n\nexport default {\n getJsonStat, loadDevices, getConfigNodes, getDashboardConfigNodes, getVariables, storeFile, deleteFile, storeDashboardConfig, loadDashboardConfig, storeRuleConfig, loadRuleConfig, storeRule\n}","import { getKeys } from \"./helpers\";\n\n// todo:\n// improve relability of moving elements around\n\n// global config\nconst color = '#000000';\n\nconst saveChart = renderedNodes => {\n // find initial nodes (triggers);\n const triggers = renderedNodes.filter(node => node.inputs.length === 0);\n\n // for each initial node walk the tree and produce one 'rule'\n const result = triggers.map(trigger => {\n const walkRule = rule => {\n return {\n t: rule.type,\n v: rule.config.map(config => config.value),\n o: rule.outputs.map(out => out.lines.map(line => walkRule(line.input.nodeObject))),\n c: [rule.position.x, rule.position.y]\n }\n }\n\n return walkRule(trigger);\n });\n\n return result;\n}\n\nconst loadChart = (config, chart, from) => {\n config.map(config => {\n let node = chart.renderedNodes.find(n => n.position.x === config.c[0] && n.position.y === config.c[1]);\n if (!node) {\n const configNode = chart.nodes.find(n => config.t == n.type);\n node = new NodeUI(chart.canvas, configNode, { x: config.c[0], y: config.c[1] });\n node.config.map((cfg, i) => {\n cfg.value = config.v[i];\n });\n node.render();\n chart.renderedNodes.push(node);\n }\n \n\n if (from) {\n const fromDimension = from.getBoundingClientRect();\n const toDimension = node.inputs[0].getBoundingClientRect();\n const lineSvg = new svgArrow(document.body.clientWidth, document.body.clientHeight, 'none', color);\n chart.canvas.appendChild(lineSvg.element);\n const x1 = fromDimension.x + fromDimension.width;\n const y1 = fromDimension.y + fromDimension.height/2;\n const x2 = toDimension.x;\n const y2 = toDimension.y + toDimension.height/2;\n lineSvg.setPath(x1, y1, x2, y2);\n\n const connection = {\n output: from,\n input: node.inputs[0],\n svg: lineSvg,\n start: { x: x1, y: y1 },\n end: { x: x2, y: y2 },\n };\n node.inputs[0].lines.push(connection);\n from.lines.push(connection);\n }\n\n config.o.map((output, outputI) => {\n loadChart(output, chart, node.outputs[outputI]);\n });\n })\n}\n\nconst exportChart = renderedNodes => {\n // find initial nodes (triggers);\n const triggers = renderedNodes.filter(node => node.group === 'TRIGGERS');\n\n let result = '';\n // for each initial node walk the tree and produce one 'rule'\n triggers.map(trigger => {\n \n const walkRule = (r, i) => {\n const rules = r.toDsl ? r.toDsl() : [];\n let ruleset = '';\n let padding = r.indent ? ' ' : '';\n \n r.outputs.map((out, outI) => {\n let rule = rules[outI] || r.type;\n let subrule = '';\n if (out.lines) {\n out.lines.map(line => {\n subrule += walkRule(line.input.nodeObject, r.indent ? i + 1 : i);\n });\n subrule = subrule.split('\\n').map(line => (padding + line)).filter(line => line.trim() !== '').join('\\n') + '\\n';\n } \n if (rule.includes('%%output%%')) {\n rule = rule.replace('%%output%%', subrule);\n } else {\n rule += subrule;\n }\n ruleset += rule;\n });\n \n return ruleset;\n }\n\n const rule = walkRule(trigger, 0);\n result += rule + \"\\n\\n\";\n });\n\n return result;\n}\n\n// drag and drop helpers\nconst dNd = {\n enableNativeDrag: (nodeElement, data) => {\n nodeElement.draggable = true;\n nodeElement.ondragstart = ev => {\n getKeys(data).map(key => {\n ev.dataTransfer.setData(key, data[key]);\n }); \n }\n }, enableNativeDrop: (nodeElement, fn) => {\n nodeElement.ondragover = ev => {\n ev.preventDefault();\n }\n nodeElement.ondrop = fn;\n }\n}\n\n// svg helpers\nclass svgArrow {\n constructor(width, height, fill, color) {\n this.element = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n this.element.setAttribute('style', 'z-index: -1;position:absolute;top:0px;left:0px');\n this.element.setAttribute('width', width);\n this.element.setAttribute('height', height);\n this.element.setAttributeNS(\"http://www.w3.org/2000/xmlns/\", \"xmlns:xlink\", \"http://www.w3.org/1999/xlink\");\n\n this.line = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n this.line.setAttributeNS(null, \"fill\", fill);\n this.line.setAttributeNS(null, \"stroke\", color);\n this.element.appendChild(this.line);\n }\n\n setPath(x1, y1, x2, y2, tension = 0.5) {\n const delta = (x2-x1)*tension;\n const hx1=x1+delta;\n const hy1=y1;\n const hx2=x2-delta;\n const hy2=y2;\n \n const path = `M ${x1} ${y1} C ${hx1} ${hy1} ${hx2} ${hy2} ${x2} ${y2}`;\n this.line.setAttributeNS(null, \"d\", path);\n }\n}\n\n// node configuration (each node in the left menu is represented by an instance of this object)\nclass Node {\n constructor(conf) {\n this.type = conf.type;\n this.group = conf.group;\n this.config = conf.config.map(config => (Object.assign({}, config)));\n this.inputs = conf.inputs.map(input => {});\n this.outputs = conf.outputs.map(output => {});\n this.toDsl = conf.toDsl;\n this.toString = conf.toString;\n this.toHtml = conf.toHtml;\n this.indent = conf.indent;\n }\n}\n\n// node UI (each node in your flow diagram is represented by an instance of this object)\nclass NodeUI extends Node {\n constructor(canvas, conf, position) {\n super(conf);\n this.canvas = canvas;\n this.position = position;\n this.lines = [];\n this.linesEnd = [];\n this.toDsl = conf.toDsl;\n this.toString = conf.toString;\n this.toHtml = conf.toHtml;\n this.indent = conf.indent;\n }\n\n updateInputsOutputs(inputs, outputs) {\n inputs.map(input => {\n const rect = input.getBoundingClientRect();\n input.lines.map(line => {\n line.end.x = rect.x;\n line.end.y = rect.y + rect.height/2;\n line.svg.setPath(line.start.x, line.start.y, line.end.x, line.end.y);\n });\n });\n outputs.map(output => {\n const rect = output.getBoundingClientRect();\n output.lines.map(line => {\n line.start.x = rect.x + rect.width;\n line.start.y = rect.y + rect.height/2;\n line.svg.setPath(line.start.x, line.start.y, line.end.x, line.end.y);\n });\n });\n }\n\n handleMoveEvent(ev) {\n if (!this.canvas.canEdit) return;\n const shiftX = ev.clientX - this.element.getBoundingClientRect().left;\n const shiftY = ev.clientY - this.element.getBoundingClientRect().top;\n const onMouseMove = ev => {\n const newy = ev.y - shiftY;\n const newx = ev.x - shiftX\n this.position.y = newy - newy % this.canvas.gridSize;\n this.position.x = newx - newx % this.canvas.gridSize;\n this.element.style.top = `${this.position.y}px`;\n this.element.style.left = `${this.position.x}px`; \n this.updateInputsOutputs(this.inputs, this.outputs);\n }\n const onMouseUp = ev => {\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('mouseup', onMouseUp); \n }\n\n document.addEventListener('mousemove', onMouseMove);\n document.addEventListener('mouseup', onMouseUp);\n }\n\n handleDblClickEvent(ev) {\n if (!this.canvas.canEdit) return;\n if (this.config.length)\n showConfigBox(this.type, this.config, () => {\n if (this.toHtml) {\n this.text.innerHTML = this.toHtml();\n } else {\n this.text.textContent = this.toString();\n }\n });\n }\n\n handleRightClickEvent(ev) {\n if (!this.canvas.canEdit) return;\n this.inputs.map(input => {\n input.lines.map(line => {\n line.output.lines = [];\n line.svg.element.parentNode.removeChild(line.svg.element);\n });\n input.lines = [];\n });\n this.outputs.map(output => {\n output.lines.map(line => {\n const index = line.input.lines.indexOf(line);\n line.input.lines.splice(index, 1);\n line.svg.element.parentNode.removeChild(line.svg.element);\n });\n output.lines = [];\n });\n this.element.parentNode.removeChild(this.element);\n if (this.destroy) this.destroy();\n ev.preventDefault();\n ev.stopPropagation();\n return false;\n }\n\n render() {\n this.element = document.createElement('div');\n this.element.nodeObject = this;\n this.element.className = `node node-chart group-${this.group}`;\n\n this.text = document.createElement('span');\n if (this.toHtml) {\n this.text.innerHTML = this.toHtml();\n } else {\n this.text.textContent = this.toString();\n }\n \n this.element.appendChild(this.text);\n\n this.element.style.top = `${this.position.y}px`;\n this.element.style.left = `${this.position.x}px`;\n\n const inputs = document.createElement('div');\n inputs.className = 'node-inputs';\n this.element.appendChild(inputs);\n \n this.inputs.map((val, index) => {\n const input = this.inputs[index] = document.createElement('div');\n input.className = 'node-input';\n input.nodeObject = this;\n input.lines = []\n input.onmousedown = ev => {\n ev.preventDefault();\n ev.stopPropagation();\n }\n inputs.appendChild(input);\n })\n\n const outputs = document.createElement('div');\n outputs.className = 'node-outputs';\n this.element.appendChild(outputs);\n\n this.outputs.map((val, index) => {\n const output = this.outputs[index] = document.createElement('div');\n output.className = 'node-output';\n output.nodeObject = this;\n output.lines = [];\n output.oncontextmenu = ev => {\n output.lines.map(line => {\n line.svg.element.parentNode.removeChild(line.svg.element);\n });\n output.lines = [];\n ev.stopPropagation();\n ev.preventDefault();\n return false;\n }\n output.onmousedown = ev => {\n ev.stopPropagation();\n if (output.lines.length) return;\n const rects = output.getBoundingClientRect();\n const x1 = rects.x + rects.width;\n const y1 = rects.y + rects.height/2;\n\n const lineSvg = new svgArrow(document.body.clientWidth, document.body.clientHeight, 'none', color);\n this.canvas.appendChild(lineSvg.element);\n\n const onMouseMove = ev => {\n lineSvg.setPath(x1, y1, ev.pageX, ev.pageY);\n }\n\n const onMouseUp = ev => {\n const elemBelow = document.elementFromPoint(ev.clientX, ev.clientY);\n const input = elemBelow ? elemBelow.closest('.node-input') : null;\n if (!input) {\n lineSvg.element.remove();\n } else {\n const inputRect = input.getBoundingClientRect();\n const x2 = inputRect.x;\n const y2 = inputRect.y + inputRect.height/2;\n lineSvg.setPath(x1, y1, x2, y2);\n const connection = {\n output,\n input,\n svg: lineSvg,\n start: { x: x1, y: y1 },\n end: { x: x2, y: y2 },\n };\n output.lines.push(connection);\n input.lines.push(connection);\n }\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('mouseup', onMouseUp);\n }\n\n document.addEventListener('mousemove', onMouseMove);\n document.addEventListener('mouseup', onMouseUp);\n }\n outputs.appendChild(output);\n });\n\n this.element.ondblclick = this.handleDblClickEvent.bind(this);\n this.element.onmousedown = this.handleMoveEvent.bind(this);\n this.element.oncontextmenu = this.handleRightClickEvent.bind(this);\n this.canvas.appendChild(this.element);\n }\n}\n\nconst getCfgUI = cfg => {\n const template = document.createElement('template');\n\n const getSelectOptions = val => {\n const selected = val == cfg.value ? 'selected' : '';\n return ``;\n }\n\n switch (cfg.type) {\n case 'text':\n template.innerHTML = `
    `;\n break;\n case 'number':\n template.innerHTML = `
    `;\n break;\n case 'select':\n template.innerHTML = `
    `;\n break;\n case 'textselect':\n template.innerHTML = `
    \n \n \n \n
    `\n }\n return template.content.cloneNode(true);\n}\n\nconst showConfigBox = (type, config, onclose) => {\n const template = document.createElement('template');\n template.innerHTML = `\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n `;\n\n document.body.appendChild(template.content.cloneNode(true));\n const configBox = document.body.querySelectorAll('.configbox')[0];\n const body = document.body.querySelectorAll('.configbox-body')[0];\n const okButton = document.getElementById('ob');\n const cancelButton = document.getElementById('cb');\n cancelButton.onclick = () => {\n configBox.remove();\n }\n okButton.onclick = () => {\n // set configuration to node\n config.map(cfg => {\n cfg.value = document.forms['configform'].elements[cfg.name].value;\n });\n configBox.remove();\n onclose();\n }\n config.map(cfg => {\n const cfgUI = getCfgUI(cfg);\n body.appendChild(cfgUI);\n })\n}\n\nexport class FlowEditor {\n constructor(element, nodes, config) {\n this.nodes = [];\n this.renderedNodes = [];\n this.onSave = config.onSave;\n this.canEdit = !config.readOnly;\n this.debug = config.debug!= null ? config.debug : true;\n this.gridSize = config.gridSize || 1;\n\n this.element = element;\n\n nodes.map(nodeConfig => {\n const node = new Node(nodeConfig);\n this.nodes.push(node);\n });\n this.render();\n\n if (this.canEdit)\n dNd.enableNativeDrop(this.canvas, ev => {\n const configNode = this.nodes.find(node => node.type == ev.dataTransfer.getData('type'));\n let node = new NodeUI(this.canvas, configNode, { x: ev.x, y: ev.y });\n node.render();\n node.destroy = () => {\n this.renderedNodes.splice( this.renderedNodes.indexOf(node), 1 );\n node = null;\n }\n this.renderedNodes.push(node); \n });\n }\n\n loadConfig(config) {\n loadChart(config, this);\n }\n\n saveConfig() {\n return saveChart(this.renderedNodes);\n }\n\n renderContainers() {\n if (this.canEdit) {\n this.sidebar = document.createElement('div');\n this.sidebar.className = 'sidebar';\n this.element.appendChild(this.sidebar);\n }\n\n this.canvas = document.createElement('div');\n this.canvas.className = 'canvas';\n this.canvas.canEdit = this.canEdit;\n this.canvas.gridSize = this.gridSize;\n this.element.appendChild(this.canvas);\n\n if (this.canEdit && this.debug) {\n this.debug = document.createElement('div');\n this.debug.className = 'debug';\n\n const text = document.createElement('div');\n this.debug.appendChild(text);\n\n const saveBtn = document.createElement('button');\n saveBtn.textContent = 'SAVE';\n saveBtn.onclick = () => {\n const config = JSON.stringify(saveChart(this.renderedNodes));\n const rules = exportChart(this.renderedNodes);\n this.onSave(config, rules);\n }\n\n const loadBtn = document.createElement('button');\n loadBtn.textContent = 'LOAD';\n loadBtn.onclick = () => {\n const input = prompt('enter config');\n loadChart(JSON.parse(input), this);\n }\n\n const exportBtn = document.createElement('button');\n exportBtn.textContent = 'EXPORT';\n exportBtn.onclick = () => {\n const exported = exportChart(this.renderedNodes);\n text.textContent = exported;\n }\n this.debug.appendChild(exportBtn);\n this.debug.appendChild(saveBtn);\n this.debug.appendChild(loadBtn);\n this.debug.appendChild(text);\n this.element.appendChild(this.debug);\n }\n \n }\n\n renderConfigNodes() {\n const groups = {};\n this.nodes.map(node => {\n if (!groups[node.group]) {\n const group = document.createElement('div');\n group.className = 'group';\n group.textContent = node.group;\n this.sidebar.appendChild(group);\n groups[node.group] = group;\n }\n const nodeElement = document.createElement('div');\n nodeElement.className = `node group-${node.group}`;\n nodeElement.textContent = node.type;\n groups[node.group].appendChild(nodeElement);\n\n dNd.enableNativeDrag(nodeElement, { type: node.type });\n })\n }\n\n render() {\n this.renderContainers();\n if (this.canEdit) this.renderConfigNodes();\n }\n}","import get from 'lodash/get';\r\nimport set from 'lodash/set';\r\n\r\n// const get = (obj, path, defaultValue) => path.replace(/\\[/g, '.').replace(/\\]/g, '').split(\".\")\r\n// .reduce((a, c) => (a && a[c] ? a[c] : (defaultValue || null)), obj)\r\n\r\n// const set = (obj, path, value) => {\r\n// path.replace(/\\[/g, '.').replace(/\\]/g, '').split('.').reduce((a, c, i, src) => {\r\n// if (!a[c]) a[c] = {};\r\n// if (i === src.length - 1) a[c] = value;\r\n// }, obj)\r\n// }\r\n\r\nconst getKeys = object => {\r\n const keys = [];\r\n for (let key in object) {\r\n if (object.hasOwnProperty(key)) {\r\n keys.push(key);\r\n }\r\n }\r\n return keys;\r\n}\r\n\r\nexport { get, set, getKeys }","class Loader {\r\n constructor() {\r\n this.loader = document.querySelector('.loading');\r\n }\r\n\r\n show() {\r\n this.loader.classList.add('show');\r\n }\r\n\r\n hide() {\r\n this.loader.classList.add('hide');\r\n setTimeout(() => {\r\n this.loader.classList.remove('hide');\r\n this.loader.classList.remove('show');\r\n }, 1000);\r\n }\r\n}\r\n\r\nexport const loader = new Loader();","import { \n ConfigPage, \n DevicesPage, \n DevicesEditPage, \n ControllersPage, \n ControllerEditPage, \n ControllerNotificationsPage,\n ConfigAdvancedPage, \n ConfigHardwarePage, \n RebootPage, \n LoadPage, \n RulesPage, \n UpdatePage, \n ToolsPage, \n FSPage, \n FactoryResetPage, \n DiscoverPage, \n DiffPage, \n RulesEditorPage, \n SetupPage,\n SysVarsPage\n} from '../pages';\n\nimport { saveConfig } from '../conf/config.dat';\n\nclass Menus {\n constructor() {\n this.menus = [];\n this.routes = [];\n\n this.addMenu = (menu) => {\n this.menus.push(menu);\n this.addRoute(menu);\n }\n\n this.addRoute = (route) => {\n this.routes.push(route);\n if (route.children) {\n route.children.forEach(child => this.routes.push(child));\n }\n }\n }\n \n}\n\nconst menus = [\n { title: 'Devices', href: 'devices', component: DevicesPage, children: [] },\n { title: 'Controllers', href: 'controllers', component: ControllersPage, children: [] },\n { title: 'Automation', href: 'rules', component: RulesEditorPage, class: 'full', children: [] },\n { title: 'Config', href: 'config', component: ConfigPage, children: [\n { title: 'Hardware', href: 'config/hardware', component: ConfigHardwarePage },\n { title: 'Advanced', href: 'config/advanced', component: ConfigAdvancedPage },\n { title: 'Rules', href: 'config/rules', component: RulesPage },\n { title: 'Save', href: 'config/save', action: saveConfig },\n { title: 'Load', href: 'config/load', component: LoadPage },\n { title: 'Reboot', href: 'config/reboot', component: RebootPage },\n { title: 'Factory Reset', href: 'config/factory', component: FactoryResetPage },\n ] },\n { title: 'Tools', href: 'tools', component: ToolsPage, children: [\n { title: 'Discover', href: 'tools/discover', component: DiscoverPage },\n { title: 'Info', href: 'tools/sysinfo', component: SysVarsPage },\n { title: 'Update', href: 'tools/update', component: UpdatePage },\n { title: 'Filesystem', href: 'tools/fs', component: FSPage },\n ] },\n];\n\nconst routes = [\n { title: 'Edit Controller', href:'controllers/edit', component: ControllerEditPage },\n { title: 'Edit Notification', href:'controllers/notification', component: ControllerNotificationsPage },\n { title: 'Edit Device', href:'devices/edit', component: DevicesEditPage },\n { title: 'Save to Flash', href:'tools/diff', component: DiffPage },\n { title: 'Setup', href: 'config/setup', component: SetupPage }\n];\n\nconst menu = new Menus();\nroutes.forEach(menu.addRoute);\nmenus.forEach(menu.addMenu)\n\nexport { menu };","export const nodes = [\n // TRIGGERS\n {\n group: 'TRIGGERS',\n type: 'timer',\n inputs: [],\n outputs: [1],\n config: [{\n name: 'timer',\n type: 'select',\n values: [1, 2, 3, 4, 5, 6, 7, 8],\n }],\n indent: true,\n toString: function () { return `timer ${this.config[0].value}`; },\n toDsl: function () { return [`on Rules#Timer=${this.config[0].value} do\\n%%output%%\\nEndon\\n`]; }\n }, {\n group: 'TRIGGERS',\n type: 'event',\n inputs: [],\n outputs: [1],\n config: [{\n name: 'name',\n type: 'text',\n }],\n indent: true,\n toString: function () { return `event ${this.config[0].value}`; },\n toDsl: function () { return [`on ${this.config[0].value} do\\n%%output%%\\nEndon\\n`]; }\n }, {\n group: 'TRIGGERS',\n type: 'clock',\n inputs: [],\n outputs: [1],\n config: [],\n indent: true,\n toString: () => { return 'clock'; },\n toDsl: () => { return ['on Clock#Time do\\n%%output%%\\nEndon\\n']; }\n }, {\n group: 'TRIGGERS',\n type: 'system boot',\n inputs: [],\n outputs: [1],\n config: [],\n indent: true,\n toString: function() {\n return `on boot`;\n },\n toDsl: function() {\n return [`On System#Boot do\\n%%output%%\\nEndon\\n`];\n }\n }, {\n group: 'TRIGGERS',\n type: 'Device',\n inputs: [],\n outputs: [1],\n config: [],\n indent: true,\n toString: function() {\n return `on boot`;\n },\n toDsl: function() {\n return [`On Device#Value do\\n%%output%%\\nEndon\\n`];\n }\n }, \n // LOGIC\n {\n group: 'LOGIC',\n type: 'if/else',\n inputs: [1],\n outputs: [1, 2],\n config: [{\n name: 'variable',\n type: 'textselect',\n values: ['Clock#Time'],\n },{\n name: 'equality',\n type: 'select',\n values: ['=', '<', '>', '<=', '>=', '!=']\n },{\n name: 'value',\n type: 'text',\n }],\n indent: true,\n toString: function() {\n return `IF ${this.config[0].value}${this.config[1].value}${this.config[2].value}`;\n },\n toDsl: function() {\n return [`If [${this.config[0].value}]${this.config[1].value}${this.config[2].value}\\n%%output%%`, `Else\\n%%output%%\\nEndif`];\n }\n }, {\n group: 'LOGIC',\n type: 'delay',\n inputs: [1],\n outputs: [1],\n config: [{\n name: 'delay',\n type: 'number',\n }],\n toString: function() {\n return `delay: ${this.config[0].value}`;\n },\n toDsl: function() {\n return [`Delay ${this.config[0].value}\\n`];\n }\n },\n // ACTIONS\n {\n group: 'ACTIONS',\n type: 'GPIO',\n inputs: [1],\n outputs: [1],\n config: [{\n name: 'gpio',\n type: 'select',\n values: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16],\n }, {\n name: 'value',\n type: 'select',\n values: [0, 1],\n }],\n toString: function() {\n return `GPIO ${this.config[0].value}, ${this.config[1].value}`;\n },\n toDsl: function() {\n return [`GPIO,${this.config[0].value},${this.config[1].value}\\n`];\n }\n }, {\n group: 'ACTIONS',\n type: 'Pulse',\n inputs: [1],\n outputs: [1],\n config: [{\n name: 'gpio',\n type: 'select',\n values: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16],\n value: 0\n }, {\n name: 'value',\n type: 'select',\n values: [0, 1],\n value: 1\n }, {\n name: 'unit',\n type: 'select',\n values: ['s', 'ms'],\n value: 'ms',\n }, {\n name: 'duration',\n type: 'number',\n value: 1000\n }],\n toString: function() {\n return `Pulse ${this.config[0].value}=${this.config[1].value} for ${this.config[3].value}${this.config[2].value}`;\n },\n toDsl: function() {\n const fn = this.config[2].value === 's' ? 'LongPulse' : 'Pulse';\n return [`${fn},${this.config[0].value},${this.config[1].value},${this.config[2].value}\\n`];\n }\n }, {\n group: 'ACTIONS',\n type: 'PWM',\n inputs: [1],\n outputs: [1],\n config: [{\n name: 'gpio',\n type: 'select',\n values: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],\n value: 0\n }, {\n name: 'value',\n type: 'number',\n value: 1023,\n }],\n toString: function() {\n return `PWM.GPIO${this.config[0].value} = ${this.config[1].value}`;\n },\n toDsl: function() {\n return [`PWM,${this.config[0].value},${this.config[1].value}\\n`];\n }\n }, {\n group: 'ACTIONS',\n type: 'SERVO',\n inputs: [1],\n outputs: [1],\n config: [{\n name: 'gpio',\n type: 'select',\n values: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],\n value: 0\n }, {\n name: 'servo',\n type: 'select',\n values: [1, 2],\n value: 0\n }, {\n name: 'position',\n type: 'number',\n value: 90,\n }],\n toString: function() {\n return `SERVO.GPIO${this.config[0].value} = ${this.config[2].value}`;\n },\n toDsl: function() {\n return [`Servo,${this.config[1].value},${this.config[0].value},${this.config[2].value}\\n`];\n }\n }, {\n group: 'ACTIONS',\n type: 'fire event',\n inputs: [1],\n outputs: [1],\n config: [{\n name: 'name',\n type: 'text'\n }],\n toString: function() {\n return `event ${this.config[0].value}`;\n },\n toDsl: function() {\n return [`event,${this.config[0].value}\\n`];\n }\n }, {\n group: 'ACTIONS',\n type: 'settimer',\n inputs: [1],\n outputs: [1],\n config: [{\n name: 'timer',\n type: 'select',\n values: [1, 2, 3, 4, 5, 6, 7, 8],\n }, {\n name: 'value',\n type: 'number'\n }],\n toString: function() {\n return `timer${this.config[0].value} = ${this.config[1].value}`;\n },\n toDsl: function() {\n return [`timerSet,${this.config[0].value},${this.config[1].value}\\n`];\n }\n }, {\n group: 'ACTIONS',\n type: 'MQTT',\n inputs: [1],\n outputs: [1],\n config: [{\n name: 'topic',\n type: 'text',\n }, {\n name: 'command',\n type: 'text',\n }],\n toString: function() {\n return `mqtt ${this.config[1].value}`;\n },\n toDsl: function() {\n return [`Publish ${this.config[0].value},${this.config[1].value}\\n`];\n }\n }, {\n group: 'ACTIONS',\n type: 'UDP',\n inputs: [1],\n outputs: [1],\n config: [{\n name: 'ip',\n type: 'text',\n }, {\n name: 'port',\n type: 'number',\n }, {\n name: 'command',\n type: 'text',\n }],\n toString: function() {\n return `UDP ${this.config[1].value}`;\n },\n toDsl: function() {\n return [`SendToUDP ${this.config[0].value},${this.config[1].value},${this.config[2].value}\\n`];\n }\n }, {\n group: 'ACTIONS',\n type: 'HTTP',\n inputs: [1],\n outputs: [1],\n config: [{\n name: 'host',\n type: 'text',\n }, {\n name: 'port',\n type: 'number',\n value: 80\n }, {\n name: 'url',\n type: 'text',\n }],\n toString: function() {\n return `HTTP ${this.config[2].value}`;\n },\n toDsl: function() {\n return [`SentToHTTP ${this.config[0].value},${this.config[1].value},${this.config[2].value}\\n`];\n }\n }, {\n group: 'ACTIONS',\n type: 'ESPEASY',\n inputs: [1],\n outputs: [1],\n config: [{\n name: 'device',\n type: 'number',\n }, {\n name: 'command',\n type: 'text',\n }],\n toString: function() {\n return `mqtt ${this.config[1].value}`;\n },\n toDsl: function() {\n return [`SendTo ${this.config[0].value},${this.config[1].value}\\n`];\n }\n }\n]","import { get, set } from './helpers';\r\n\r\nclass DataParser {\r\n constructor(data) {\r\n this.view = new DataView(data);\r\n this.offset = 0;\r\n this.bitbyte = 0;\r\n this.bitbytepos = 7;\r\n }\r\n\r\n pad(nr) {\r\n while (this.offset % nr) {\r\n this.offset++;\r\n }\r\n }\r\n\r\n bit(signed = false, write = false, val) {\r\n if (this.bitbytepos === 7) {\r\n if (!write) {\r\n this.bitbyte = this.byte();\r\n this.bitbytepos = 0;\r\n } else {\r\n this.byte(signed, write, this.bitbyte);\r\n }\r\n }\r\n if (!write) {\r\n return (this.bitbyte >> this.bitbytepos++) & 1;\r\n } else {\r\n this.bitbyte = val ? (this.bitbyte | (1 << this.bitbytepos++)) : (this.bitbyte & ~(1 << this.bitbytepos++));\r\n }\r\n }\r\n\r\n byte(signed = false, write = false, val) {\r\n this.pad(1);\r\n const fn = `${write ? 'set' : 'get'}${signed ? 'Int8' : 'Uint8'}`;\r\n const res = this.view[fn](this.offset, val);\r\n this.offset += 1;\r\n return res;\r\n }\r\n\r\n int16(signed = false, write = false, val) {\r\n this.pad(2);\r\n let fn = signed ? 'Int16' : 'Uint16';\r\n const res = write ? this.view[`set${fn}`](this.offset, val, true) : this.view[`get${fn}`](this.offset, true);\r\n this.offset += 2;\r\n return res;\r\n }\r\n\r\n int32(signed = false, write = false, val) {\r\n this.pad(4);\r\n let fn = signed ? 'Int32' : 'Uint32';\r\n const res = write ? this.view[`set${fn}`](this.offset, val, true) : this.view[`get${fn}`](this.offset, true);\r\n this.offset += 4;\r\n return res;\r\n }\r\n float(signed = false, write = false, val) {\r\n this.pad(4);\r\n const res = write ? this.view.setFloat32(this.offset, val, true) : this.view.getFloat32(this.offset, true);\r\n this.offset += 4;\r\n return res;\r\n }\r\n bytes(nr, signed = false, write = false, vals) {\r\n const res = [];\r\n for (var x = 0; x < nr; x++) {\r\n res.push(this.byte(signed, write, vals ? vals[x] : null));\r\n }\r\n return res;\r\n }\r\n ints(nr, signed = false, write = false, vals) {\r\n const res = [];\r\n for (var x = 0; x < nr; x++) {\r\n res.push(this.int16(signed, write, vals ? vals[x] : null));\r\n }\r\n return res;\r\n }\r\n longs(nr, signed = false, write = false, vals) {\r\n const res = [];\r\n for (var x = 0; x < nr; x++) {\r\n res.push(this.int32(signed, write, vals ? vals[x] : null));\r\n }\r\n return res;\r\n }\r\n floats(nr, signed = false, write = false, vals) {\r\n const res = [];\r\n for (var x = 0; x < nr; x++) {\r\n res.push(this.float(write, vals ? vals[x] : null));\r\n }\r\n return res;\r\n }\r\n string(nr, signed = false, write = false, val) {\r\n if (write) {\r\n for (var i = 0; i < nr; ++i) {\r\n var code = val.charCodeAt(i) || '\\0';\r\n this.byte(false, true, code);\r\n }\r\n } else {\r\n const res = this.bytes(nr);\r\n return String.fromCharCode.apply(null, res).replace(/\\x00/g, '');\r\n }\r\n }\r\n}\r\n\r\nexport const parseConfig = (data, config, start) => {\r\n const p = new DataParser(data);\r\n if (start) p.offset = start;\r\n const result = {};\r\n config.map(value => {\r\n const prop = value.length ? value.length : value.signed;\r\n set(result, value.prop, p[value.type](prop, value.signed));\r\n });\r\n return result;\r\n}\r\n\r\nexport const writeConfig = (buffer, data, config, start) => {\r\n const p = new DataParser(buffer);\r\n if (start) p.offset = start;\r\n config.map(value => {\r\n const val = get(data, value.prop);\r\n if (value.length) {\r\n p[value.type](value.length, value.signed, true, val);\r\n } else {\r\n p[value.type](value.signed, true, val);\r\n }\r\n });\r\n}","import { settings } from './settings';\nimport espeasy from './espeasy';\nimport { loader } from './loader';\nimport { menu } from './menu';\n\nconst PLUGINS = [\n 'http://localhost:8080/build/dash.js'\n];\n\nconst dynamicallyLoadScript = (url) => {\n return new Promise(resolve => {\n var script = document.createElement(\"script\"); // create a script DOM node\n script.src = url; // set its src to the provided URL\n script.onreadystatechange = resolve;\n script.onload = resolve;\n script.onerror = resolve;\n document.head.appendChild(script); // add it to the end of the head section of the page (could change 'head' to 'body' to add it to the end of the body section instead)\n });\n}\n\nconst getPluginAPI = () => {\n return {\n settings,\n loader,\n menu,\n espeasy,\n }\n}\n\nwindow.getPluginAPI = getPluginAPI;\n\nexport const loadPlugins = async () => {\n return Promise.all(PLUGINS.map(async plugin => {\n return dynamicallyLoadScript(plugin);\n }));\n}","import { get, set, getKeys } from './helpers';\r\n\r\nconst diff = (obj1, obj2, path = '') => {\r\n return getKeys(obj1).map(key => {\r\n const val1 = obj1[key];\r\n const val2 = obj2[key];\r\n if (val1 instanceof Object) return diff(val1, val2, path ? `${path}.${key}` : key);\r\n else if (val1 !== val2) {\r\n return [{ path: `${path}.${key}`, val1, val2 }];\r\n } else return [];\r\n }).flat();\r\n}\r\n\r\nclass Settings {\r\n init(settings) {\r\n this.settings = settings;\r\n this.apply();\r\n }\r\n\r\n get(prop) {\r\n return get(this.settings, prop);\r\n }\r\n\r\n /**\r\n * sets changes to the current version and sets changed flag\r\n * @param {*} prop \r\n * @param {*} value \r\n */\r\n set(prop, value) {\r\n const obj = get(this.settings, prop);\r\n if (typeof obj === 'object') {\r\n console.warn('settings an object!');\r\n set(this.settings, prop, value);\r\n } else {\r\n set(this.settings, prop, value);\r\n }\r\n \r\n if (this.diff().length) this.changed = true;\r\n }\r\n\r\n /**\r\n * returns diff between applied and current version\r\n */\r\n diff() {\r\n return diff(this.stored, this.settings);\r\n }\r\n\r\n /***\r\n * applys changes and creates new version in localStorage\r\n */\r\n apply() {\r\n this.stored = JSON.parse(JSON.stringify(this.settings));\r\n this.changed = false;\r\n }\r\n}\r\n\r\nexport const settings = window.settings1 = new Settings();","import { h, Component } from 'preact';\r\nimport { Form } from '../components/form';\r\nimport { settings } from '../lib/settings';\r\n\r\nconst logLevelOptions = [\r\n { name: 'None', value: 0 },\r\n { name: 'Error', value: 1 },\r\n { name: 'Info', value: 2 },\r\n { name: 'Debug', value: 3 },\r\n { name: 'Debug More', value: 4 },\r\n { name: 'Debug Dev', value: 9 },\r\n];\r\n\r\nconst formConfig = {\r\n onSave: (vals) => { console.log(vals); },\r\n groups: {\r\n rules: {\r\n name: 'Rules Settings',\r\n configs: {\r\n enabled: { name: 'Enabled', type: 'checkbox' },\r\n oldengine: { name: 'Old Engine', type: 'checkbox' },\r\n }\r\n },\r\n mqtt: {\r\n name: 'Controller Settings',\r\n configs: {\r\n retain_flag: { name: 'MQTT Retain Msg', type: 'checkbox' },\r\n interval: { name: 'Message Interval', type: 'number' },\r\n useunitname: { name: 'MQTT use unit name as ClientId', type: 'checkbox' },\r\n changeclientid: { name: 'MQTT change ClientId at reconnect', type: 'checkbox' },\r\n }\r\n },\r\n ntp: {\r\n name: 'NTP Settings',\r\n configs: {\r\n enabled: { name: 'Use NTP', type: 'checkbox' },\r\n host: { name: 'NTP Hostname', type: 'string' },\r\n }\r\n },\r\n dst: {\r\n name: 'DST Settings',\r\n configs: {\r\n enabled: { name: 'Use DST', type: 'checkbox' },\r\n }\r\n },\r\n location: {\r\n name: 'Location Settings',\r\n configs: {\r\n long: { name: 'Longitude', type: 'number' },\r\n lat: { name: 'Latitude', type: 'number' },\r\n }\r\n },\r\n log: {\r\n name: 'Log Settings',\r\n configs: {\r\n syslog_ip: { name: 'Syslog IP', type: 'ip' },\r\n syslog_level: { name: 'Syslog Level', type: 'select', options: logLevelOptions },\r\n syslog_facility: { name: 'Syslog Level', type: 'select', options: [\r\n { name: 'Kernel', value: 0 },\r\n { name: 'User', value: 1 },\r\n { name: 'Daemon', value: 3 },\r\n { name: 'Message', value: 5 },\r\n { name: 'Local0', value: 16 },\r\n { name: 'Local1', value: 17 },\r\n { name: 'Local2', value: 18 },\r\n { name: 'Local3', value: 19 },\r\n { name: 'Local4', value: 20 },\r\n { name: 'Local5', value: 21 },\r\n { name: 'Local6', value: 22 },\r\n { name: 'Local7', value: 23 },\r\n ] },\r\n serial_level: { name: 'Serial Level', type: 'select', options: logLevelOptions },\r\n web_level: { name: 'Web Level', type: 'select', options: logLevelOptions },\r\n }\r\n },\r\n serial: {\r\n name: 'Serial Settings',\r\n configs: {\r\n enabled: { name: 'Enable Serial', type: 'checkbox' },\r\n baudrate: { name: 'Baud Rate', type: 'number' },\r\n }\r\n },\r\n experimental: {\r\n name: 'Experimental Settings',\r\n configs: {\r\n ip_octet: { name: 'Fixed IP Octet', type: 'number' },\r\n WDI2CAddress: { name: 'WD I2C Address', type: 'number' },\r\n ssdp: { name: 'Use SSDP', type: 'checkbox', var: 'ssdp.enabled' },\r\n ConnectionFailuresThreshold: { name: 'Connection Failiure Treshold', type: 'number' },\r\n WireClockStretchLimit: { name: 'I2C ClockStretchLimit', type: 'number' },\r\n }\r\n }\r\n },\r\n}\r\n\r\nexport class ConfigAdvancedPage extends Component {\r\n render(props) {\r\n formConfig.onSave = (values) => {\r\n settings.set('config', values);\r\n window.location.href='#devices';\r\n }\r\n return (\r\n
    \r\n );\r\n }\r\n}","import { h, Component } from 'preact';\r\nimport { Form } from '../components/form';\r\nimport { settings } from '../lib/settings';\r\n\r\nexport const pins = [\r\n { name: 'None', value: 255 },\r\n { name: 'GPIO-0', value: 0 },\r\n { name: 'GPIO-1', value: 1 },\r\n { name: 'GPIO-2', value: 2 },\r\n { name: 'GPIO-3', value: 3 },\r\n { name: 'GPIO-4', value: 4 },\r\n { name: 'GPIO-5', value: 5 },\r\n { name: 'GPIO-9', value: 9 },\r\n { name: 'GPIO-10', value: 10 },\r\n { name: 'GPIO-12', value: 12 },\r\n { name: 'GPIO-13', value: 13 },\r\n { name: 'GPIO-14', value: 14 },\r\n { name: 'GPIO-15', value: 15 },\r\n { name: 'GPIO-16', value: 16 }\r\n];\r\n\r\nconst pinState = [\r\n { name: 'Default', value: 0 },\r\n { name: 'Low', value: 1 },\r\n { name: 'High', value: 2 },\r\n { name: 'Input', value: 3 },\r\n];\r\n\r\nconst formConfig = {\r\n groups: {\r\n led: {\r\n name: 'WiFi Status LED',\r\n configs: {\r\n gpio: { name: 'GPIO --> LED', type: 'select', options: pins },\r\n inverse: { name: 'Inversed LED', type: 'checkbox' },\r\n }\r\n },\r\n reset: {\r\n name: 'Reset Pin',\r\n configs: {\r\n pin: { name: 'GPIO <-- Switch', type: 'select', options: pins },\r\n }\r\n },\r\n i2c: {\r\n name: 'I2C Settings',\r\n configs: {\r\n sda: { name: 'GPIO - SDA', type: 'select', options: pins },\r\n scl: { name: 'GPIO - SCL', type: 'select', options: pins },\r\n }\r\n },\r\n spi: {\r\n name: 'SPI Settings',\r\n configs: {\r\n enabled: { name: 'Init SPI', type: 'checkbox' },\r\n }\r\n },\r\n gpio: {\r\n name: 'GPIO boot states',\r\n configs: {\r\n 0: { name: 'Pin Mode GPIO-0', type: 'select', options: pinState },\r\n 1: { name: 'Pin Mode GPIO-1', type: 'select', options: pinState },\r\n 2: { name: 'Pin Mode GPIO-2', type: 'select', options: pinState },\r\n 3: { name: 'Pin Mode GPIO-3', type: 'select', options: pinState },\r\n 4: { name: 'Pin Mode GPIO-4', type: 'select', options: pinState },\r\n 5: { name: 'Pin Mode GPIO-5', type: 'select', options: pinState },\r\n 9: { name: 'Pin Mode GPIO-9', type: 'select', options: pinState },\r\n 10: { name: 'Pin Mode GPIO-10', type: 'select', options: pinState },\r\n 12: { name: 'Pin Mode GPIO-12', type: 'select', options: pinState },\r\n 13: { name: 'Pin Mode GPIO-13', type: 'select', options: pinState },\r\n 14: { name: 'Pin Mode GPIO-14', type: 'select', options: pinState },\r\n 15: { name: 'Pin Mode GPIO-15', type: 'select', options: pinState },\r\n }\r\n }\r\n },\r\n}\r\n\r\nexport class ConfigHardwarePage extends Component {\r\n render(props) {\r\n const config = settings.get('hardware');\r\n formConfig.onSave = (values) => {\r\n settings.set('hardware', values);\r\n window.location.href='#devices';\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n}","import { h, Component } from 'preact';\r\nimport { Form } from '../components/form';\r\nimport { settings } from '../lib/settings';\r\n\r\nconst ipBlockLevel = [\r\n { name: 'Allow All', value: 0 },\r\n { name: 'Allow Local Subnet', value: 1 },\r\n { name: 'Allow IP Range', value: 2 },\r\n]\r\n\r\nconst formConfig = {\r\n groups: {\r\n general: {\r\n name: 'General',\r\n configs: {\r\n unitname: { name: 'Unit Name', type: 'string' },\r\n unitnr: { name: 'Unit Number', type: 'number' },\r\n appendunit: { name: 'Append Unit Name to Hostname', type: 'checkbox' },\r\n password: { name: 'Admin Password', type: 'password', var: 'security[0].password' },\r\n }\r\n },\r\n wifi: {\r\n name: 'WiFi',\r\n configs: {\r\n ssid: { name: 'SSID', type: 'string', var: 'security[0].WifiSSID' },\r\n passwd: { name: 'Password', type: 'password', var: 'security[0].WifiKey' },\r\n fallbackssid: { name: 'Fallback SSID', type: 'string', var: 'security[0].WifiSSID2' },\r\n fallbackpasswd: { name: 'Fallback Password', type: 'password', var: 'security[0].WifiKey2' },\r\n wpaapmode: { name: 'WPA AP Mode Key:', type: 'string', var: 'security[0].WifiAPKey' },\r\n }\r\n },\r\n clientIP: {\r\n name: 'Client IP Filtering',\r\n configs: {\r\n blocklevel: { name: 'IP Block Level', type: 'select', options: ipBlockLevel, var: 'security[0].IPblockLevel' },\r\n lowerrange: { name: 'Access IP lower range', type: 'ip', var: 'security[0].AllowedIPrangeLow' },\r\n upperrange: { name: 'Access IP upper range', type: 'ip', var: 'security[0].AllowedIPrangeHigh' },\r\n }\r\n },\r\n IP: {\r\n name: 'IP Settings',\r\n configs: {\r\n ip: { name: 'IP', type: 'ip' },\r\n gw: { name: 'Gateway', type: 'ip' },\r\n subnet: { name: 'Subnet', type: 'ip' },\r\n dns: { name: 'DNS', type: 'ip' },\r\n }\r\n },\r\n sleep: {\r\n name: 'Sleep Mode',\r\n configs: {\r\n awaketime: { name: 'Sleep awake time', type: 'number' },\r\n sleeptime: { name: 'Sleep time', type: 'number' },\r\n sleeponfailiure: { name: 'Sleep on connection failure', type: 'checkbox' },\r\n }\r\n }\r\n },\r\n}\r\n\r\nexport class ConfigPage extends Component {\r\n render(props) {\r\n formConfig.onSave = (values) => {\r\n settings.set(`config`, values);\r\n window.location.href='#devices';\r\n }\r\n const config = settings.get('config');\r\n return (\r\n \r\n );\r\n }\r\n}","import { h, Component } from 'preact';\r\nimport { Form } from '../components/form';\r\nimport { settings } from '../lib/settings';\r\nimport { set } from '../lib/helpers';\r\nimport { EspEaspP2PComponent } from '../components/espeasy_p2p';\r\n\r\nexport const protocols = [\r\n { name: '- Standalone -', value: 0 },\r\n { name: 'Domoticz HTTP', value: 1 },\r\n { name: 'Domoticz MQTT', value: 2 },\r\n { name: 'Nodo Telnet', value: 3 },\r\n { name: 'ThingSpeak', value: 4 },\r\n { name: 'OpenHAB MQTT', value: 5 },\r\n { name: 'PiDome MQTT', value: 6 },\r\n { name: 'Emoncms', value: 7 },\r\n { name: 'Generic HTTP', value: 8 },\r\n { name: 'FHEM HTTP', value: 9 },\r\n { name: 'Generic UDP', value: 10 },\r\n { name: 'ESPEasy P2P Networking', value: 13 },\r\n { name: 'Email', value: 25 },\r\n];\r\n\r\nconst baseFields = { \r\n \r\n dns: { name: 'Locate Controller', type: 'select', options: [{ value: 0, name: 'Use IP Address'}, { value: 1, name: 'Use Hostname' }] },\r\n IP: { name: 'IP', type: 'ip' },\r\n hostname: { name: 'Hostname', type: 'string' },\r\n port: { name: 'Port', type: 'number' },\r\n minimal_time_between: { name: 'Minimum Send Interval', type: 'number' },\r\n max_queue_depth: { name: 'Max Queue Depth', type: 'number' },\r\n max_retry: { name: 'Max Retries', type: 'number' },\r\n delete_oldest: { name: 'Full Queue Action', type: 'select', options: [{ value: 0, name: 'Ignore New'}, { value: 1, name: 'Delete Oldest' }] },\r\n must_check_reply: { name: 'Check Reply', type: 'select', options: [{ value: 0, name: 'Ignore Acknowledgement'}, { value: 1, name: 'Check Acknowledgement' }] },\r\n client_timeout: { name: 'Client Timeout', type: 'number' },\r\n};\r\n\r\nconst user = { name: 'Controller User', type: 'string' };\r\nconst password = { name: 'Controller Password', type: 'password' };\r\nconst subscribe = { name: 'Controller Subscribe', type: 'string' };\r\nconst publish = { name: 'Controller Publish', type: 'string' };\r\nconst lwtTopicField = { MQTT_lwt_topic: { name: 'Controller LWT topic:', type: 'string' }, lwt_message_connect: { name: 'LWT Connect Message', type: 'string' }, lwt_message_disconnect: { name: 'LWT Disconnect Message', type: 'string' }, };\r\n\r\nconst baseDefaults = {\r\n port: 1883,\r\n minimal_time_between: 100,\r\n max_queue_depth: 10,\r\n max_retry: 10,\r\n client_timeout: 1000,\r\n}\r\nconst getDefaults = {\r\n 1: () => ({ // Domoticz HTTP\r\n port: 8080,\r\n }), 2: () => ({ // Domoticz MQTT\r\n subscribe: 'domoticz/out',\r\n public: 'domoticz/in'\r\n }), 3: () => ({ // Nodo Telnet\r\n port: 23,\r\n }), 4: () => ({ // ThingSpeak\r\n port: 80,\r\n }), 5: () => ({ // OpenHAB MQTT\r\n subscribe: '/%sysname%/#',\r\n publish: '/%sysname%/%tskname%/%valname%',\r\n }), 6: () => ({ // PiDome MQTT\r\n subscribe: '/Home/#',\r\n publish: '/hooks/devices/%id%/SensorData/%valname%',\r\n }), 7: () => ({ // Emoncms\r\n port: 80,\r\n }), 8: () => ({ // Generic HTTP\r\n port: 80,\r\n publish: 'demo.php?name=%sysname%&task=%tskname%&valuename=%valname%&value=%value%',\r\n }), 9: () => ({ // FHEM HTTP\r\n port: 8383,\r\n }), 10: () => ({ // Generic UDP\r\n port: 514,\r\n publish: '%sysname%_%tskname%_%valname%=%value%',\r\n }), 13: () => ({ // EspEasy P2P\r\n port: 65501,\r\n Custom: 1\r\n }), \r\n}\r\n\r\nconst setDefaultConfig = (type, config) => {\r\n const defaults = {...baseDefaults, ...getDefaults[type]()};\r\n Object.keys(defaults).forEach((key) => {\r\n const val = defaults[key];\r\n set(config.settings, key, val);\r\n });\r\n}\r\n\r\nconst getFormConfig = (type) => {\r\n let additionalFields = {};\r\n let additionalGroups = {};\r\n switch (Number(type)) {\r\n case 2: // Domoticz MQTT\r\n case 5: // OpenHAB MQTT\r\n additionalFields = { ...baseFields, user, password, subscribe, publish, ...lwtTopicField };\r\n break;\r\n case 6: // 'PiDome MQTT'\r\n additionalFields = { ...baseFields, subscribe, publish, ...lwtTopicField };\r\n break;\r\n case 3: //'Nodo Telnet'\r\n case 7: //'Emoncms':\r\n additionalFields = { ...baseFields, password };\r\n break;\r\n case 8: // 'Generic HTTP'\r\n additionalFields = { ...baseFields, user, password, subscribe, publish };\r\n break;\r\n case 1: // Domoticz HTTP\r\n case 9: // 'FHEM HTTP'\r\n additionalFields = { ...baseFields, user, password };\r\n break;\r\n case 10: //'Generic UDP': \r\n additionalFields = { ...baseFields, subscribe, publish };\r\n break;\r\n case 13: //'ESPEasy P2P Networking':\r\n additionalGroups = {\r\n global: {\r\n name: 'Global Settings',\r\n configs: {\r\n port: { name: 'UDP Port', type: 'number', var: 'ROOT.config.espnetwork.port' }\r\n }\r\n },\r\n nodes: {\r\n name: 'Connected Nodes',\r\n configs: {\r\n nodes: { type: 'custom', component: EspEaspP2PComponent}\r\n }\r\n } \r\n }\r\n break;\r\n case 0:\r\n default:\r\n additionalFields = { ...baseFields };\r\n }\r\n \r\n return {\r\n groups: {\r\n settings: {\r\n name: 'Controller Settings',\r\n configs: {\r\n protocol: { name: 'Protocol', type: 'select', var: 'protocol', options: protocols },\r\n enabled: { name: 'Enabled', type: 'checkbox', var: 'enabled' },\r\n ...additionalFields\r\n }\r\n },\r\n ...additionalGroups\r\n },\r\n }\r\n}\r\n\r\n\r\n// todo: changing protocol needs to update:\r\n// -- back to default (correct default)\r\n// -- field list \r\nexport class ControllerEditPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.config = settings.get(`controllers[${props.params[0]}]`);\r\n this.state = {\r\n protocol: this.config.protocol,\r\n }\r\n }\r\n\r\n render(props) {\r\n const formConfig = getFormConfig(this.state.protocol);\r\n formConfig.groups.settings.configs.protocol.onChange = (e) => {\r\n this.setState({ protocol: e.currentTarget.value });\r\n setDefaultConfig(e.currentTarget.value, this.config);\r\n };\r\n \r\n return (\r\n \r\n );\r\n }\r\n}\r\n","import { h, Component } from 'preact';\r\nimport { settings } from '../lib/settings';\r\nimport { protocols } from './controllers.edit';\r\nimport { types } from './controllers.notifications';\r\n\r\nexport class ControllersPage extends Component {\r\n render(props) {\r\n const controllers = settings.get('controllers');\r\n const notifications = settings.get('notifications');\r\n return (\r\n

    Controllers

    \r\n
    {controllers.map((c, i) => {\r\n const editUrl = `#controllers/edit/${i}`;\r\n return (\r\n
    \r\n \r\n {i+1}: {(c.enabled) ? () : ()}\r\n   [{protocols.find(p => p.value === c.protocol).name}] PORT:{c.settings.port} HOST:{c.settings.host}\r\n edit\r\n \r\n
    \r\n )\r\n })}
    \r\n

    Notifications

    \r\n
    {notifications.map((n, i) => {\r\n const editUrl = `#controllers/notification/${i}`;\r\n return (\r\n
    \r\n \r\n {i+1}: {(n.enabled) ? () : ()}\r\n   [{types.find(p => p.value === n.type).name}] PORT:{n.settings.port} HOST:{n.settings.host}\r\n edit\r\n \r\n
    \r\n )\r\n })}
    \r\n
    \r\n );\r\n }\r\n}","import { h, Component } from 'preact';\r\nimport { Form } from '../components/form';\r\nimport { settings } from '../lib/settings';\r\nimport { set } from '../lib/helpers';\r\nimport { pins } from '../devices/_defs';\r\n\r\nexport const types = [\r\n { name: '- None -', value: 0 },\r\n { name: 'Email', value: 1 },\r\n { name: 'Buzzer', value: 2 },\r\n];\r\n\r\nconst baseDefaults = {}\r\nconst getDefaults = {\r\n 0: () => ({}),\r\n 1: () => ({ // Email\r\n }), 2: () => ({ // Buzzer\r\n }),\r\n}\r\n\r\nconst setDefaultConfig = (type, config) => {\r\n const defaults = {...baseDefaults, ...getDefaults[type]()};\r\n Object.keys(defaults).forEach((key) => {\r\n const val = defaults[key];\r\n set(config.settings, key, val);\r\n });\r\n}\r\n\r\nconst getFormConfig = (type) => {\r\n let additionalFields = {};\r\n switch (Number(type)) {\r\n case 1: // Email\r\n additionalFields = { \r\n domain: { name: 'Domain', type: 'string' },\r\n hostname: { name: 'Hostname', type: 'string' },\r\n port: { name: 'Port', type: 'number' },\r\n sender: { name: 'Sender', type: 'string' },\r\n receiver: { name: 'Receiver', type: 'string' },\r\n subject: { name: 'Subject', type: 'string' },\r\n user: { name: 'Username', type: 'string' },\r\n pass: { name: 'Password', type: 'string' },\r\n body: { name: 'Body', type: 'textarea' },\r\n };\r\n break;\r\n case 2: // Buzzer\r\n additionalFields = { \r\n pin1: { name: '1st GPIO', type: 'select', options: pins }\r\n };\r\n break;\r\n }\r\n \r\n return {\r\n groups: {\r\n settings: {\r\n name: 'Notification Settings',\r\n configs: {\r\n type: { name: 'Type', type: 'select', var: 'type', options: types },\r\n enabled: { name: 'Enabled', type: 'checkbox', var: 'enabled' },\r\n ...additionalFields\r\n }\r\n },\r\n },\r\n }\r\n}\r\n\r\n\r\n// todo: changing protocol needs to update:\r\n// -- back to default (correct default)\r\n// -- field list \r\nexport class ControllerNotificationsPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.config = settings.get(`notifications[${props.params[0]}]`);\r\n this.state = {\r\n type: this.config.type,\r\n }\r\n }\r\n\r\n render(props) {\r\n const formConfig = getFormConfig(this.state.type);\r\n formConfig.groups.settings.configs.type.onChange = (e) => {\r\n this.setState({ type: e.currentTarget.value });\r\n setDefaultConfig(e.currentTarget.value, this.config);\r\n };\r\n formConfig.onSave = (values) => {\r\n settings.set(`notifications[${props.params[0]}]`, values);\r\n window.location.href='#controllers';\r\n }\r\n \r\n return (\r\n \r\n );\r\n }\r\n}\r\n","import { h, Component } from 'preact';\r\nimport { Form } from '../components/form';\r\nimport { settings } from '../lib/settings';\r\nimport { devices } from '../devices';\r\nimport { set } from '../lib/helpers';\r\n\r\nconst baseFields = { \r\n enabled: { name: 'Enabled', type: 'checkbox', var: 'enabled' },\r\n name: { name: 'Name', type: 'string' },\r\n};\r\n\r\nconst getFormConfig = (type) => {\r\n const device = devices.find(d => d.value === parseInt(type));\r\n if (!device) return null;\r\n\r\n const dataAcquisitionForm = device.fields.data ? {\r\n name: 'Data Acquisition',\r\n configs: {\r\n send1: { name: 'Send to Controller 1', type: 'checkbox', var: 'TaskDeviceSendData[0]', if: 'controllers[0].enabled' },\r\n send2: { name: 'Send to Controller 2', type: 'checkbox', var: 'TaskDeviceSendData[1]', if: 'controllers[1].enabled' },\r\n send3: { name: 'Send to Controller 3', type: 'checkbox', var: 'TaskDeviceSendData[2]', if: 'controllers[2].enabled' },\r\n idx1: { name: 'IDX1', type: 'number', var: 'TaskDeviceID[0]', if: 'controllers[0].enabled' },\r\n idx2: { name: 'IDX2', type: 'number', var: 'TaskDeviceID[1]', if: 'controllers[1].enabled' },\r\n idx3: { name: 'IDX3', type: 'number', var: 'TaskDeviceID[2]', if: 'controllers[2].enabled' },\r\n interval: { name: 'Interval', type: 'number', var: 'interval' },\r\n }\r\n }: {};\r\n \r\n return {\r\n groups: {\r\n settings: {\r\n name: 'Device Settings',\r\n configs: {\r\n device: { name: 'Device', type: 'select', var: 'device', options: devices },\r\n ...baseFields,\r\n \r\n }\r\n },\r\n ...device.fields,\r\n data: dataAcquisitionForm,\r\n values: {\r\n name: 'Values',\r\n configs: {\r\n ...[...new Array(device.fields.vals || 0)].reduce((acc, x, i) => {\r\n acc[`value${i}`] = [\r\n { name: `Name ${i+1}`, var: `settings.values[${i}].name`, type: 'string' }, \r\n { name: `Formula ${i+1}`, var: `settings.values[${i}].formula`, type: 'string' },\r\n { name: `Decimals ${i+1}`, var: `extra.decimals[${i}]`, type: 'number' }\r\n ];\r\n return acc;\r\n }, {})\r\n }\r\n }\r\n },\r\n }\r\n}\r\n\r\nconst setDefaultConfig = (type, config) => {\r\n const device = devices.find(d => d.value === parseInt(type));\r\n Object.keys(device.fields).forEach((groupKey) => {\r\n const group = device.fields[groupKey];\r\n if (!group.configs) return;\r\n Object.keys(group.configs).forEach((configKey) => {\r\n const cfg = group.configs[configKey];\r\n const key = cfg.var || `${groupKey}.${configKey}`;\r\n let val = 0;\r\n if (cfg.type === 'string') val = '';\r\n else if (cfg.type === 'ip') val = [0, 0, 0, 0];\r\n set(config, key, val);\r\n });\r\n });\r\n if (device.fields.defaults) {\r\n const defaultConfig = device.fields.defaults();\r\n Object.keys(defaultConfig).forEach(key => {\r\n const val = defaultConfig[key];\r\n set(config, key, val); \r\n })\r\n }\r\n \r\n}\r\n\r\n// todo: changing protocol needs to update:\r\n// -- back to default (correct default)\r\n// -- field list \r\nexport class DevicesEditPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.config = settings.get(`tasks[${props.params[0]}]`);\r\n this.state = {\r\n device: this.config.device,\r\n }\r\n }\r\n\r\n render(props) {\r\n const formConfig = getFormConfig(this.state.device);\r\n if (!formConfig) {\r\n alert('something went wrong, cant edit device');\r\n window.location.href='#devices';\r\n }\r\n formConfig.groups.settings.configs.device.onChange = (e) => {\r\n this.setState({ device: e.currentTarget.value });\r\n setDefaultConfig(e.currentTarget.value, this.config);\r\n };\r\n formConfig.onSave = (values) => {\r\n settings.set(`tasks[${props.params[0]}]`, values);\r\n window.location.href='#devices';\r\n }\r\n return (\r\n \r\n );\r\n }\r\n}\r\n","import { h, Component } from 'preact';\r\nimport { settings } from '../lib/settings';\r\nimport { devices } from '../devices';\r\n\r\nexport class DevicesPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.handleEnableToggle = (e) => {\r\n settings.set(e.currentTarget.dataset.prop, e.currentTarget.checked ? 1 : 0);\r\n }\r\n }\r\n render(props) {\r\n const tasks = settings.get('tasks');\r\n if (!tasks) return;\r\n return (\r\n
    \r\n {tasks.map((task, i) => {\r\n const editUrl = `#devices/edit/${i}`;\r\n const device = devices.find(d => d.value === task.device);\r\n const deviceType = device ? device.name : '--unknown--';\r\n const enabledProp = `tasks[${i}].enabled`;\r\n return (\r\n
    \r\n \r\n {i+1}: \r\n   {task.settings.name} [{deviceType}] {task.gpio1!==255?`GPIO:${task.gpio1}`:''}\r\n edit\r\n \r\n \r\n {/* {device.settings.values.map(v => {\r\n return ({v.name}: {v.value});\r\n })} */}\r\n \r\n
    \r\n )\r\n })}\r\n
    \r\n );\r\n }\r\n}","import { h, Component } from 'preact';\r\nimport { settings } from '../lib/settings';\r\nimport { saveConfig } from '../conf/config.dat';\r\nimport { storeFile } from '../lib/espeasy';\r\nimport { loader } from '../lib/loader';\r\n\r\n\r\nexport class DiffPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.diff = settings.diff();\r\n this.stage = 0;\r\n\r\n this.calculateByteDiff = () => {\r\n this.data = saveConfig(false);\r\n this.bytediffcount = 0;\r\n this.bytediff = Array.from(new Uint8Array(this.data));\r\n this.bytediff = this.bytediff.map((byte, i) => {\r\n const binary = settings.binary[i];\r\n if (byte !== binary) {\r\n this.bytediffcount++;\r\n return `${binary.toString(16)}:${byte.toString(16)}`;\r\n } else return `${byte.toString(16)}`;\r\n });\r\n this.bytediff = this.bytediff.join(' ');\r\n }\r\n\r\n this.calculateByteDiff();\r\n\r\n this.applyChanges = () => {\r\n if (this.stage === 0) {\r\n this.diff.map(d => {\r\n const input = this.form.elements[d.path];\r\n if (!input.checked) {\r\n settings.set(input.name, d.val1);\r\n }\r\n });\r\n settings.apply();\r\n this.diff = settings.diff();\r\n this.calculateByteDiff();\r\n this.stage = 1;\r\n return;\r\n }\r\n \r\n loader.show();\r\n storeFile('config.dat', this.data).then(() => {\r\n this.stage = 0;\r\n window.location.href='#config/reboot';\r\n });\r\n \r\n };\r\n }\r\n \r\n\r\n render(props) {\r\n if (this.bytediff && (this.stage === 1 /*|| this.bytediffcount*/)) {\r\n return (
    )\r\n }\r\n return (\r\n
    \r\n
    byte diff: {this.bytediffcount}
    \r\n this.form = ref}>\r\n {this.diff.map(change => {\r\n return (\r\n
    \r\n {change.path}: before: {JSON.stringify(change.val1)} now:{JSON.stringify(change.val2)} \r\n
    \r\n )\r\n })}\r\n \r\n \r\n
    \r\n \r\n );\r\n }\r\n}","import { h, Component } from 'preact';\r\n\r\nconst devices = [\r\n { nr: 1, name: 'Senzor', type: 'DH11', vars: [{ name: 'Temperature', formula: '', value: 21 }, { name: 'Humidity', formula: '', value: 65 }] },\r\n { nr: 1, name: 'Humidity', type: 'Linear Regulator', vars: [{ name: 'Output', formula: '', value: 1 }] }\r\n]\r\n\r\nexport class DiscoverPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n devices: []\r\n }\r\n\r\n this.scani2c = () => {\r\n fetch('/i2cscanner').then(r => r.json()).then(r => {\r\n this.setState({ devices: r });\r\n });\r\n }\r\n\r\n this.scanwifi = () => {\r\n fetch('/wifiscanner').then(r => r.json()).then(r => {\r\n this.setState({ devices: r });\r\n });\r\n }\r\n }\r\n\r\n render(props) {\r\n return (\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n {this.state.devices.map(device => {\r\n return (\r\n \r\n \r\n \r\n )\r\n })}
    \r\n {JSON.stringify(device)}\r\n
    \r\n
    \r\n );\r\n }\r\n}","import { h, Component } from 'preact';\r\nimport { Form } from '../components/form';\r\n\r\nconst formConfig = {\r\n onSave: (vals) => { console.log(vals); },\r\n groups: {\r\n keep: {\r\n name: 'Settings to keep',\r\n configs: {\r\n unit: { name: 'Keep Unit/Name', type: 'checkbox' },\r\n wifi: { name: 'Keep WiFi config', type: 'checkbox' },\r\n network: { name: 'Keep network config', type: 'checkbox' },\r\n ntp: { name: 'Keep NTP/DST config', type: 'checkbox' },\r\n log: { name: 'Keep log config', type: 'checkbox' },\r\n }\r\n },\r\n load: {\r\n name: 'Pre-defined configurations',\r\n configs: {\r\n config: { name: 'Pre-Defined config', type: 'select', options: [\r\n { name: 'default', value: 0 },\r\n { name: 'Sonoff Basic', value: 1 },\r\n { name: 'Sonoff TH1x', value: 2 },\r\n { name: 'Sonoff S2x', value: 3 },\r\n { name: 'Sonoff TouchT1', value: 4 },\r\n { name: 'Sonoff TouchT2', value: 5 },\r\n { name: 'Sonoff TouchT3', value: 6 },\r\n { name: 'Sonoff 4ch', value: 7 },\r\n { name: 'Sonoff POW', value: 8 },\r\n { name: 'Sonoff POW-r2', value: 9 },\r\n { name: 'Shelly1', value: 10 },\r\n ] },\r\n }\r\n },\r\n },\r\n}\r\n\r\nconst config = {}\r\n\r\nexport class FactoryResetPage extends Component {\r\n render(props) {\r\n formConfig.onSave = (config) => {\r\n const data = new FormData();\r\n if (config.keep.unit) data.append('kun', 'on');\r\n if (config.keep.wifi) data.append('kw', 'on');\r\n if (config.keep.network) data.append('knet', 'on');\r\n if (config.keep.ntp) data.append('kntp', 'on');\r\n if (config.keep.log) data.append('klog', 'on');\r\n data.append('fdm', config.load.config);\r\n data.append('savepref', 'Save Preferences');\r\n fetch('/factoryreset', {\r\n method: 'POST',\r\n body: data \r\n }).then(() => {\r\n data.delete('savepref');\r\n data.append('performfactoryreset', 'Factory Reset');\r\n fetch('/factoryreset', {\r\n method: 'POST',\r\n body: data\r\n }).then(() => {\r\n setTimeout(() => {\r\n window.location.href=\"#devices\";\r\n }, 5000);\r\n }, e => {\r\n\r\n })\r\n }, e => {\r\n\r\n });\r\n };\r\n return (\r\n
    \r\n );\r\n }\r\n}","import { h, Component } from 'preact';\nimport { deleteFile, storeFile } from '../lib/espeasy';\n\nexport class FSPage extends Component {\n constructor(props) {\n super(props);\n this.state = { files: [] }\n\n this.saveForm = () => {\n storeFile(this.file.files[0]);\n }\n\n this.deleteFile = e => {\n const fileName = e.currentTarget.dataset.name;\n deleteFile(fileName).then(() => (this.fetch()));\n }\n }\n\n fetch() {\n fetch('/filelist_json').then(response => response.json()).then(fileList => {\n this.setState({ files: fileList });\n });\n }\n\n render(props) {\n return (\n
    \n \n
    \n \n this.file = ref} />\n \n \n
    \n \n \n \n \n \n \n \n \n \n \n {this.state.files.map(file => {\n const url = `/${file.fileName}`;\n return (\n \n \n \n \n \n ); })}\n\n \n
    FileSize
    {file.fileName}{file.size}\n { file.fileName.endsWith('.dat') ? (null) :\n ()\n }\n
    \n
    \n );\n }\n\n componentDidMount() {\n this.fetch();\n }\n}","export * from './controllers';\nexport * from './devices';\nexport * from './config';\nexport * from './config.advanced';\nexport * from './config.hardware';\nexport * from './reboot';\nexport * from './load';\nexport * from './update';\nexport * from './rules';\nexport * from './tools';\nexport * from './fs';\nexport * from './factory_reset';\nexport * from './discover';\nexport * from './controllers.edit';\nexport * from './controllers.notifications';\nexport * from './devices.edit';\nexport * from './diff';\nexport * from './rules.editor';\nexport * from './setup';\nexport * from './tools.sysvars';","import { h, Component } from 'preact';\r\nimport { storeFile } from '../lib/espeasy';\r\n\r\nexport class LoadPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.saveForm = () => {\r\n storeFile(this.file.files[0]);\r\n }\r\n }\r\n\r\n render(props) {\r\n return (
    \r\n
    \r\n \r\n this.file = ref} />\r\n \r\n
    \r\n
    )\r\n }\r\n}","import { h, Component } from 'preact';\r\nimport { loader } from '../lib/loader';\r\n\r\n\r\nexport class RebootPage extends Component {\r\n render(props) {\r\n return (\r\n
    ESPEasy is rebooting ... please wait a while, this page will auto refresh.
    \r\n );\r\n }\r\n\r\n componentDidMount() {\r\n loader.show();\r\n fetch('/?cmd=reboot').then(() => {\r\n setTimeout(() => {\r\n loader.hide();\r\n window.location.hash = '#devices';\r\n window.location.reload();\r\n }, 5000)\r\n })\r\n }\r\n}","import { h, Component } from 'preact';\r\nimport { FlowEditor } from '../lib/floweditor';\r\nimport { nodes } from '../lib/node_definitions';\r\nimport { getConfigNodes, loadRuleConfig, storeRuleConfig, storeRule } from '../lib/espeasy';\r\n\r\nexport class RulesEditorPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.nodes = nodes;\r\n }\r\n\r\n render(props) {\r\n return (\r\n
    this.element = ref}>\r\n
    \r\n );\r\n }\r\n\r\n componentDidMount() {\r\n getConfigNodes().then((out) => {\r\n out.nodes.forEach(device => nodes.unshift(device));\r\n const ifElseNode = nodes.find(node => node.type === 'if/else');\r\n if (!ifElseNode.config[0].loaded) {\r\n out.vars.forEach(v => ifElseNode.config[0].values.push(v)); \r\n ifElseNode.config[0].loaded = true;\r\n }\r\n\r\n this.chart = new FlowEditor(this.element, nodes, { \r\n onSave: (config, rules) => {\r\n storeRuleConfig(config);\r\n storeRule(rules);\r\n }\r\n });\r\n \r\n loadRuleConfig().then(config => {\r\n this.chart.loadConfig(config);\r\n });\r\n });\r\n }\r\n}","import { h, Component } from 'preact';\r\n\r\n\r\nconst rules = [\r\n { name: 'Rule 1', file: 'rules1.txt', index: 1 },\r\n { name: 'Rule 2', file: 'rules2.txt', index: 2 },\r\n { name: 'Rule 3', file: 'rules3.txt', index: 3 },\r\n { name: 'Rule 4', file: 'rules4.txt', index: 4 },\r\n];\r\n\r\nexport class RulesPage extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n selected: rules[0]\r\n }\r\n\r\n this.selectionChanged = (e) => {\r\n this.setState({ selected: rules[e.currentTarget.value] });\r\n }\r\n\r\n this.saveRule = () => {\r\n const data = new FormData();\r\n data.append('set', this.state.selected.index);\r\n data.append('rules', this.text.value);\r\n fetch('/rules', {\r\n method: 'POST',\r\n body: data \r\n }).then(res => {\r\n console.log('succesfully saved');\r\n console.log(res.text());\r\n });\r\n }\r\n\r\n this.fetch();\r\n }\r\n\r\n render(props) {\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n async fetch() {\r\n const text = await fetch(this.state.selected.file).then(response => response.text());\r\n this.text.value = text;\r\n }\r\n\r\n async componentDidUpdate() {\r\n this.fetch();\r\n }\r\n}","import { h, Component } from 'preact';\r\nimport { Form } from '../components/form';\r\nimport { settings } from '../lib/settings';\r\nimport { loader } from '../lib/loader';\r\n\r\nconst formConfig = {\r\n groups: {\r\n wifi: {\r\n name: 'WiFi',\r\n configs: {\r\n ssid: { name: 'SSID', type: 'select', options: [], var: 'security[0].WifiSSID' },\r\n passwd: { name: 'Password', type: 'password', var: 'security[0].WifiKey' },\r\n }\r\n },\r\n },\r\n}\r\n\r\nexport class SetupPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n devices: [],\r\n }\r\n loader.show();\r\n\r\n this.save = () => {\r\n loader.show();\r\n\r\n const data = new FormData();\r\n data.append('ssid', this.config.security[0].WifiSSID);\r\n data.append('pass', this.config.security[0].WifiKey);\r\n fetch('/setup', {\r\n method: 'POST',\r\n data\r\n }).then(() => {\r\n setTimeout(() => {\r\n loader.hide();\r\n window.location.href = '/';\r\n }, 5000);\r\n })\r\n }\r\n }\r\n\r\n render(props) {\r\n formConfig.groups.wifi.configs.ssid.options = this.state.devices.map(device => ({ name: device.ssid, value: device.ssd }));\r\n const config = settings.get('config');\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n );\r\n }\r\n\r\n componentDidMount() {\r\n fetch('/wifiscanner').then(r => r.json()).then(r => {\r\n this.setState({ devices: r });\r\n loader.hide();\r\n });\r\n }\r\n}","import { h, Component } from 'preact';\r\n\r\nexport class ToolsPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.history = '';\r\n\r\n this.sendCommand = (e) => {\r\n fetch(`/control?cmd=${this.cmd.value}`).then(response => response.text()).then(response => {\r\n this.cmdOutput.value = response;\r\n });\r\n }\r\n }\r\n\r\n fetch() {\r\n fetch('/logjson').then(response => response.json()).then(response => {\r\n response.Log.Entries.map(log => {\r\n this.history += `
    ${(new Date(log.timestamp).toLocaleTimeString())}${log.text}
    `;\r\n this.log.innerHTML = this.history;\r\n if (true) {\r\n this.log.scrollTop = this.log.scrollHeight;\r\n }\r\n })\r\n });\r\n }\r\n\r\n render(props) {\r\n return (\r\n
    \r\n
    this.log = ref}>loading logs ...
    \r\n
    Command: this.cmd = ref}/>
    \r\n \r\n
    \r\n );\r\n }\r\n\r\n componentDidMount() {\r\n this.interval = setInterval(() => {\r\n this.fetch();\r\n }, 1000);\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.interval) clearInterval(this.interval);\r\n }\r\n}","import { h, Component } from 'preact';\n\nexport class SysVarsPage extends Component {\n constructor(props) {\n super(props);\n this.state = { device: props.params[0], vars: {} };\n }\n\n fetch() {\n fetch(`/sysinfo_json`).then(response => response.json()).then(vars => {\n this.setState({ vars });\n });\n }\n\n render(props) {\n return (\n \n {\n Object.keys(this.state.vars).map(v => {\n const value = this.state.vars[v];\n return (\n
    \n \n {\n Object.keys(value).map((v1, i) => {\n const value1 = value[v1];\n return (\n
    \n \n \n
    \n )\n })\n }\n
    \n )\n \n \n })\n }\n \n )\n }\n\n componentDidMount() {\n this.fetch();\n }\n}","import { h, Component } from 'preact';\nimport { fetchProgress } from '../lib/espeasy';\nimport { loader } from '../lib/loader';\n\nexport class UpdatePage extends Component {\n constructor(props) {\n super(props);\n\n this.state = { progress: 0 }\n\n this.saveForm = () => {\n loader.show();\n const data = new FormData()\n data.append('file', this.file.files[0])\n data.append('user', 'hubot')\n \n fetchProgress('/update', {\n method: 'POST',\n body: data,\n onProgress: (e) => {\n const perc = 100 * e.loaded / e.total;\n this.setState({ progress: perc });\n }\n }).then(() => {\n window.location.href = '#config/reboot';\n });\n }\n }\n\n render(props) {\n return (\n
    \n
    \n \n this.file = ref} />\n \n { (this.state.progress) ? ( {Math.round(this.state.progress)}%) : (null) }\n
    \n
    \n )\n }\n}"],"sourceRoot":""} \ No newline at end of file diff --git a/src/devices/14_si7021.js b/src/devices/14_si7021.js index f118bb6..4f65314 100644 --- a/src/devices/14_si7021.js +++ b/src/devices/14_si7021.js @@ -9,6 +9,11 @@ const resolution = [ ] export const si7021 = { + defaults: () => ({ + interval: 60, + 'settings.values[0].name': 'Temperature', + 'settings.values[1].name': 'Humidity', + }), sensor: { name: 'Sensor', configs: { diff --git a/src/devices/15_tls2561.js b/src/devices/15_tls2561.js index dbb5470..1dbca58 100644 --- a/src/devices/15_tls2561.js +++ b/src/devices/15_tls2561.js @@ -13,6 +13,12 @@ const measurmentMode = [ ] export const tls2561 = { + defaults: () => ({ + 'configs[0]': 57, + 'settings.values[0].name': 'Lux', + 'settings.values[1].name': 'Infrared', + 'settings.values[2].name': 'Broadband', + }), sensor: { name: 'Sensor', configs: { @@ -22,4 +28,6 @@ export const tls2561 = { gain: { name: 'Enable 16x gain', type: 'checkbox', var: 'configs[3]' }, } }, + data: true, + vals: 3 } diff --git a/src/devices/17_pn532.js b/src/devices/17_pn532.js index 756d72b..39f1eec 100644 --- a/src/devices/17_pn532.js +++ b/src/devices/17_pn532.js @@ -1,10 +1,16 @@ import { pins } from './_defs'; export const pn532 = { + defaults: () => ({ + gpio1: 255, + 'settings.values[0].name': 'Tag', + }), sensor: { name: 'Sensor', configs: { gpio1: { name: 'Reset Pin', type: 'select', options: pins, var: 'gpio1' }, } }, + data: true, + vals: 1, } \ No newline at end of file diff --git a/src/devices/18_dust.js b/src/devices/18_dust.js index 8be72b7..603d9da 100644 --- a/src/devices/18_dust.js +++ b/src/devices/18_dust.js @@ -13,6 +13,10 @@ const measurmentMode = [ ] export const dust = { + defaults: () => ({ + gpio1: 255, + 'settings.values[0].name': 'Dust', + }), sensor: { name: 'Sensor', configs: { diff --git a/src/devices/19_pcf8574.js b/src/devices/19_pcf8574.js index 2d0bd78..b172ad5 100644 --- a/src/devices/19_pcf8574.js +++ b/src/devices/19_pcf8574.js @@ -8,6 +8,10 @@ const eventTypes = [ ] export const pcf8574 = { + defaults: () => ({ + gpio4: 0, + 'settings.values[0].name': 'Switch', + }), sensor: { name: 'Sensor', configs: { @@ -27,4 +31,6 @@ export const pcf8574 = { safe_button: { name: 'Use safe button', type: 'checkbox', var: 'configs_float[3]' }, } }, + data: true, + vals: 1 } \ No newline at end of file diff --git a/src/devices/20_ser2net.js b/src/devices/20_ser2net.js index 4bd66f2..03eed49 100644 --- a/src/devices/20_ser2net.js +++ b/src/devices/20_ser2net.js @@ -1,6 +1,6 @@ import { pins } from './_defs'; -const parity = [ +const serialConfig = [ { value: 0, name: 'No Parity' }, { value: 1, name: 'Even' }, { value: 2, name: 'Odd' }, @@ -13,16 +13,17 @@ const eventProcessing = [ ] export const ser2net = { + defaults: () => ({ + gpio1: 255, + }), sensor: { name: 'Settings', configs: { - port: { name: 'TCP Port', type: 'number', var: 'configs_float[0]' }, - baudrate: { name: 'Baudrate', type: 'number', var: 'configs_float[0]' }, - data_bits: { name: 'Data Bits', type: 'number', var: 'configs_float[0]' }, - parity: { name: 'Parity', type: 'select', options: parity, var: 'configs[0]' }, - stop_bits: { name: 'Stop Bits', type: 'number', var: 'configs_float[0]' }, - reset_after_boot: { name: 'Reset target after boot', type: 'select', options: pins, var: 'configs[1]' }, - timeout: { name: 'RX Receive Timeout', type: 'number', var: 'configs_float[0]' }, + port: { name: 'TCP Port', type: 'number', var: 'extra.plugin_config_long[0]' }, + baudrate: { name: 'Baudrate', type: 'number', var: 'extra.plugin_config_long[1]' }, + serial_config: { name: 'Data Bits', type: 'select', options: serialConfig, var: 'configs[2]' }, + reset_after_boot: { name: 'Reset target after boot', type: 'select', options: pins, var: 'gpio1' }, + timeout: { name: 'RX Receive Timeout', type: 'number', var: 'configs[0]' }, event_processing: { name: 'Event Processing', type: 'select', options: eventProcessing, var: 'configs[1]' }, } }, diff --git a/src/devices/21_level_control.js b/src/devices/21_level_control.js index f17e40e..cf7a05d 100644 --- a/src/devices/21_level_control.js +++ b/src/devices/21_level_control.js @@ -11,7 +11,6 @@ const sensorModel = [ export const levelControl = { defaults: () => ({ gpio1: 255, - interval: 0, 'settings.values[0].name': 'Output', }), sensor: { diff --git a/src/devices/22_pca9685.js b/src/devices/22_pca9685.js index b441063..3d0517f 100644 --- a/src/devices/22_pca9685.js +++ b/src/devices/22_pca9685.js @@ -4,13 +4,19 @@ const mode = [...Array(32)].map((v, i) => ({ value: i, name: `0x${i.toString(16) const i2c_address = [...Array(32)].map((v, i) => ({ value: i+64, name: `0x${(i+64).toString(16)} (${i+64})` })); export const pca9685 = { + defaults: () => ({ + gpio1: 255, + 'configs_float[0]': 1500, + 'configs_float[1]': 4095, + 'settings.values[0].name': 'Output', + }), sensor: { name: 'Sensor', configs: { i2c_address: { name: 'I2C Address', type: 'select', options: i2c_address, var: 'configs[0]' }, mode: { name: 'Mode 2', type: 'select', options: mode, var: 'configs[1]' }, - frequency: { name: 'Frequency (23 - 1500)', type: 'number', var: 'configs_float[0]' }, - range: { name: 'Range (1-10000)', type: 'number', var: 'configs_float[1]' }, + frequency: { name: 'Frequency (23 - 1500)', type: 'number', min: 23, max: 1500, var: 'configs_float[0]' }, + range: { name: 'Range (1-10000)', type: 'number', min: 1, max: 10000, var: 'configs_float[1]' }, } }, } \ No newline at end of file